Base URLhttps://api.bytero.ai/api/v1
AuthenticationAuthorization: Bearer bk_live_... 401 = missing or invalid key; 403 = valid key without the required scope or country. Multiple keys per account; rotate by creating a new key and revoking the old one.
Formatapplication/json (UTF-8)
EnvelopeSuccess responses wrap the payload in {"data": ...}; read data on 2xx. Error responses are not wrapped: branch on the code field (listed under Error codes below).
RequestsBodies are accepted as JSON, form-urlencoded or multipart. Enum inputs use the documented values. Every endpoint is read-only, so any call is safe to retry.
ErrorsStandard HTTP codes; body {"code": "...", "error": "...", "message": "...", "request_id": "..."}, plus context fields on validation errors. Branch on code (stable, listed below); the texts may be reworded. Every response carries X-Request-Id; error bodies repeat it as request_id. Quote it in support requests.
Rate limits120 requests/min per key; higher limits on request. Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset; a 429 carries Retry-After. Portfolio-scale runs are delivered as a service: send the file, we return it enriched.
Versioning/v1 is the current version and the compatibility boundary. Changes within /v1 are additive — new fields and endpoints only — so existing integrations keep working; a breaking change would ship as a new URL version, announced in advance with a migration window. The version reported on GET /api/v1 and /status is the API version, independent of the app build.
SandboxTest keys (bk_test_, created in the app) behave identically; responses carry Bytero-Environment: test; test requests are never billed.
OpenAPIGET /api/v1/openapi.json (no key needed).
StatusGET /api/v1/status (no key needed): ok | degraded + per-component checks.
Support & stability24/7/365 via bytero@bytero.sk. Include your request_id. Changes within /v1 are additive only; any deprecation is announced in advance with a migration window. DataProcessed and stored in the EU. Request parameters are retained 24 months for support, debugging and service improvement; usage metadata is retained 24 months for billing. Successful response bodies are not stored. DPA available on request.
CountriesRequests run under your key's country access. The required country param declares your country (sk | cz | pl | si | hu | us); a mismatch returns one of the country errors listed below, and responses echo the detected country. GET /api/v1 lists the countries enabled on your key.