Документація API

Інтегруйте FreeOCR.AI у свої додатки за допомогою нашого потужного API.

Автентифікація

Усі запити до API вимагають ключа API, переданого в заголовку Authorization як токен Bearer.

Authorization: Bearer focr_your_api_key_id

Створюйте та керуйте своїми ключами API на сторінці Ключі API.


Ліміти запитів

Ліміт запитів за замовчуванням: 200 запитів на хвилину на один ключ API.

Ліміти можна налаштувати індивідуально для кожного ключа. Зверніться до служби підтримки для встановлення персональних лімітів.


Вилучення тексту із зображень зі збереженням макета.

Параметри

multipartimage(обов'язковий) - Файл зображення
queryformat(необов'язковий) - Формат відповіді: json (за замовчуванням), text, docx
queryversion(необов'язковий) - Версія моделі: 261029 (за замовчуванням), 260428

Відповідь

jsonContent-Type: application/json
{
  "text": "# Document Title\n\nExtracted markdown content..."
}

Повертає GitHub Flavored Markdown зі збереженням макета, включно з HTML-таблицями та формулами LaTeX.

textContent-Type: application/json
{
  "text": "Document Title\n\nExtracted plain text content..."
}

Markdown очищається до звичайного тексту через внутрішнє перетворення.

docxContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document

Завантаження бінарного файлу. Content-Disposition: attachment; filename="result.docx"

Приклад

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/ocr" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@document.png"

Вилучення таблиць із зображень у структуровані дані.

Параметри

multipartimage(обов'язковий) - Файл зображення
queryformat(необов'язковий) - Формат відповіді: json (за замовчуванням), csv, xlsx
queryversion(необов'язковий) - Версія моделі: 261029 (за замовчуванням), 260428

Відповідь

jsonContent-Type: application/json
{
  "tables": [
    {
      "title": "Sales Report",
      "html": "<table><tr><th>Item</th><th>Qty</th></tr><tr><td>Apple</td><td>10</td></tr></table>"
    }
  ]
}

Кожна таблиця містить title і вміст у вигляді рядка таблиці HTML.

csvContent-Type: text/csv; charset=utf-8

Завантаження звичайного тексту у форматі CSV. Кілька таблиць розділяються роздільниками --- SheetName ---. Content-Disposition: attachment; filename="tables.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Завантаження бінарного файлу XLSX. Кожна таблиця стає окремим аркушем із назвою, що відповідає її заголовку. Content-Disposition: attachment; filename="tables.xlsx"

Приклад

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/table" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@spreadsheet.png"

Вилучення конкретних полів із зображень за допомогою AI.

Параметри

multipartimage(обов'язковий) - Файл зображення
queryfields(обов'язковий) - Поля для вилучення (повторюваний параметр або масив JSON)
queryformat(необов'язковий) - Формат відповіді: json (за замовчуванням), csv, xlsx
queryversion(необов'язковий) - Версія моделі: 261029 (за замовчуванням), 260428

Відповідь

jsonContent-Type: application/json
{
  "result": [
    { "key": "name", "values": ["John Doe"] },
    { "key": "date", "values": ["2024-03-15"] },
    { "key": "amount", "values": ["$1,234.56"] }
  ]
}

Кожне запитане поле повертається як key із масивом вилучених значень values.

csvContent-Type: text/csv; charset=utf-8

Файл CSV, де ключі полів є заголовками стовпців, а вилучені значення — рядками. Content-Disposition: attachment; filename="extraction.csv"

xlsxContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Файл XLSX із єдиним аркушем "Results", такий самий формат, як і CSV. Content-Disposition: attachment; filename="extraction.xlsx"

Приклад

Format:
curl -X POST "https://freeocr.ai/api/v1/platform/extract?fields=name&fields=date&fields=amount" \
  -H "Authorization: Bearer focr_your_key" \
  -F "image=@invoice.png"

Відповіді з помилками

401

Не авторизовано

{ "error": { "code": "unauthorized", "message": "Недійсний ключ API" } }
402

Недостатній баланс

{ "error": { "code": "insufficient_credits", "message": "Недостатньо коштів на балансі. Будь ласка, поповніть його." } }
429

Перевищено ліміт запитів

{ "error": { "code": "rate_limit_exceeded", "message": "Перевищено ліміт запитів. Спробуйте пізніше." } }
500

Внутрішня помилка

{ "error": { "code": "internal_error", "message": "Не вдалося обробити зображення" } }