barcode
Работает в вашем собственном браузере. EAN/UPC, Code 128, GS1-128, ITF-14, Data Matrix и остальные. Отдельно от `qr-code`: QR — одна символика, здесь — все прочие, и контрольные цифры у каждого семейства свои.
v2 beta browser · 1 ток.
Цена (browser): 1 ток. за вызов. Точная сумма для вашего файла: POST /v1/tools/barcode/estimate.
Вызов
POST https://timbrica.com/v1/tools/barcode/runs
Authorization: Bearer $TIMBRICA_KEY
Idempotency-Key: <ваш ключ для безопасного повтора>
Content-Type: application/json
Вход
| Поле | Тип | Обязательное | Пояснение |
|---|---|---|---|
value | string | да |
Что закодировать. Должно подходить выбранной символике — EAN-13 ждёт 12 или 13 цифр, Code 128 принимает произвольный текст.
макс. длина: 2000 |
type | string | нет |
Символика штрихкода, как её называет страница.
одно из: ean13, ean8, upca, upce, code128, gs1_128, itf14, datamatrix по умолчанию: code128 |
format | string | нет |
Формат выгрузки. SVG остаётся чётким в размере печати.
одно из: png, svg по умолчанию: png |
Рецепт для браузера
Этот тул работает в вашем собственном браузере. Заказ-наряд, который вы получите, несёт этот рецепт с подставленными значениями; селекторы ниже — версионированный контракт, а не деталь реализации: без новой версии они не меняются.
{
"engine": "dom",
"steps": [
{
"action": "select",
"selector": "[data-tmb-api=\"type\"]",
"value": "{{type}}"
},
{
"action": "fill",
"selector": "[data-tmb-api=\"value\"]",
"value": "{{value}}"
},
{
"action": "wait",
"selector": "[data-tmb-api=\"download\"][data-tmb-format=\"{{format}}\"]",
"timeout_s": 60
},
{
"action": "click",
"selector": "[data-tmb-api=\"download\"][data-tmb-format=\"{{format}}\"]"
}
],
"result": {
"kind": "download",
"settles": "automatically"
}
}
Что обязывает сделать каждое действие — других рецепты не используют:
upload | Положите входной файл в поле выбора файла, найденное по `selector` (оно может быть скрыто — задайте файл напрямую, например setInputFiles в Playwright). Файл должен подходить под `accept`. |
click | Нажмите элемент, когда он виден И доступен. Если элемент так и остаётся недоступным, предыдущий шаг не сработал. |
fill | Замените значение текстового поля на `value`, вызвав события input/change, как при наборе. |
select | Выберите в <select> вариант со значением `value`. |
wait | Дождитесь, пока элемент станет видимым, не дольше `timeout_s` секунд (по умолчанию 30). |
На каждом шаге проверяйте селектор abort_when из заказ-наряда (html[data-tmb-run="failed"]). Если он сработал, тул отказался от задачи — например, видео не стало бы меньше. Остановитесь и запросите запуск через GET: error.detail скажет почему. Токены не списываются.
Какие ошибки может вернуть
validation_failed
insufficient_tokens
История
- v2 — 2026-09-11 — The value step uses the documented `fill` action instead of the undocumented `set`. Same control, same effect; an agent implementing only documented actions now types the value.
- v1 — 2026-08-02 — Initial release (browser lane).
Контракт не может измениться без новой версии и строки выше: тест сверяет опубликованную схему, цены и лимиты с закоммиченным lock-файлом и иначе роняет сборку. Подпишитесь на /v1/changelog, чтобы узнавать об изменениях.