Overview
Most AI APIs are built for AI engineers — pick a model, tune the temperature, calculate your token budget, implement rate-limit backoff, and figure out where your data goes. a8k.me is built for everyone else.
Our goal is to make AI integration as simple as any other HTTP call. We made the decisions so you don't have to: one endpoint per task, one price per month, one way to call it. If you need AI in your product, you shouldn't need ML expertise to ship it.
Flat monthly pricing — no per-token billing, no surprise costs. During high load, requests are queued fairly rather than hard-rejected, so your app stays stable under pressure.
What you send — stays private. We don't log prompts, tasks, or responses — they live in memory only while your request is running, then they're gone. Your input is never written to disk, whether on our servers or on the GPU compute that runs inference.
Quickstart
Get a response from the API in under a minute — no SDK, no library, no setup. A plain HTTP request is all you need.
- Sign up and open your dashboard.
- Create an API key — it starts with
a8kme_. - Make your first request:
curl -X POST https://api.a8k.me/v1/instruct \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a8kme_your_key_here" \
-d '{
"task": "Extract the city and date in DD.MM.YYYY format. Reply as JSON with city and date fields.",
"input": "The meetup is happening in Berlin on June 12th, 2025."
}'Errors
When something goes wrong you get a JSON error response with a stable
error.code you can branch on, and a human-readable error.message.
{
"error": {
"code": "RATE_LIMITED",
"message": "You are over your usage quota. Please wait before retrying."
},
"requestId": "a1b2c3d4-e5f6-..."
} | Status | error.code | When |
|---|---|---|
| 400 | BAD_REQUEST | Invalid or missing request fields. |
| 401 | UNAUTHORIZED | Missing or invalid API key. |
| 403 | FORBIDDEN | Feature not available on your plan. |
| 429 | RATE_LIMITED | Quota exceeded — check the Retry-After header. See Fair use & limits. |
| 500 | — | Something broke on our end. Safe to retry in a moment. |
| 502 | UPSTREAM_ERROR | GPU inference failed or timed out. Safe to retry. |
| 503 | SERVICE_UNAVAILABLE | Queue temporarily at capacity. Retry in a few seconds. |
Fair use & limits
All requests go through a FIFO queue. Most users can run normally for a long time without noticing any limits.
Limits are token-based, not request-based — short prompts burn almost nothing.
Free plan is for testing and low-usage projects. Paid plans
are designed for production traffic with much higher sustained limits.
If your token usage spikes, requests may return 429 — back off and retry.
| Header | Meaning |
|---|---|
x-request-id | The request ID. Echoed from your x-request-id header if supplied, otherwise auto-generated. Save it for support queries. |
x-usage-ratio | Percentage of your token quota used across rolling windows (per-minute, per-hour, per-day). Back off as it approaches 100. |
Retry-After | Seconds to wait before retrying. Only present on 429 responses. |
The minimum you need to handle: respect Retry-After on 429.
For tighter control, watch x-usage-ratio — start backing off as it approaches 100.
Short requests typically complete in a few seconds. Longer outputs can take significantly more — set your HTTP client timeout generously, at least 90 seconds.
Instruct API
Send a task and input, get a result. Use it for anything you can describe in a sentence: classification, extraction, summarisation, Q&A, validation, and more.
/v1/instruct
Run a task| Field | Type | Description | |
|---|---|---|---|
| input | required | string | The text or content to process. Max 8,000 characters. |
| task | optional | string | What you want done — define it once, reuse across requests. Max 16,000 characters. If omitted, the model responds directly to input with no instruction context. |
curl -X POST https://api.a8k.me/v1/instruct \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a8kme_your_key_here" \
-d '{
"task": "Classify this support ticket: billing, technical, account, or other. Reply with one word.",
"input": "I cannot log in — my password reset email never arrived."
}'| Field | Type | Description |
|---|---|---|
| requestId | string | Unique identifier for this request. Also returned as the x-request-id response header. |
| output | string | The result. Whatever the model returned for your task. Output length is capped per plan — see pricing. |
{
"requestId": "a1b2c3d4-e5f6-...",
"output": "account"
}Health
Use it for uptime monitoring. No authentication required — just a plain GET.
/v1/health
Status checkcurl https://api.a8k.me/v1/health{
"status": "ok",
"timestamp": "2026-05-07T12:34:56.000Z"
}