Documents
GET
/documents
List documents
Scopes
- documents:read
Parameters
- cursor
- limit
- qFull-text search on names and titles.
- status
Responses
-
200OK
DocumentPageFields (2)- dataRequired
- next_cursorRequiredPass as cursor for the next page; null on the last page.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
POST
/documents
Create
Scopes
- documents:write
Parameters
- Idempotency-KeyRequiredStored 24 h per company and key. Same key with a different body returns 422.
Request body
DocumentInput
Fields (12)
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- external_idYour system's id, unique per company.
Responses
-
201Created
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- 400Validation failed.
- 409Version conflict, external_id taken, or a secret that cannot be replayed.
- 422Semantically invalid, or an Idempotency-Key reused with a different body.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
GET
/documents/{id}
Get
Scopes
- documents:read
Parameters
- idRequired
Responses
-
200OK
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
PATCH
/documents/{id}
Update (partial)
Scopes
- documents:write
Parameters
- idRequired
- Idempotency-Key
- If-MatchThe version you last read; 409 version_conflict when it changed.
Request body
DocumentInput
Fields (12)
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- external_idYour system's id, unique per company.
Responses
-
200OK
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- 400Validation failed.
- 404Not found. Records of other companies are also reported as not found.
- 409Version conflict, external_id taken, or a secret that cannot be replayed.
- 422Semantically invalid, or an Idempotency-Key reused with a different body.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
DELETE
/documents/{id}
Delete (soft; restorable for 30 days)
Scopes
- documents:write
Parameters
- idRequired
- Idempotency-Key
Responses
- 204Deleted
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
POST
/documents/{id}/restore
Restore within 30 days of deletion
Scopes
- documents:write
Parameters
- idRequired
- Idempotency-Key
Responses
-
200OK
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
PUT
/documents/by_external_id/{external_id}
Create or replace by your external id
Scopes
- documents:write
Parameters
- external_idRequired
- Idempotency-Key
- If-MatchThe version you last read; 409 version_conflict when it changed.
Request body
DocumentInput
Fields (12)
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- external_idYour system's id, unique per company.
Responses
-
200Updated
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
-
201Created
DocumentFields (19)- id
- versionIncrements on every write. Send it back in If-Match.
- created_at
- updated_at
- deleted_at
- external_idYour system's id, unique per company.
- expiry_status
- statusDisplayed status: pending, archived, or renewed from lifecycle, otherwise expiry_status.
- titleRequired
- description
- category_idRequired
- lifecycle
- start_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- end_dateCalendar date in the organization's timezone (YYYY-MM-DD).
- reminder_daysDays before end_date to remind; replaces the category rule and the default. Null follows them.
- reference_type
- reference_id
- renewal_of_id
- tags
- 400Validation failed.
- 409Version conflict, external_id taken, or a secret that cannot be replayed.
- 422Semantically invalid, or an Idempotency-Key reused with a different body.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
GET
/documents/{id}/files
List a document's files
Scopes
- documents:read
Parameters
- idRequired
- cursor
- limit
Responses
-
200OK
DocumentFilePageFields (2)- dataRequired
- next_cursorRequiredPass as cursor for the next page; null on the last page.
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
POST
/documents/{id}/files
Upload a file (25 MB; scanned before it is stored)
Scopes
- documents:write
Parameters
- idRequired
- Idempotency-KeyRequiredStored 24 h per company and key. Same key with a different body returns 422.
Request body
multipart/form-data
Responses
-
201Stored after a clean scan
DocumentFileFields (7)- idRequired
- document_idRequired
- original_nameRequired
- mime_typeRequired
- size_bytesRequired
- sha256Required
- created_atRequired
- 404Not found. Records of other companies are also reported as not found.
- 422Rejected: malware, type mismatch, or too large.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
DELETE
/documents/{id}/files/{file_id}
Remove a file (soft delete)
Scopes
- documents:write
Parameters
- idRequired
- file_idRequired
- Idempotency-Key
Responses
- 204Removed
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
GET
/documents/{id}/files/{file_id}/content
Download the original bytes
Scopes
- documents:read
Parameters
- idRequired
- file_idRequired
Responses
- 200The original file, unmodified
- 404Not found. Records of other companies are also reported as not found.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.
GET
/document_categories
List document categories (managed in the app)
Scopes
- documents:read
Responses
-
200OK
DocumentCategoryPageFields (2)- dataRequired
- next_cursorRequiredPass as cursor for the next page; null on the last page.
- 401Missing, revoked, or expired API key.
- 403The key lacks the scope.
- 429Rate limited: 60 requests per minute per key.