Endpoints for management of files
Hypatos REST API (2.51.0)
The Hypatos API is organized around REST. The majority of the endpoints provide CRUD functionality for resources. The API is also exposing Intent Resources which mimic user intents or actions.
The Hypatos API uses OAuth 2.0 Client Credential Grant to authenticate requests. Before making any requests to any endpoint a client must authenticate with the authorization server and requests an access token from the token endpoint.
POST /auth/token HTTP/1.1
Host: api.cloud.hypatos.ai
Content-Type: application/x-www-form-urlencoded
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
grant_type=client_credentialsAuthorization header contains client_id:client_secret encoded as explained in RFC Client Password section.
If the authorization server authenticated the client successfully, an access token is issued. Here is an example successful response:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token": "mF_9.B5f-4.1JqM",
"expires_in": 86400,
"scope": "enrichment.write files.read",
"token_type": "Bearer",
}This token can be used to authenticate the requests to API endpoints by sending a Bearer token in the Authorization HTTP header. The following example demonstrates how to use the access token to retrieve a list of documents.
GET /v2/documents HTTP/1.1
Host: api.cloud.hypatos.ai
Authorization: Bearer mF_9.B5f-4.1JqMChanges to this API are released regularly. We use Semantic Versioning 2.0.0 scheme for versioning so that the clients can identify any backward-incompatible changes easily. Briefly summarized one can say, if the MAJOR version of the new API version didn't change you can expect the new version to be backward-compatible.
In order to maximise the stability of our API, we institue rate limits for all of API endpoints. Clients who send too many requests over a given period of time will see error responses that show up as status code 429 Too Many Requests.
When you see error responses with status code 429, it means you exhausted your current quota and need to withhold from sending further requests until the quota is reset. We encourage you not to wait until you get a 429 error but to monitor your quota in each request. In each response you receive from the API, you will find HTTP headers providing the details about your current quota. Here is the list of the HTTP headers:
x-ratelimit-limit: Indicates the quota associated to the client in the current time-window followed by the description of the quota policy.x-ratelimit-remaining: Indicates the number of remaining requests in the current time-windowx-ratelimit-reset: Indicates the number of seconds until quota reset of the current time-window
Please note that IETF is currently in the process of publishing a standard for these headers. Please explore the draft for more details.
A basic technique to gracefully handle rate limits is watch for your quota permanently and increase the time between your request as the quota is decreasing. To recover from a 429 error you need a retry mechanism following an exponential backoff schedule.
Project data
Extraction Model id
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
- API EUhttps://api.cloud.hypatos.ai/v2/projects
- API UShttps://api.cloud.hypatos.com/v2/projects
- Mock serverhttps://hypatos.redocly.app/_mock/openapi/projects
- curl
- Java
- Python
- Node.js
- JavaScript
curl -i -X POST \
https://api.cloud.hypatos.ai/v2/projects \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"name": "My Project",
"note": "My project description note",
"ocr": {
"engine": "abbyy",
"features": [
"barcodes"
],
"languages": [
"German",
"English"
]
},
"extractionModelId": "63e6663823b4c1f5287398bb",
"completion": "manual",
"duplicates": "allow",
"members": {
"allow": "all"
},
"schema": {
"version": 1,
"dataPoints": [
{
"internalName": "type",
"displayName": "Type",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "number",
"displayName": "Number",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "issuedAt",
"displayName": "Issued At",
"type": "date",
"preferDayOfMonth": "last",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "deliveredAt",
"displayName": "Delivered At",
"type": "date",
"preferDayOfMonth": "last",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "currency",
"displayName": "Currency",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
}
],
"features": {
"derivation": false
},
"enrichment": {},
"normalization": {},
"validation": {}
},
"retentionDays": 180,
"isLive": false
}'Project created
Extraction Model id
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
Project document retention in days
{ "id": "63e6663823b4c1f5287398bb", "createdAt": "1990-12-31T15:46:19.384990Z", "createdBy": "63e6663823b4c1f5287398bb", "updatedAt": "1990-12-31T15:46:19.384990Z", "updatedBy": "63e6663823b4c1f5287398bb", "name": "My Project", "note": "My project description note", "extractionModelId": "63e6663823b4c1f5287398bb", "ocr": { "engine": "abbyy", "features": [ … ], "languages": [ … ] }, "completion": "manual", "duplicates": "allow", "members": { "allow": "all" }, "retentionDays": 180, "isLive": false }
- API EUhttps://api.cloud.hypatos.ai/v2/projects
- API UShttps://api.cloud.hypatos.com/v2/projects
- Mock serverhttps://hypatos.redocly.app/_mock/openapi/projects
- curl
- Java
- Python
- Node.js
- JavaScript
curl -i -X GET \
'https://api.cloud.hypatos.ai/v2/projects?offset=0&limit=20&sort=-createdAt&isLive=true&search=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Projects list retrieved
Project member id
Project member id
Project note
Extraction Model id
Array of abbyy ocr languages used within a project
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
Project document retention in days
{ "data": [ { … } ], "limit": 20, "offset": 0, "totalCount": 1 }
- API EUhttps://api.cloud.hypatos.ai/v2/projects/{id}
- API UShttps://api.cloud.hypatos.com/v2/projects/{id}
- Mock serverhttps://hypatos.redocly.app/_mock/openapi/projects/{id}
- curl
- Java
- Python
- Node.js
- JavaScript
curl -i -X GET \
https://api.cloud.hypatos.ai/v2/projects/63e6663823b4c1f5287398bb \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Project by id
Extraction Model id
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
Project document retention in days
{ "id": "63e6663823b4c1f5287398bb", "createdAt": "1990-12-31T15:46:19.384990Z", "createdBy": "63e6663823b4c1f5287398bb", "updatedAt": "1990-12-31T15:46:19.384990Z", "updatedBy": "63e6663823b4c1f5287398bb", "name": "My Project", "note": "My project description note", "extractionModelId": "63e6663823b4c1f5287398bb", "ocr": { "engine": "abbyy", "features": [ … ], "languages": [ … ] }, "completion": "manual", "duplicates": "allow", "members": { "allow": "all" }, "retentionDays": 180, "isLive": false }
Request
Update a project by id. This endpoint supports partial updates using PATCH semantics:
- Only fields present in the request will be updated
- Null values will clear optional fields (note, retentionDays)
- Absent fields will remain unchanged
- Required fields (name, extractionModelId, ocr, completion, duplicates, isLive, members, schema) cannot be set to null
- At least one field must be provided in the request
Project update data (all fields optional for partial update)
Extraction Model id
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
- API EUhttps://api.cloud.hypatos.ai/v2/projects/{id}
- API UShttps://api.cloud.hypatos.com/v2/projects/{id}
- Mock serverhttps://hypatos.redocly.app/_mock/openapi/projects/{id}
- curl
- Java
- Python
- Node.js
- JavaScript
curl -i -X PATCH \
https://api.cloud.hypatos.ai/v2/projects/63e6663823b4c1f5287398bb \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"name": "My Project",
"note": "My project description note",
"ocr": {
"engine": "abbyy",
"features": [
"barcodes"
],
"languages": [
"German",
"English"
]
},
"extractionModelId": "63e6663823b4c1f5287398bb",
"completion": "manual",
"duplicates": "allow",
"retentionDays": 180,
"isLive": false,
"members": {
"allow": "all"
},
"schema": {
"version": 1,
"dataPoints": [
{
"internalName": "type",
"displayName": "Type",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "number",
"displayName": "Number",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "issuedAt",
"displayName": "Issued At",
"type": "date",
"preferDayOfMonth": "last",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "deliveredAt",
"displayName": "Delivered At",
"type": "date",
"preferDayOfMonth": "last",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
},
{
"internalName": "currency",
"displayName": "Currency",
"type": "string",
"source": {
"type": "extractor"
},
"normalization": [],
"rules": {}
}
],
"features": {
"derivation": false
},
"enrichment": {},
"normalization": {},
"validation": {}
}
}'Project updated
Extraction Model id
ProjectCompletion type
automatic- Mark documents as completed after succesfull validationmanual- Mark documents to review after succesfull validation
How duplicates documents show be handle
allow- Allow documents duplicates to be processedfail- Mark documents duplicates as failed
Project document retention in days
{ "id": "63e6663823b4c1f5287398bb", "createdAt": "1990-12-31T15:46:19.384990Z", "createdBy": "63e6663823b4c1f5287398bb", "updatedAt": "1990-12-31T15:46:19.384990Z", "updatedBy": "63e6663823b4c1f5287398bb", "name": "My Project", "note": "My project description note", "extractionModelId": "63e6663823b4c1f5287398bb", "ocr": { "engine": "abbyy", "features": [ … ], "languages": [ … ] }, "completion": "manual", "duplicates": "allow", "members": { "allow": "all" }, "retentionDays": 180, "isLive": false }
- API EUhttps://api.cloud.hypatos.ai/v2/projects/{id}/schema
- API UShttps://api.cloud.hypatos.com/v2/projects/{id}/schema
- Mock serverhttps://hypatos.redocly.app/_mock/openapi/projects/{id}/schema
- curl
- Java
- Python
- Node.js
- JavaScript
curl -i -X GET \
https://api.cloud.hypatos.ai/v2/projects/63e6663823b4c1f5287398bb/schema \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Schema retrieved
{ "version": 1, "dataPoints": [ { … }, { … }, { … }, { … }, { … } ], "features": { "derivation": false }, "enrichment": {}, "normalization": {}, "validation": {} }