Charta API
Send documents to Charta from your own tools, scripts or automation platforms such as Zapier, Make and n8n. Every document you send is stored, classified and summarized automatically, like any import.
Overview
The API is a small REST interface over HTTPS that exchanges JSON. All endpoints live under one base URL:
https://chartahub.app/api/public/v1
- API access is included in the Pro and Premium plans.
- Only PDF files are accepted, up to 20 MB each.
- Documents are processed in the background: text extraction, classification, summary and party detection.
- The full machine-readable description is available as an OpenAPI 3.1 document.
Authentication
Requests are authenticated with a team access key. An owner or an administrator creates it in Charta under Settings › Integrations › Zapier, Make, n8n. Keys start with chk_.
- The key is displayed only once, when it is created. Charta stores a hash of it, never the key itself.
- A key belongs to a team: documents are added to that team, on behalf of the member who created the key.
- A key can be revoked at any time from the same settings page. Revoked keys stop working immediately.
- The team's plan is checked on every request.
Send the key in the Authorization header:
Authorization: Bearer chk_your_key
The X-Api-Key: chk_your_key header is also accepted.
Check a key
/meReturns the team that owns the key. It creates nothing, which makes it the right call to test a connection.
curl https://chartahub.app/api/public/v1/me \ -H "Authorization: Bearer chk_your_key"
Response 200
{
"teamName": "Durand SAS",
"keyName": "Zapier — supplier invoices"
}Send a document
/documentsAdds a PDF to the team's documents. Send either the file itself or a public link to it.
Option 1: upload the file (multipart/form-data)
curl -X POST https://chartahub.app/api/public/v1/documents \ -H "Authorization: Bearer chk_your_key" \ -F "file=@supplier-contract.pdf" \ -F "fileName=Supplier contract 2026" \ -F "note=Received through the supplier portal"
Option 2: give a link (application/json)
curl -X POST https://chartahub.app/api/public/v1/documents \
-H "Authorization: Bearer chk_your_key" \
-H "Content-Type: application/json" \
-d '{"fileUrl": "https://example.com/files/contract.pdf", "note": "Sent by our CRM"}'Charta downloads the file itself. The link must use https and point to a public address: links to private or internal networks are refused. The download is limited to 20 MB and 20 seconds.
Fields
| Field | Required | Description |
|---|---|---|
file | one of the two | The PDF file (multipart only). |
fileUrl | one of the two | Public https link to the PDF (JSON only). |
fileName | no | Name shown in Charta. “.pdf” is added if missing. Defaults to the original file name. |
note | no | Context note attached to the document, up to 5,000 characters. |
Response 201
{
"id": "7b0c2f4e-1d2a-4c3b-9e8f-0a1b2c3d4e5f",
"fileName": "Supplier contract 2026.pdf",
"status": "processing"
}The document appears right away in Charta, with the origin “API”. Its summary and classification follow within seconds.
Errors and limits
Errors return a JSON body with a message explaining the problem.
| 400 | No file sent, the file is not a valid PDF, or the link is not https, not public, or could not be downloaded. |
| 401 | Missing, invalid or revoked key. |
| 403 | The team's plan does not include API access (Pro or Premium required). |
| 413 | The file is larger than 20 MB. |
| 429 | Too many requests: the limit is 30 requests per minute from the same IP address. |
Zapier
The Charta app for Zapier lets you send documents without writing any code.
- In Charta, create a key under Settings › Integrations and copy it.
- In Zapier, create a Zap and choose its trigger, for example “New Attachment” in Gmail.
- Add an action, search for Charta and choose Send Document.
- Paste your key when Zapier asks for it. Your Charta team name is displayed once connected.
- In PDF File, pick the file from the trigger. Optionally set a document name and a note.
- Test the step: the document appears in Charta with the origin “API”.
Make and n8n
Both tools can call the API with their generic HTTP module.
- Make: module “HTTP – Make a request”, method POST, URL
https://chartahub.app/api/public/v1/documents, headerAuthorization: Bearer chk_…, body type “Multipart/form-data” with a “file” field. - n8n: node “HTTP Request”, method POST, same URL and header, body “Form-Data” with an “n8n Binary File” parameter named “file”.
The same steps are shown inside Charta, in Settings › Integrations.
Support
Questions or problems with the API: write to contact@chartahub.app. Please include the time of the request and the first characters of your key (for example chk_A1b2C3d4), never the full key.
See also our security page, privacy policy and terms of service.
