Base URL https://www.skavio.eu/agent-tools. The live OpenAPI document is at /agent-tools/api/openapi.json.
Create an account in the dashboard, then issue an API key. Send the secret in the Authorization header. Keys are scoped to your company and can be revoked at any time; the secret is displayed once.
Authorization: Bearer sk_live_...
Submit a document for processing. The response returns the job state and the exact credit quote. Supply an idempotency_key to make submission safe to retry: the same key never starts a second job or charges twice.
POST /agent-tools/api/jobs
Authorization: Bearer sk_live_...
Content-Type: application/json
{
"tool": "pdf_to_text",
"idempotency_key": "run-2026-10-13-0001",
"arguments": { "data_base64": "JVBERi0xLjQK..." }
}
Web operations take a URL instead of a file:
{
"tool": "web_extract",
"idempotency_key": "run-2026-10-13-0002",
"arguments": { "url": "https://example.com/page" }
}
202 Accepted
{ "idempotency_key": "run-2026-10-13-0001",
"state": "queued",
"job_id": "…",
"quote": { "credits": 12, "amount_micro_usd": 12000, "price_usd": "0.012",
"cost_upper_bound_usd": "0.0078", "gross_margin": "0.35" } }
GET /agent-tools/api/jobs/{idempotency_key}
When available is true, the response lists the result files with their sizes, SHA-256 digests and download paths.
GET /agent-tools/api/jobs/{idempotency_key}/results/{result_id}/download
The response is the raw file with a Content-Disposition filename and an X-Result-SHA256 header. Results are retained for 7 days.
Create a credit order, then submit the transaction hash once the transfer is final.
POST /agent-tools/api/orders
{ "pack_id": "pack_25000", "network": "polygon" }
201 Created
{ "order_id": "ord_...", "amount_usdc": "25.000000",
"network": "polygon", "chain_id": 137,
"token": "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
"pay_to": "0x…", "expires": 1791900000 }
POST /agent-tools/api/orders/{order_id}/pay
{ "tx_hash": "0x…" }
Credits are added only after the chain confirms the exact amount to the exact treasury address in native Circle USDC. Wrong network, wrong token, underpayment, an expired order or a reused transaction are rejected.
Errors return { "error": "…" } with an HTTP status: 400 invalid input, 401 unauthorized, 402 insufficient credits, 404 not found, 409 conflict or unavailable, 410 expired, 503 temporarily unavailable.
The same catalogue is exposed over MCP at POST /agent-tools/mcp. Supported methods: initialize, tools/list. Authenticate with the same Bearer key.