# Sensible Documentation ## Guides - [API reference](https://docs.sensible.so/docs/api-reference.md) - [Try asynchronous extraction from your URL](https://docs.sensible.so/docs/api-tutorial-async-1.md) - [Try asynchronous extraction from a Sensible URL](https://docs.sensible.so/docs/api-tutorial-async-2.md) - [Try synchronous extraction](https://docs.sensible.so/docs/api-tutorial-sync.md) - [Try a webhook](https://docs.sensible.so/docs/api-tutorial-webhook.md) - [API tutorial](https://docs.sensible.so/docs/api-tutorial.md) - [Code examples](https://docs.sensible.so/docs/examples.md) - [Qualifying LLM accuracy](https://docs.sensible.so/docs/confidence.md) - [Handling document variations](https://docs.sensible.so/docs/document-variations.md) - [Fallback LLM configs](https://docs.sensible.so/docs/fallback-configs.md) - [Go-live checklist](https://docs.sensible.so/docs/go-live.md) - [Extracting handwriting and OCR text](https://docs.sensible.so/docs/handwriting.md) - [Best practices](https://docs.sensible.so/docs/best-practices.md) - [Optimizing extraction performance](https://docs.sensible.so/docs/performance.md) - [Troubleshooting](https://docs.sensible.so/docs/troubleshoot.md) - [Getting started with layout-based extractions](https://docs.sensible.so/docs/getting-started.md) - [Out-of-the-box extractions](https://docs.sensible.so/docs/library-quickstart.md) - [Multi-document extractions](https://docs.sensible.so/docs/portfolio.md) - [Repeating layouts](https://docs.sensible.so/docs/repeat-layouts.md) - [Classifying documents by type](https://docs.sensible.so/docs/classify.md) - [Getting started with email extraction](https://docs.sensible.so/docs/getting-started-email.md) - [SenseML to spreadsheet reference](https://docs.sensible.so/docs/excel-reference.md) - [Quick extraction](https://docs.sensible.so/docs/quick-extraction.md) - [API quickstart](https://docs.sensible.so/docs/quickstart.md) - [SDK guides](https://docs.sensible.so/docs/sdk-guides.md) - [Zapier overview](https://docs.sensible.so/docs/zapier.md) - [Zapier tutorial](https://docs.sensible.so/docs/zapier-getting-started.md) - [Advanced Zapier tutorial](https://docs.sensible.so/docs/zapier-tutorial-2.md) - [llms.txt](https://docs.sensible.so/docs/llmstxt.md): View the llms.txt for this docs site at https://docs.sensible.so/llms.txt. - [Human review implementation](https://docs.sensible.so/docs/human-review-implementation.md) - [Human review](https://docs.sensible.so/docs/human-review.md) - [Monitoring extraction metrics](https://docs.sensible.so/docs/metrics.md) - [Validating extractions](https://docs.sensible.so/docs/validate-extractions.md) - [Add computed fields](https://docs.sensible.so/docs/add-computed-fields.md) - [Copy from sections](https://docs.sensible.so/docs/copy-from-sections.md) - [Copy to section](https://docs.sensible.so/docs/copy-to-section.md) - [Custom computation group](https://docs.sensible.so/docs/custom-computation-group.md) - [Custom computation](https://docs.sensible.so/docs/custom-computation.md) - [Get file metadata](https://docs.sensible.so/docs/get-file-metadata.md) - [Advanced computed field methods](https://docs.sensible.so/docs/advanced-computed-field-methods.md) - [Spreadsheet extraction](https://docs.sensible.so/docs/cell-rows.md) - [Concatenate](https://docs.sensible.so/docs/concatenate.md) - [Constant](https://docs.sensible.so/docs/constant.md) - [Computed field methods](https://docs.sensible.so/docs/computed-field-methods.md) - [Mapper](https://docs.sensible.so/docs/mapper.md) - [Pick values](https://docs.sensible.so/docs/pick-values.md) - [Split](https://docs.sensible.so/docs/split.md) - [Suppress output](https://docs.sensible.so/docs/suppress-output.md) - [Zip](https://docs.sensible.so/docs/zip.md) - [Accuracy measures](https://docs.sensible.so/docs/accuracy-measures.md) - [Anchor variables](https://docs.sensible.so/docs/anchor-nuances.md) - [Source text traceability](https://docs.sensible.so/docs/color.md) - [Extraction coverage](https://docs.sensible.so/docs/coverage.md) - [Devops platform](https://docs.sensible.so/docs/devops-platform.md) - [Environments](https://docs.sensible.so/docs/environments.md) - [Fallback fields](https://docs.sensible.so/docs/fallbacks.md) - [Field extraction order](https://docs.sensible.so/docs/field-order.md) - [Supported file types](https://docs.sensible.so/docs/file-types.md) - [Concepts](https://docs.sensible.so/docs/concepts.md) - [JsonLogic extensions](https://docs.sensible.so/docs/jsonlogic.md) - [Ligatures](https://docs.sensible.so/docs/ligatures.md) - [Lines](https://docs.sensible.so/docs/lines.md) - [LLM features overview](https://docs.sensible.so/docs/llm-features.md) - [LLM models](https://docs.sensible.so/docs/llm-models.md) - [Match arrays](https://docs.sensible.so/docs/match-arrays.md) - [OCR](https://docs.sensible.so/docs/ocr.md) - [Advanced LLM prompt configuration](https://docs.sensible.so/docs/prompt.md) - [Section nuances](https://docs.sensible.so/docs/section-nuances.md) - [Table methods](https://docs.sensible.so/docs/table-methods.md) - [Conditional execution](https://docs.sensible.so/docs/conditional.md) - [Fingerprint](https://docs.sensible.so/docs/fingerprint.md) - [Config settings](https://docs.sensible.so/docs/config-settings.md) - [Verbosity](https://docs.sensible.so/docs/verbosity.md) - [Document type descriptions](https://docs.sensible.so/docs/descriptions.md) - [Fingerprint mode](https://docs.sensible.so/docs/fingerprint-mode.md) - [Document type settings](https://docs.sensible.so/docs/document-type-settings.md) - [OCR engine](https://docs.sensible.so/docs/ocr-engine.md) - [OCR level](https://docs.sensible.so/docs/ocr-level.md) - [Anchor object](https://docs.sensible.so/docs/anchor.md) - [Field query object](https://docs.sensible.so/docs/field-query-object.md) - [Match object](https://docs.sensible.so/docs/match.md) - [Method object](https://docs.sensible.so/docs/method.md) - [Types](https://docs.sensible.so/docs/types.md) - [Box](https://docs.sensible.so/docs/box.md) - [Checkbox](https://docs.sensible.so/docs/checkbox.md) - [Column](https://docs.sensible.so/docs/column.md) - [Document range](https://docs.sensible.so/docs/document-range.md) - [Fixed table](https://docs.sensible.so/docs/fixed-table.md) - [Layout-based methods](https://docs.sensible.so/docs/layout-based-methods.md) - [Intersection](https://docs.sensible.so/docs/intersection.md) - [Label](https://docs.sensible.so/docs/label.md) - [Nearest checkbox](https://docs.sensible.so/docs/nearest-checkbox.md) - [Paragraph](https://docs.sensible.so/docs/paragraph.md) - [Passthrough](https://docs.sensible.so/docs/passthrough.md) - [Regex](https://docs.sensible.so/docs/regex.md) - [Region](https://docs.sensible.so/docs/region.md) - [Row](https://docs.sensible.so/docs/row.md) - [Signature](https://docs.sensible.so/docs/signature.md) - [Text Table](https://docs.sensible.so/docs/text-table.md) - [LLM-based methods](https://docs.sensible.so/docs/llm-based-methods.md) - [List](https://docs.sensible.so/docs/list.md) - [NLP table](https://docs.sensible.so/docs/nlp-table.md) - [Query group](https://docs.sensible.so/docs/query-group.md) - [Postprocessor](https://docs.sensible.so/docs/postprocessor.md) - [Deskew](https://docs.sensible.so/docs/deskew.md) - [Preprocessors](https://docs.sensible.so/docs/preprocessors.md) - [Ligature](https://docs.sensible.so/docs/ligature.md) - [Linearize](https://docs.sensible.so/docs/linearize.md) - [Merge lines](https://docs.sensible.so/docs/merge-lines.md) - [Multicolumn](https://docs.sensible.so/docs/multicolumn.md) - [NLP](https://docs.sensible.so/docs/nlp.md) - [OCR preprocessor](https://docs.sensible.so/docs/ocr-preprocessor.md) - [Page range](https://docs.sensible.so/docs/page-range.md) - [Remove footer](https://docs.sensible.so/docs/remove-footer.md) - [Remove header](https://docs.sensible.so/docs/remove-header.md) - [Remove lines](https://docs.sensible.so/docs/remove-lines.md) - [Remove page](https://docs.sensible.so/docs/remove-page.md) - [Rotate page](https://docs.sensible.so/docs/rotate-page.md) - [Scale](https://docs.sensible.so/docs/scale.md) - [Split lines](https://docs.sensible.so/docs/split-lines.md) - [Sections](https://docs.sensible.so/docs/sections.md) - [Advanced: Zip and flatten nested sections](https://docs.sensible.so/docs/sections-example-copy-from-sections.md) - [Advanced: Transform sections data](https://docs.sensible.so/docs/sections-example-copy-to-section.md) - [Advanced: External anchors for sections](https://docs.sensible.so/docs/sections-example-external-range.md) - [Labeled rows example](https://docs.sensible.so/docs/sections-example-labeled-rows.md) - [Claims loss run example](https://docs.sensible.so/docs/sections-example-loss-run.md) - [Advanced: nested columns example](https://docs.sensible.so/docs/sections-example-nested-columns.md) - [Advanced: nested table example](https://docs.sensible.so/docs/sections-example-nested-table.md) - [Advanced: Table grid example](https://docs.sensible.so/docs/sections-example-table-grid.md) - [Advanced: Zip sections](https://docs.sensible.so/docs/sections-example-zip.md) - [SenseML reference introduction](https://docs.sensible.so/docs/senseml-reference-introduction.md) - [Choosing an extraction approach](https://docs.sensible.so/docs/author.md) - [Getting started](https://docs.sensible.so/docs/getting-started-ai.md) - [Integrating](https://docs.sensible.so/docs/integrate.md) - [Overview](https://docs.sensible.so/docs/overview.md) - [Quality control](https://docs.sensible.so/docs/quality-control.md) ## API Reference - [Classify document by type (sync)](https://docs.sensible.so/reference/classify-document-sync.md): **Note:** Use this Classify endpoint for testing. Use the asynchronous Classify endpoint for production. Classify a document into one of the document types you defined in your Sensible account. For more information, see [Classifying documents by type](doc:classify). Use this endpoint: - In an extraction workflow. For example, determine which documents to extract prior to calling a Sensible extraction endpoint. - Outside an extraction workflow. For example, determine where to route each document or to label each document in a system of record. To post the document bytes, specify the non-encoded document bytes as the entire request body,and specify the `Content-Type` header, for example,"application/pdf" or "image/jpeg". For supported file size and types, see [Supported file types](doc:file-types). - [Classify document by type](https://docs.sensible.so/reference/classify-document.md): Classify a document into one of the document types you defined in your Sensible account. For more information, see [Classifying documents by type](doc:classify). To retrieve document's classification, poll the `download_link` in this endpoint's response until it returns a non-error response. Use this endpoint: - In an extraction workflow. For example, determine which documents to extract prior to calling a Sensible extraction endpoint. - Outside an extraction workflow. For example, determine where to route each document or to label each document in a system of record. To post the document bytes, specify the non-encoded document bytes as the entire request body,and specify the `Content-Type` header, for example,"application/pdf" or "image/jpeg". For supported file size and types, see [Supported file types](doc:file-types). - [Create configuration in a document type](https://docs.sensible.so/reference/create-configuration.md): Pass the configuration as stringified JSON. - [Delete draft or unpublish configuration](https://docs.sensible.so/reference/delete-configuration-by-version.md): To delete a draft, specify a version name in the `version` parameter. To unpublish a configuration, enter the publication environment name in the `version` parameter, for example, `development`. - [Delete configuration](https://docs.sensible.so/reference/delete-configuration.md): Delete a configuration and its versions. - [Get configuration by version](https://docs.sensible.so/reference/get-configuration-by-version.md): Get a configuration as stringified JSON by version id. - [List versions for a configuration](https://docs.sensible.so/reference/get-configuration-versions.md): Get the version ids for a configuration. - [Get configuration](https://docs.sensible.so/reference/get-configuration.md): Get a configuration as stringified JSON. - [List configurations in a document type](https://docs.sensible.so/reference/list-configurations.md): List configurations in a document type. - [Publish configuration to an environment](https://docs.sensible.so/reference/publish-configuration-by-version.md): To publish to an environment instead of as the current draft, the configuration must be valid according to this [schema](https://schema.sensible.so/configuration.schema.json). - [Update configuration](https://docs.sensible.so/reference/update-configuration.md): Replace a published or draft version of the configuration. - [Create document type](https://docs.sensible.so/reference/create-document-type.md): Create a document type. - [Delete document type](https://docs.sensible.so/reference/delete-document-type.md): Delete a document type and everything it contains, for example configurations and reference PDfs, but not its extraction history displayed in the Sensible app. - [Get document type](https://docs.sensible.so/reference/get-document-type.md): Find the document type id using the `/document_types` endpoint. - [List document types for this account](https://docs.sensible.so/reference/list-document-types.md): List all document types for this account. - [Update document type](https://docs.sensible.so/reference/update-document-type.md): Update an existing document type with new information. For example, use this endpoint to add validations: ```curl curl --location --request PUT 'https://api.sensible.so/v0/document_types/' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{"schema":{"validations":[{"description":"example validation to test broker email format","condition":{"match":[{"var":"broker\\.email.value"},"^\\S+\\@\\S+$"]},"severity":"warning","fields":["test"]}]}} ' ``` - [Create reference document](https://docs.sensible.so/reference/create-reference-document.md): Specify document metadata in the request, and get back an `upload_url` at which to put the PDF, for example with `curl -T ./sample.pdf`. - [Unassociate reference document from configuration](https://docs.sensible.so/reference/delete-reference-document-association.md): Break the association between a reference document and its configuration. - [Delete reference document](https://docs.sensible.so/reference/delete-reference-document.md): Delete a reference document and break associations to any configs. - [Extract all text from reference document](https://docs.sensible.so/reference/extract-all-text-from-reference-document.md): Get all the text (lines) for a reference document as standardized output. The output is an array of pages with metadata such as text positioning. If you specify a configuration, Sensible uses preprocessors defined in the configuration to process the text. - [Get reference document metadata](https://docs.sensible.so/reference/get-reference-document.md): Get download URL and other metadata for a reference document. - [List all reference documents in a document type](https://docs.sensible.so/reference/list-reference-documents.md): List all reference documents in a document type - [Update metadata for a reference document](https://docs.sensible.so/reference/update-reference-document.md): Update metadata for a reference document - [Extract data from a document using specified config](https://docs.sensible.so/reference/extract-data-from-a-document-with-config.md): This endpoint's behavior identical to the [Extract data from a document](ref:extract-data-from-a-document) endpoint's behavior, except that Sensible uses the specified config to extract data from the document instead of automatically choosing the best-scoring extraction in the document type. - [Extract data from a document (sync)](https://docs.sensible.so/reference/extract-data-from-a-document.md): **Note:** Use this endpoint for testing. Use the asynchronous extraction endpoints when in production. Extract data from a local document synchronously. To explore this endpoint, use this interactive API reference, or use one of the following options: - For a quick "hello world" response to this endpoint, see the [API quickstart](doc:quickstart) - For a step-by-step tutorial about calling this endpoint, see [Try synchronous extraction](doc:api-tutorial-sync). - Run this endpoint in the Sensible Postman collection. [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/16839934-45339059-3fec-4c31-a891-9a12a3e1c22b?action=collection%2Ffork&collection-url=entityId%3D16839934-45339059-3fec-4c31-a891-9a12a3e1c22b%26entityType%3Dcollection%26workspaceId%3Ddbde09dc-b7dd-487d-a68f-20d32b008f90) There are two options for posting the document bytes. 1. (often preferred) specify the non-encoded document bytes as the entire request body,and specify the `Content-Type` header, for example,"application/pdf" or "image/jpeg". See the following for supported file formats. 2. Base64 encode the document bytes, specify them in a body "document" field, and specify application/json for the `Content-Type` header. For a list of supported document file types, see [Supported file types](doc:file-types). - [Extract doc at your URL](https://docs.sensible.so/reference/extract-from-url.md): Extract data asynchronously from a document at the specified `document_url`.
For supported file size and types, see [Supported file types](doc:file-types). Take the following steps. 1. Run this endpoint. Sensible recommends including `content_type` body parameter: ```curl curl --location 'https://api.sensible.so/v0/extract_from_url/' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer REDACTED' \ --data '{"document_url": "YOUR_DOC_URL", content_type":"application/pdf"}' ``` 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 a step-by-step tutorial on calling this endpoint, see [Try asynchronous extraction from your URL](doc:api-tutorial-async-1). - [Extract doc at a Sensible URL using specified config](https://docs.sensible.so/reference/generate-an-upload-url-with-config.md): This endpoint's behavior is identical to the [Extract doc at a Sensible URL](ref:generate-an-upload-url) endpoint's behavior, except that Sensible uses the specified config to extract data from the document instead of automatically choosing the best-scoring extraction in the document type. - [Extract doc at a Sensible URL](https://docs.sensible.so/reference/generate-an-upload-url.md): Extract data asynchronously from a document with the following steps: 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 supported file size and types, see [Supported file types](doc: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 curl --location 'https://api.sensible.so/v0/generate_upload_url/' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer REDACTED' \ --data '{"content_type":"application/pdf"}' ``` Step 2. PUT the document: ```curl 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 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](https://docs.sensible.so/docs/api-tutorial-async-2). - [Extract doc at your URL using config](https://docs.sensible.so/reference/provide-a-download-url-with-config.md): This endpoint's behavior is identical to the [Extract doc at your URL](ref:extract-from-url) endpoint's behavior, except that Sensible uses the specified config to extract data from the document instead of automatically choosing the best-scoring extraction in the document type. - [Get CSV extraction](https://docs.sensible.so/reference/get-csv-extraction.md): You can use this endpoint to get CSV files from documents, for example, from PDFs. In more detail, this endpoint converts your JSON document extraction to a comma-separated values. To compile multiple documents into one CSV file, specify the IDs of their recent extractions in the request separated by commas, for example, `/generate_csv/867514cc-fce7-40eb-8e9d-e6ec48cdac34,5093c65f-05bd-46a3-8df7-da3ed00f6d35`. For the best compiled spreadsheet results, configure your SenseML so that the documents output identically named fields. For more information about the conversion process, see [SenseML to spreadsheet reference](doc:excel-reference). For a list of document file types that Sensible can extract data from, see [Supported file types](doc:file-types). Call this endpoint after an extraction completes. For more information about checking extraction status, see the `GET /documents/{id}` endpoint. - [Get Excel extraction](https://docs.sensible.so/reference/get-excel-extraction.md): You can use this endpoint to get Excel files from documents, for example from PDFs. In more detail, this endpoint converts your JSON document extraction to an Excel spreadsheet. To compile multiple documents into one Excel file, specify the IDs of their recent extractions in the request separated by commas, for example, `/generate_excel/867514cc-fce7-40eb-8e9d-e6ec48cdac34,5093c65f-05bd-46a3-8df7-da3ed00f6d35`. For the best compiled spreadsheet results, configure your SenseML so that the documents output identically named fields. For more information about the conversion process, see [SenseML to spreadsheet reference](doc:excel-reference). For portfolio extractions, Sensible returns an Excel file containing fields for all the documents it finds in the PDF. For more information, see [Multi-document spreadsheet](doc:excel-reference#multi-document-spreadsheet). For a list of document file types that Sensible can extract data from, see [Supported file types](doc:file-types). Call this endpoint after an extraction completes. For more information about checking extraction status, see the `GET /documents/{id}` endpoint. - [Extract portfolio at a Sensible URL](https://docs.sensible.so/reference/generate-an-upload-url-for-a-pdf-portfolio.md): Use this endpoint with multiple documents that are packaged into one file (a "portfolio"). For a list of supported file types, see [Supported file types](doc:file-types). Segments a portfolio file into the specified document types (for example, 1099, w2, and bank_statement) and then runs extractions asynchronously for each document Sensible finds in the portfolio. Take the following steps - 1. Use this endpoint to generate a Sensible URL. 2. PUT the document you want to extract data from at the URL, where `SENSIBLE_UPLOAD_URL` is the URL you received from this endpoint's response. For more information about how to PUT the document, see the [generate_upload_url/{document_type}](ref:generate-an-upload-url) endpoint. 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 more about extracting from portfolios, see [Multi-document extractions](doc:portfolio). - [Extract portfolio at your URL](https://docs.sensible.so/reference/provide-a-download-url-for-a-pdf-portfolio.md): Use this endpoint with multiple documents that are packaged into one file (a "portfolio"). For a list of supported file types, see [Supported file types](doc:file-types). Segments a portfolio file at the specified `document_url` into the specified document types (for example, 1099, w2, and bank_statement) and then runs extractions asynchronously for each document Sensible finds in the portfolio. Take the following steps. 1. Run this endpoint. 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 more about extracting from portfolios, see [Multi-document extractions](doc:portfolio). - [List extractions](https://docs.sensible.so/reference/list-extractions.md): Use this endpoint to get a filtered list of past extractions. This endpoint returns a summary for each extraction, listed in reverse chronological order. To get details about an extraction, use the [Retrieve extraction by ID](ref:retrieving-results) endpoint. This endpoint uses keyset pagination to retrieve the next page of results. By default it returns a first page of 20 extractions and an opaque `continuation_token` that you can pass in the next request to get the next page of results, until the endpoint returns `continuation_token` to indicate the last page. Use the `limit` parameter to configure page size. - [Retrieve extraction by ID](https://docs.sensible.so/reference/retrieving-results.md): Use this endpoint in conjunction with asynchronous extraction requests to retrieve your results. You can also use this endpoint to retrieve the results for documents extractions from the synchronous /extract endpoint. To poll extraction status, check the `status` field in this endpoint's response. When the extraction completes, the returned status is `COMPLETE` and the response includes results in the `parsed_document` field. For fields in the extraction for which Sensible couldn't find a value, Sensible returns null. - [Get extraction statistics](https://docs.sensible.so/reference/statistics.md): Returns daily extraction coverage statistics as a `coverage_histogram` per config. Sensible returns coverage for each config that was used for at least one extraction performed in the specified environments in the specified time period. For more information about coverage, see [Monitoring extractions](doc:metrics). For more information about the returned `coverage_histogram`, see the response model. - [Get token for review link](https://docs.sensible.so/reference/account-auth-tokens.md): Use this endpoint to provide a [reviewer](doc:human-review) with a "magic link" they can use to approve, reject, and edit extracted document data without logging into a Sensible account. This endpoint's response includes an authorization token you can use to compose the magic link. For information about implementing human review, see [Human review implementation](doc:human-review-implementation). For example, for an extraction id `b84bd1c8-113e-4e1e-8462-379f0dde2abf`, make the following request: ```curl curl --location 'https://api.sensible.so/v0/account/auth_tokens' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --data '{ "grants": [ { "route": "/documents/{id}", "method": "GET", "path": { "id": "b84bd1c8-113e-4e1e-8462-379f0dde2abf" } }, { "route": "/extractions/{id}", "method": "PUT", "path": { "id": "b84bd1c8-113e-4e1e-8462-379f0dde2abf" } } ], "expires": "2025-01-15T22:14:35.720Z" }' ``` - [Authentication](https://docs.sensible.so/reference/authentication.md) - [Introduction](https://docs.sensible.so/reference/choosing-an-endpoint.md) - [MCP](https://docs.sensible.so/reference/mcp.md) ## Changelog - [February 2026](https://docs.sensible.so/changelog/february-2026.md) - [January 2026](https://docs.sensible.so/changelog/january-2026.md) - [December 2025](https://docs.sensible.so/changelog/december-2025.md) - [November 2025](https://docs.sensible.so/changelog/november-2025.md) - [October 2025](https://docs.sensible.so/changelog/october-2025.md)