canonical: https://jentic.com/apis/algodocs.com/algodocs

# Algodocs API

Jentic publishes the only available OpenAPI specification for Algodocs API, keeping it validated and agent-ready. Algodocs is an intelligent document data extraction service for invoices, receipts, and other structured documents. The REST API lets users upload documents (file or base64), route them to a configured extractor, list and inspect documents, organise them into folders, and retrieve the extracted JSON for downstream automation. Authentication uses an API key in the Authorization header.

## For AI agents

Upload PDFs and images to Algodocs, route them to an extractor, and retrieve structured JSON data for invoices, receipts, and other documents.

## Scope

Does not handle document signing, e-signature workflows, or generic file storage - use for routing documents to configured extractors and retrieving structured JSON only.

## Capabilities

- List the configured extractors in an Algodocs account with /extractors
- Upload a document file via multipart with /documents/upload or as base64 with /documents/upload-base64
- Inspect documents and their processing status with /documents and /documents/{id}
- Retrieve extracted data for a single document via /documents/{id}/extracted-data
- Pull all extracted data for an extractor in bulk for downstream loading
- List the folders associated with an extractor to organise document batches

## Use cases

### Invoice ingestion into accounting

An AP automation flow uploads supplier invoice PDFs to Algodocs by POSTing to /documents/upload with the chosen extractor id, polls /documents/{id} for completion, then pulls the structured JSON via /documents/{id}/extracted-data and writes line items into the accounting system. The integration replaces manual data entry with a controlled, auditable pipeline.

Example prompt: POST /documents/upload with the invoice file and extractor id, poll GET /documents/{id} for status, then GET /documents/{id}/extracted-data and post line items to the accounting system

### Receipt capture from a mobile app

A receipt capture mobile app sends base64-encoded images to /documents/upload-base64 alongside the receipt extractor id. Algodocs returns a document id, and the app polls /documents/{id}/extracted-data once processing completes, displaying the parsed merchant, total, and date back to the user.

Example prompt: POST /documents/upload-base64 with the encoded image and extractor id, then GET /documents/{id}/extracted-data once status reports completion

### Bulk extracted-data export to a warehouse

A data team exports all extracted data for a given extractor into a warehouse table once a day by calling /extractors/{extractorId}/extracted-data. Because the endpoint already returns structured JSON, the team avoids per-document polling for historical loads.

Example prompt: GET /extractors/{extractorId}/extracted-data with the date range and append the rows to the warehouse table

### Agent-driven document parsing through Jentic

A Jentic agent receives an intent like 'extract data from this invoice' along with a file, uploads it to Algodocs, and returns the parsed JSON to the user. The agent never needs to handle the Authorization header - Jentic manages the credential and resolves the right extractor id from the user's account.

Example prompt: Search Jentic for 'extract data from a document', execute POST /documents/upload with the chosen extractor id, then chain GET /documents/{id}/extracted-data to return the structured JSON

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /extractors | List all extractors |
| POST | /documents/upload | Upload a document for extraction |
| POST | /documents/upload-base64 | Upload a base64-encoded document |
| GET | /documents/{id} | Retrieve a document and its status |
| GET | /documents/{id}/extracted-data | Retrieve extracted data for a document |
| GET | /extractors/{extractorId}/extracted-data | Retrieve all extracted data for an extractor |

## Key resources

- **Extractors** — List and inspect the configured Algodocs extractors used to parse documents
- **Documents** — Upload (file or base64), list, retrieve, and delete documents
- **Extracted Data** — Retrieve extracted JSON data for a single document or in bulk for an extractor
- **Folders** — List folders attached to an extractor for organising document batches

## Why Jentic

- **Setup:** Wiring Algodocs by hand means attaching its API key, uploading documents by file or base64 to app.algodocs.com, and polling extractor results yourself. Through Jentic you install once, import the Algodocs API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** Algodocs puts the extractor and document ids in the URL path (/extractors/{extractorId}/extracted-data, /documents/{id}/extracted-data), so a rule can pin your agent to one extractor or document. You choose the operations it may call, so uploading new documents is not included unless you add it.
- **Credential handling:** Your Algodocs API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upload a document for extraction' or 'retrieve extracted JSON data', and Jentic returns the matching Algodocs operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Hugging Face Inference API** — Use Hugging Face hosted document understanding models when a fully managed extractor service is not required
- **OpenAI API** — Use OpenAI vision-capable models for ad-hoc document parsing without configuring extractors
- **Airtable API** — Pair with Algodocs to land extracted invoice rows into an Airtable base for review

## FAQ

### Why is there no official OpenAPI spec for Algodocs API?

Algodocs does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Algodocs API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Algodocs API use?

Algodocs uses an API key sent in the Authorization request header. Jentic stores the key encrypted in its credential vault and injects the header at execution time so the raw key never enters the agent's prompt or response context.

### Can I upload an invoice PDF for extraction with the Algodocs API?

Yes. POST /documents/upload as multipart with the file and the extractor id. Algodocs returns a document id you can poll with GET /documents/{id}; once processing completes, GET /documents/{id}/extracted-data returns the structured JSON.

### What are the rate limits for the Algodocs API?

The OpenAPI spec does not declare rate limits. Algodocs enforces plan-based limits server-side, so throttle high-volume document uploads and consider the bulk extracted-data endpoint instead of per-document polling for backfills.

### How do I extract data from a document through Jentic?

Search Jentic for 'extract data from a document', load the schema for POST /documents/upload, and execute it with the file and extractor id. Jentic chains the call to GET /documents/{id}/extracted-data once the document completes processing.

### Can I send a base64-encoded document instead of a file upload?

Yes. POST /documents/upload-base64 with the encoded payload and the extractor id. This is useful for mobile clients that already hold the file bytes in memory and prefer not to write to disk.

### Can I limit what my agent is allowed to do with the Algodocs API?

Yes. Because you run Jentic One yourself, your own rules decide which Algodocs operations and credentials the agent may use. Algodocs puts the extractor and document ids in the URL path, such as GET /extractors/{extractorId}/extracted-data and GET /documents/{id}/extracted-data, so a rule can pin the agent to a single extractor or document. You also choose the operations it may call, so uploading new documents via POST /documents/upload is excluded unless you explicitly allow it.
