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.

1
Define your task
Describe what you want the model to do — once, as a system prompt.
2
Send your data
Pass the text, content, or information to process with each request.
3
Get a result
Receive exactly what you asked for — structured or plain, your choice.

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.

  1. Sign up and open your dashboard.
  2. Create an API key — it starts with a8kme_.
  3. 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
400BAD_REQUESTInvalid or missing request fields.
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENFeature not available on your plan.
429RATE_LIMITEDQuota exceeded — check the Retry-After header. See Fair use & limits.
500Something broke on our end. Safe to retry in a moment.
502UPSTREAM_ERRORGPU inference failed or timed out. Safe to retry.
503SERVICE_UNAVAILABLEQueue 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.

Response headers
HeaderMeaning
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.

POST

/v1/instruct

Run a task
Request body
FieldTypeDescription
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.
Example request
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."
}'
Response fields
FieldTypeDescription
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.
Example response
JSON
{
  "requestId": "a1b2c3d4-e5f6-...",
  "output": "account"
}
Only Instruct endpoint is available now. Embeddings, vision, speech-to-text and more are planned — all with the same simple interface.

Health

Use it for uptime monitoring. No authentication required — just a plain GET.

GET

/v1/health

Status check
Example request
curl
curl https://api.a8k.me/v1/health
Response
JSON
{
  "status": "ok",
  "timestamp": "2026-05-07T12:34:56.000Z"
}