⚠️ v2 Migration (breaking changes)
DIMARC API - Documentation
🔐 Authentication
🚀 Agents
📄 Documents
🔍 Documentalist Agent
📄 Extractor Agent
🗂️ Classification
🪝 Webhooks
⭐ Usage
📚 Error codes
v2 Migration
Section titled “v2 Migration”Authentication
Section titled “Authentication”- Prerequisites
- Create an API key
- Retrieving the token
- Using the token
- Security best practices
- Troubleshooting
Documentalist Agent
Section titled “Documentalist Agent”- Prerequisites
- Retrieving an agent’s ID
- Communication with the agent
- Managing history
- Limitations and considerations
Extractor Agent
Section titled “Extractor Agent”- Prerequisites
- Two extraction approaches
- Processing modes
- Synchronous extraction
- Error codes
- Asynchronous extraction
- Parameters structure
- Limitations and considerations
Webhooks
Section titled “Webhooks”Error codes
Section titled “Error codes”Every error from the /v2 endpoints comes back in the same envelope:
{ "status": "error", "code": "agent_not_found", "error": "Agent not found", "detail": { } }code is a stable machine identifier, error a human-readable message that can change without notice, detail an optional object. The OpenAI-compatible API has its own error format — see OpenAI-compatible API.
The full set of codes the API can return:
| Code | Meaning |
|---|---|
agent_not_found |
Agent not found, wrong type, private, or invalid organization |
thread_not_found |
The thread_id provided does not belong to this agent |
infected_file |
File rejected by the antivirus |
antivirus_unavailable |
Antivirus service unavailable |
agent_unavailable |
Agent temporarily unavailable (processing queue) |
agent_timeout |
Agent response timed out |
extraction_failed |
Processing failed (extraction or knowledge response) |
no_data_extracted |
The document holds no usable data |
classification_failed |
Classification processing failed |
invalid_request |
Invalid request (body or URL validation) |
internal_error |
Unexpected internal error |
unsupported_file_type |
Unsupported file type |
file_too_large |
File above the maximum allowed size |
document_already_exists |
Document already exists |
document_not_found |
Document not found |
document_synced |
Document synchronized from a drive folder |
quota_exceeded |
Usage quota exceeded |
spending_limit_reached |
Organization spending limit reached |
rate_limit_exceeded |
Rate exceeded; Retry-After carries the seconds until the next window |
concurrent_limit_exceeded |
Too many concurrent jobs for the organization; Retry-After carries the seconds to wait before retrying |
queue_saturated |
Processing engine saturated; Retry-After carries the seconds to wait before retrying |
turn_not_found |
GET /v2/turns/{turn_id}: identifier unknown, expired, or from another organization |
maintenance |
Service temporarily closed to new requests (503); reading results (GET /v2/turns/{turn_id}) stays available, retry in a few minutes |
invalid_agent_type |
Invalid agent type for this endpoint |
invalid_config |
Invalid agent configuration |
webhook_not_found |
No webhook configured for this event |
organization_not_found |
Organization not found |
unauthorized |
Missing or invalid authentication |
invalid_client |
Invalid client credentials (/v2/token) |
forbidden |
API access disabled for the organization |
Support and Assistance
Section titled “Support and Assistance”For any questions regarding the DIMARC API, contact our technical support team at contact@dimarc.fr