Extract doc at a Sensible URL
Extract data asynchronously from a document with the following steps:
- Use this endpoint to generate a Sensible URL.
- PUT your document at the
upload_url
returned from the previous step. Sensible extracts data from the document. - To retrieve the extraction, use a webhook, or use the extraction
id
returned in the response to poll the GET documents/ endpoint.
For supported file size and types, see Supported file types.
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' \
--data 'YOUR_PATH_TO_DOCUMENT.pdf'
Note that in step 2:
- you must omit an authorization header
- the
Content-Type
header must match thecontent_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.
Authorizations
Sensible uses API keys to authenticate requests. Keep your API keys secure and do not share them publicly accessible areas such as GitHub, client-side code, etc. Authentication to the API is performed via Bearer Authentication. Provide your API key as the bearer auth value.
Path Parameters
Type of document to extract from. Create your custom type in the Sensible app (for example, rate_confirmation
, certificate_of_insurance
, or home_inspection_report
).
To quickly test this endpoint using the Try It
button in this interactive explorer, use the senseml_basics
tutorial document type with this example document.
As a convenience, Sensible automatically detects the best-fit extraction from among the extraction queries ("configs") in the document type.
For example, if you create an auto_insurance_quotes
document type, you can add carrier 1
, carrier 2
, and carrier 3
configs
to the document type in the Sensible app. Then, you can extract data from all these carriers using the same document type, without specifying the carrier in the API request.
Query Parameters
If you specify development
, extracts preferentially using config versions published to the development environment in the Sensible app. The extraction runs all configs in the doc type before picking the best fit. For each config, falls back to production version if no development version of the config exists.
production
, development
If you specify the filename of the document using this parameter, then Sensible returns the filename in the extraction response.
Body
Specifies to return extraction results to the defined webhook as soon as they're complete, so you don't have to poll for results status. Sensible also calls this webhook on error.
Content type of the document being presented for extraction.
application/pdf
, image/jpeg
, image/png
, image/tiff
, application/msword
, application/vnd.openxmlformats-officedocument.wordprocessingml.document
Response
Unique ID for the extraction, used to retrieve the extraction
Date and time Sensible created the initial empty extraction and set its status to WAITING.
Unique user-friendly name for a document type
Status of the extraction:
- WAITING: Sensible created an initial empty extraction and is waiting for the document.
- PROCESSING: Sensible received the document and is extracting data.
- FAILED: The extraction failed.
- COMPLETE: The extraction is complete.
WAITING
, PROCESSING
, COMPLETE
, FAILED
URL at which to PUT the PDF bytes array for extraction. for example, curl -T ./sample.pdf "YOUR_UPLOAD_URL"