Extract data asynchronously from a document with the following steps. You must use this or other asynchronous endpoints for documents that are over 4.5MB in size or require over 30 seconds to process.

  1. Use this endpoint to generate a Sensible URL.
  2. PUT your document at the upload_url returned from the previous step. Sensible extracts data from the document.
  3. To retrieve the extraction, use a webhook, or use the extraction id returned in the response to poll the GET documents/{id} endpoint.

For example, if your call to /generate_upload_url specifies the document type with a content_type body parameter (recommended), your first two steps are as follows:

Step 1. Generate the Sensible URL:

curl --location 'https://api.sensible.so/v0/generate_upload_url/<YOUR_DOCUMENT_TYPE>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer REDACTED' \
--data '{"content_type":"application/pdf"}'

Step 2. PUT the document:

curl --location --request PUT 'https://sensible-so-utility-bucket-dev-us-west-2.s3.us-west-2.amazonaws.com/REDACTED' \
--header 'Content-Type: application/pdf' \

Note that in step 2:

  • you must omit an authorization header
  • the Content-Type header must match the content_type body parameter in step 1
  • the pre-signed upload_url doesn't support Base64 encoded documents, so you PUT the document bytes directly to the endpoint.

For a step-by-step tutorial on calling this endpoint, see
Try asynchronous extraction from a Sensible URL.

Click Try It! to start a request and see the response here!