TELDAR API Documentation

Version : 1.0.0

Dear Customer,

This documentation presents the complete TELDAR AI API, an advanced solution for processing PDF documents using artificial intelligence.

Overview: The TELDAR API uses advanced natural language processing (NLP) algorithms and machine learning techniques to analyze your documents and generate contextually appropriate responses.

Key Features:

  • Multilingual optical character recognition (OCR)
  • Intelligent page classification
  • Automatic summary generation
  • Asynchronous processing for optimal performance
  • Comprehensive RESTful API with secure authentication

Authentication:

Authorization: Bearer <VOTRE_API_TOKEN>

All endpoints require a Bearer token sent in the Authorization header.

Base URL:

https://api.teldar.ai

1. Upload a document (POST /documents/)

POST /documents/

Upload a PDF document either by sending a file or by providing a URL.

You can upload a document to our AI system to recover it's id and the page ids

Parameter Value
file
				
					
				
			

Request (multipart/form-data)

Field Type Required Description
title string Yes Document title (at least 1 character)
description string No Optional document description
metadata string (JSON) No JSON string for custom metadata
file file (application/pdf) Conditional PDF file to upload (if pdf_url is not used)
pdf_url string Conditional URL pointing to a PDF (if no file)

Réponse 201 Created

{
"id": "<document_id>",
"title": "Mon document",
"status": "uploaded"
}

Code example

# cURL
curl --location 'https://api.teldar.ai/documents/' \
--header 'Authorization: Bearer ' \
--form 'file=@"/C:/path/to/file/SPP24032513.pdf"' \
--form 'title="file_title"' \
--form 'description="Created during automated tests"' \
--form 'metadata="{\"source\":\"original_file\",\"upload_date\":\"2025-05-13\"}"'
# PHP
$curl = curl_init();

curl_setopt_array($curl, array(
	CURLOPT_URL => 'https://api.teldar.ai/documents/',
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_ENCODING => '',
	CURLOPT_MAXREDIRS => 10,
	CURLOPT_TIMEOUT => 0,
	CURLOPT_FOLLOWLOCATION => true,
	CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	CURLOPT_CUSTOMREQUEST => 'POST',
	CURLOPT_POSTFIELDS => array(	
		'file'=> new CURLFILE('/C:/path/to/file/dummy.pdf'), // Option 1
		'pdf_url' => 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf' // Option 2
		'title' => 'title_file',
		'description' => 'Created during automated tests',
		'metadata' => '{"source":"original_file","upload_date":"2025-05-13"}'
	), 
	CURLOPT_HTTPHEADER => array(
		'Authorization: Bearer '
	),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
# JavaScript

const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ");

const formdata = new FormData();
formdata.append("file", fileInput.files[0], "/C:/path/to/file/dummy.pdf"); # Option 1
formdata.append("pdf_url", "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"); # Option 2
formdata.append("title", "file_title");
formdata.append("description", "Created during automated tests");
formdata.append("metadata", "{\"source\":\"original_file\",\"upload_date\":\"2025-05-13\"}");

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: formdata,
  redirect: "follow"
};

fetch("https://api.teldar.ai/documents/", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));
# Python

import requests

url = "https://api.teldar.ai/documents/"

payload = {'title': 'title_file',
'description': 'Created during automated tests',
'metadata': '{"source":"original_file","upload_date":"2025-05-13"}',
'pdf_url': 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf'} # Option 1: Use URL
files=[
  ('file',('SPP24032513.pdf',open('/C:/path/to/file/dummy.pdf','rb'),'application/pdf')) # Option 2: Use file
]
headers = {
  'Authorization': 'Bearer '
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

2. List documents (GET /documents/)

GET /documents/

Retrieves a paginated list of documents with optional status filtering.

Query parameters

Name Type Default Description
page int 1 Page number (≥1)
limit int 10 Number of items per page (1–100)
status string Filter by status (uploaded, processing, processed, error)

Response 200 OK

[
{ "id": "...", "title": "...", "status": "uploaded" },
...
]

Code example

# cURL
curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/?page=1&limit=5&status=uploaded"
# PHP
$url = 'https://api.teldar.ai/documents/';
$token = '';

$params = array(
	'page' => 1,
	'limit' => 5,
	'status' => 'uploaded'
);

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url . '?' . http_build_query($params),
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/';
const token = '';
const params = new URLSearchParams({
	page: 1,
	limit: 5,
	status: 'uploaded'
});

fetch(`${url}?${params}`, {
	method: 'GET',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Page 1, 5 éléments, uniquement les documents "uploaded"
params = {"page": 1, "limit": 5, "status": "uploaded"}
response = requests.get(f"{BASE_URL}/documents/", params=params, headers=headers)
response.raise_for_status()
print(response.json())

3. Document details (GET /documents/{document_id})

GET /documents/{document_id}

Retrieves detailed information about a document, including its list of pages.

Path parameters

Name Type Description
document_id string Document UUID

Response 200 OK

{
"id": "<document_id>",
"title": "Mon document",
"description": "...",
"meta": { ... },
"status": "uploaded",
"processing": {"overall": "not_started"},
"overall_status": "not_started",
"pages": [
{"id":"<page_id>", "number":1, "status":"uploaded"},
...]
}

Code example

# cURL
curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>';
$token = '';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>';
const token = '';

fetch(url, {
	method: 'GET',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.get(f"{BASE_URL}/documents/{doc_id}", headers=headers)
response.raise_for_status()
print(response.json())

4. Full processing (POST /documents/{document_id}/process)

POST /documents/{document_id}/process

Initiates full processing (OCR, classification, summarization) of all pages in the background.

Response 200 OK

{
"document_id": "<document_id>",
"status": "processing",
"message": "Document processing started."
}

Code example

# cURL
curl -X POST \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/process"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/process';
$token = '';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_POST => true,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/process';
const token = '';

fetch(url, {
	method: 'POST',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.post(f"{BASE_URL}/documents/{doc_id}/process", headers=headers)
response.raise_for_status()
print(response.json())

5. Document status (GET /documents/{document_id}/status)

GET /documents/{document_id}/status

Checks the overall processing status and retrieves the results once completed.

Path parameters

Name Type Description
document_id string Document UUID

Response 200 OK

{
"id": "<document_id>",
"title": "Mon document",
"description": "...",
"meta": { ... },
"status": "uploaded",
"processing": {"overall": "not_started"},
"overall_status": "not_started",
"pages": [
{"id":"<page_id>", "number":1, "status":"uploaded"},
...]
}

Code example

# cURL
curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/status"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/status';
$token = '';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/status';
const token = '';

fetch(url, {
	method: 'GET',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests
import time

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Polling loop until "done" or "error"
while True:
	resp = requests.get(f"{BASE_URL}/documents/{doc_id}/status", headers=headers)
	resp.raise_for_status()
	data = resp.json()
	status = data.get("overall_status")
	print(f"Status: {status}")
	if status in ("done", "error"): break
	time.sleep(5)
print(data)

6. Delete a document (DELETE /documents/{document_id})

DELETE /documents/{document_id}

Deletes a document, its pages, and the uploaded file.

Path parameters

Name Type Description
document_id string Document UUID

Response 200 OK


{
"detail": "Document <document_id> and associated pages/files deleted successfully."
}

Code example

# cURL
curl -X DELETE \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>';
$token = '';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_CUSTOMREQUEST => 'DELETE',
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>';
const token = '';

fetch(url, {
	method: 'DELETE',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

response = requests.delete(f"{BASE_URL}/documents/{doc_id}", headers=headers)
response.raise_for_status()
print(response.json())

7. Pages (GET /documents/{document_id}/pages/)

GET /documents/{document_id}/pages/

Retrieves all pages of a document.

Get Pages From An Uploaded Document

Parameter Value
document_id
				
					
				
			

Path parameters

Name Type Description
document_id string Document UUID

Response 200 OK

[
{"id":"<page_id>", "number":1, "status":"uploaded"},
...
]

Code example

# cURL
curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/';
$token = '';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/';
const token = '';

fetch(url, {
	method: 'GET',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}
response = requests.get(f"{BASE_URL}/documents/{doc_id}/pages/", headers=headers)
response.raise_for_status()
print(response.json())

8. Page classification

8.1 Start classification

POST /documents/{document_id}/pages/{page_id}/classify

Queues a classification task for the page.

Classify Pages From A Document

Parameter Value
document_id
page_id
				
					
				
			

Response 202 Accepted


{
"task_id": "<task_uuid>",
"status": "queued",
"message": "Classification started"
}

Code example

# cURL
curl -X POST \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classify"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classify';
$token = '<VOTRE_API_TOKEN>';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_POST => true,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classify';
const token = '<VOTRE_API_TOKEN>';

fetch(url, {
	method: 'POST',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

response = requests.post(
	f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/classify",
	headers=headers
)
response.raise_for_status()
print(response.json())

8.2 Retrieve classification result

GET /documents/{document_id}/pages/{page_id}/classification

Retrieves classification metadata when ready.

Response 200 OK


{
"page_id": "<PAGE_ID>",
"classification": { … },
"status": "done" // or "pending"
}

Code example

# cURL
while true; do
  response=$(curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classification")
  
  status=$(echo $response | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
  if [ "$status" = "done" ]; then
	break
  fi
  sleep 2
done
echo $response
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classification';
$token = '<VOTRE_API_TOKEN>';

while(true) {
	$curl = curl_init();
	curl_setopt_array($curl, [
		CURLOPT_URL => $url,
		CURLOPT_HTTPHEADER => [
			'Authorization: Bearer ' . $token
		],
		CURLOPT_RETURNTRANSFER => true
	]);

	$response = curl_exec($curl);
	$data = json_decode($response, true);
	curl_close($curl);

	if($data['status'] === 'done') break;
	sleep(2);
}

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/classification';
const token = '<VOTRE_API_TOKEN>';

async function pollClassification() {
	while(true) {
		const response = await fetch(url, {
			method: 'GET',
			headers: {
				'Authorization': `Bearer ${token}`
			}
		});
		const data = await response.json();
		if(data.status === 'done') break;
		await new Promise(resolve => setTimeout(resolve, 2000));
	}
}

pollClassification()
	.then(data => console.log(data))
	.catch(error => console.error('Error:', error));
# Python
import time, requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Boucle jusqu'à "done"
while True:
	resp = requests.get(
		f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/classification",
		headers=headers
	)
	resp.raise_for_status()
	data = resp.json()
	if data["status"] == "done": break
	time.sleep(2)
print(data)

9. OCR

9.1 Start OCR

POST /documents/{document_id}/pages/{page_id}/ocr

Queues an OCR task.

OCR Pages From A Document

Parameter Value
document_id
page_id
				
					
				
			

Response 202 Accepted


{ "task_id": "", "status": "queued", "message": "OCR started" }

Code example

# cURL
curl -X POST \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	-H "Content-Type: application/json" \
	-d '{"language": "fra", "output_format": "text"}' \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr';
$token = '<VOTRE_API_TOKEN>';
$payload = json_encode([
	'language' => 'fra',
	'output_format' => 'text'
]);

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_POST => true,
	CURLOPT_POSTFIELDS => $payload,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token,
		'Content-Type: application/json'
	],
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr';
const token = '<VOTRE_API_TOKEN>';
const payload = {
	language: 'fra',
	output_format: 'text'
};

fetch(url, {
	method: 'POST',
	headers: {
		'Authorization': `Bearer ${token}`,
		'Content-Type': 'application/json'
	},
	body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}
payload = {"language": "fra", "output_format": "text"}

response = requests.post(
	f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/ocr",
	headers=headers
)
response.raise_for_status()
print(response.json())

9.2 Retrieve OCR result

GET /documents/{document_id}/pages/{page_id}/ocr

Retrieves OCR result when ready.

Response 202 Accepted


{
"page_id": "",
"ocr_text": "...",
"confidence": 0.95, // Le score de confiance n'est pas implémenté correctement, il le sera dans les versions à venir, veuillez à ne pas l'u"processed_at": "2025-05-23T12:34:56Z",
"status": "done" // ou "pending"
}

Code example

# cURL
while true; do
  response=$(curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr")
  
  status=$(echo $response | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
  if [ "$status" = "done" ]; then
	break
  fi
  sleep 3
done
echo $response
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr';
$token = '<VOTRE_API_TOKEN>';

while(true) {
	$curl = curl_init();
	curl_setopt_array($curl, [
		CURLOPT_URL => $url,
		CURLOPT_HTTPHEADER => [
			'Authorization: Bearer ' . $token
		],
		CURLOPT_RETURNTRANSFER => true
	]);

	$response = curl_exec($curl);
	$data = json_decode($response, true);
	curl_close($curl);

	if($data['status'] === 'done') break;
	sleep(3);
}

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/ocr';
const token = '<VOTRE_API_TOKEN>';

async function pollOcr() {
	while(true) {
		const response = await fetch(url, {
			method: 'GET',
			headers: {
				'Authorization': `Bearer ${token}`
			}
		});
		const data = await response.json();
		if(data.status === 'done') break;
		await new Promise(resolve => setTimeout(resolve, 3000));
	}
}

pollOcr()
	.then(data => console.log(data))
	.catch(error => console.error('Error:', error));
# Python
import time, requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Boucle jusqu'à "done"
while True:
	resp = requests.get(
		f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/ocr",
		headers=headers
	)
	resp.raise_for_status()
	data = resp.json()
	if data["status"] == "done": break
	time.sleep(3)
print(data)

10. Summary

10.1 Start summarization

POST /documents/{document_id}/pages/{page_id}/summarize

Queues a summarization task.

Summarization Pages From A Document

Parameter Value
document_id
page_id
				
					
				
			

Response 200 OK


{ "task_id": "", "status": "queued", "message": "Summarization started" }
								

Code example

# cURL
curl -X POST \
-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize"
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize';
$token = '<VOTRE_API_TOKEN>';

$curl = curl_init();
curl_setopt_array($curl, [
	CURLOPT_URL => $url,
	CURLOPT_HTTPHEADER => [
		'Authorization: Bearer ' . $token
	],
	CURLOPT_POST => true,
	CURLOPT_RETURNTRANSFER => true
]);

$response = curl_exec($curl);
if(curl_errno($curl)) {
	throw new Exception(curl_error($curl));
}
curl_close($curl);

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize';
const token = '<VOTRE_API_TOKEN>';

fetch(url, {
	method: 'POST',
	headers: {
		'Authorization': `Bearer ${token}`
	}
})
.then(response => {
	if (!response.ok) throw new Error('Network response was not ok');
	return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
# Python
import requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

response = requests.post(
	f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/summarize",
	headers=headers
)
response.raise_for_status()
print(response.json())

10.2 Retrieve summary

GET /documents/{document_id}/pages/{page_id}/summarize

Retrieves summary when ready.

Response 200 OK


{
"page_id": "",
"summary": "...",
"processed_at": "2025-05-23T12:45:00Z",
"status": "done" // ou "pending"
}

Code example

# cURL
while true; do
  response=$(curl -X GET \
	-H "Authorization: Bearer <VOTRE_API_TOKEN>" \
	"https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize")
  
  status=$(echo $response | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
  if [ "$status" = "done" ]; then
	break
  fi
  sleep 3
done
echo $response
# PHP
$url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize';
$token = '<VOTRE_API_TOKEN>';

while(true) {
	$curl = curl_init();
	curl_setopt_array($curl, [
		CURLOPT_URL => $url,
		CURLOPT_HTTPHEADER => [
			'Authorization: Bearer ' . $token
		],
		CURLOPT_RETURNTRANSFER => true
	]);

	$response = curl_exec($curl);
	$data = json_decode($response, true);
	curl_close($curl);

	if($data['status'] === 'done') break;
	sleep(3);
}

echo $response;
# JavaScript
const url = 'https://api.teldar.ai/documents/<DOCUMENT_ID>/pages/<PAGE_ID>/summarize';
const token = '<VOTRE_API_TOKEN>';

async function pollSummary() {
	while(true) {
		const response = await fetch(url, {
			method: 'GET',
			headers: {
				'Authorization': `Bearer ${token}`
			}
		});
		const data = await response.json();
		if(data.status === 'done') break;
		await new Promise(resolve => setTimeout(resolve, 3000));
	}
}

pollSummary()
	.then(data => console.log(data))
	.catch(error => console.error('Error:', error));
# Python
import time, requests

BASE_URL = "https://api.teldar.ai"
TOKEN = "<VOTRE_API_TOKEN>"
doc_id = "<DOCUMENT_ID>"
page_id = "<PAGE_ID>"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Boucle jusqu'à "done"
while True:
	resp = requests.get(
		f"{BASE_URL}/documents/{doc_id}/pages/{page_id}/summarize",
		headers=headers
	)
	data = resp.json()
	if data["status"] == "done": break
	time.sleep(3)
print(data)

Documentation generated for TELDAR AI - Version 1.0.0

This documentation was created following industry best practices.