Úvod
Redque API poskytuje všechny dostupné funkcionality pro vytěžování dokumentů. Webová aplikace Alice rovněž využívá Redque API, veškerá data nahraná přes webovou aplikaci lze tak získat pomocí API a naopak vešekeré změny provedené přes API se ihned zobrazí ve webové aplikaci Alice.
Prostředí
Redque nabízí dvě nezávislá oddělená prostředí – Demo a Produkční prostředí. Obě prostředí mají stejné API i webové rozhraní (aplikace Alice), jediný rozdíl je v omezení počtu vytěžených dokumentů v Demo prostředí. Uživatelský účet pro Demo prostředí získáte zdarma zde.
- | Demo prostředí | Produkční prostředí |
---|---|---|
Webová aplikace (Alice) | https://demo.redque.com/ | https://web-v2.redque.com/ |
API | https://demoapi.redque.com/ | https://api.redque.com/ |
Identity Server | https://demoidentity.redque.com/ | https://identity.redque.com/ |
Autentizace
Redque API využívá OAuth 2.0 autentizační protokol. Pro volání API je třeba nejdříve získat autentizační JWT token (Access Token) od Identity Serveru. Získaný JWT token je pak posílat v HTTP hlavičce každého API požadavku:
Authorization: Bearer eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9...
Identity Serveru vydá JWT token na základě úspěšného ověření uživatele pomocí OAuth Password Grant:
# Vyžádání JWT tokenu pro uživatele jan.novak@gmail.com s heslem Redque123 (pozor na URL encoding u znaku @ a na to, že názvy parametrů příkazu curl jsou case-sensitive)
curl -X POST -d "grant_type=password&client_id=api_redque&username=jan.novak%40gmail.com&password=Redque123" "https://demoidentity.redque.com/connect/token"
# Odpověď serveru
{"access_token":"eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9...","expires_in":3600,"token_type":"Bearer","scope":"v1.public"}
Vytěžení dokumentu
Redque API podporuje dva základní způsoby vytěžování dokumentu - Vložení dokumentu a Vytěžení bez uložení. V obou případech dojde automaticky k vytěžení dokumentu, avšak při Vložení dokumentu je dokument po skončení vytěžování nadále k dispozici a uživatel s ním pak může dále pracovat (ať již přes API, nebo ve webové aplikaci Alice). Při Vytěžení bez uložení je dokument pouze vytěžen, ale není nikde uložen.
Vložení dokumentu
Dokument se vkládá pomocí endpointu POST /v1/documents
, dokument je dostupný jak přes API tak v aplikaci Alice.
# Vložení dokumentu Ukazkovy_dokument.pdf z lokálního počítače
curl -X POST -H "Authorization: Bearer eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9..." -F "File=@Ukazkovy_dokument.pdf" "https://demoapi.redque.com/v1/documents"
# Odpověď serveru
{"documentId":"0e9d4b614e1f4befa24c8649f63d8ede"}
Dokument lze načíst pomocí endpointu GET /v1/documents
pomocí jeho ID, s dokumentem lze pak pomocí jeho ID pracovat i v ostatních endpointech API.
# Vyžádání dokumentu pomocí ID získaného v předchozím volání
curl -X GET -H "Authorization: Bearer eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9..." "https://demoapi.redque.com/v1/documents/0e9d4b614e1f4befa24c8649f63d8ede"
# Odpověď serveru
{
"id": "0e9d4b614e1f4befa24c8649f63d8ede",
"fileName": "Ukazkovy_dokument.pdf",
"state": "Extracted",
"documentClass": "czech_invoice",
"fields": {
"invoice_number_sm": {
"value": "FA987654",
"wordIds": [
1
]
},
"issued_by_name_sm": {
"value": "Smyšlená společnost s.r.o.",
"wordIds": [
0
]
},
"issued_by_id_sm": {
"value": "123456789",
"wordIds": [
16
]
}
...
}
Vytěžení bez uložení
Dokument se odešle k vytěžení pomocí endpointu POST /v1/extract
, kde je asynchronně zpracován.
# Odeslání dokumentu Ukazkovy_dokument.pdf k vytěžování
curl -X POST -H "Authorization: Bearer eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9..." -F "File=@Ukazkovy_dokument.pdf" "https://demoapi.redque.com/v1/extract"
# Odpověď serveru
{
"operationId": "f71b007b9ba740f69f52655a8d92a1cc"
}
Výsledek vytěžení se získá pomocí endpointu GET /v1/extract
za pomoci ID operace, který vrátil předchozí endpoint. Endpoint GET /v1/extract
vrátí HTTP kód 200 OK
a spolu s ním vytěžená pole dokumentu, případně vrátí HTTP kód 202 Accepted
, pokud vytěžení ještě neskončilo.
# Zíkání vytěženého dokumentu pomocí ID operace
curl -X GET -H "Authorization: Bearer eyJhbGciOiJFUzUxMiIsInR5cCI6ImF0K2p3dCJ9..." "https://demoapi.redque.com/v1/extract/f71b007b9ba740f69f52655a8d92a1cc"
# Odpověd serveru
HTTP/1.1 200 OK
{
"operationId": "f71b007b9ba740f69f52655a8d92a1cc",
"isSuccess": true,
"extractionTime": "2023-08-29T16:08:40.672Z",
"fields": {
"invoice_number_sm": {
"fieldValue": "FA987654"
},
"issued_by_name_sm": {
"fieldValue": "Smyšlená společnost s.r.o.",
},
...
}
}
# Odpověd serveru - vytěžování ještě neskončilo
HTTP/1.1 202 Accepted
Document is in state Extracting