RelayPointdocs

Getting started

Quickstart

Make your first call in three steps. Every RelayPoint product — models, GPU jobs, voice, messaging and connected apps — uses the same key, headers and error format. All usage is charged in AI Credits (1 credit = $1).

1. Get a key

Create a key in Dashboard → API keys. Test keys start with rp_test_ and never charge you; live keys start with rp_live_.

2. Send a request

Text models use the OpenAI-compatible format. Point any OpenAI library at https://api.relaypoint.[DOMAIN]/v1.

3. Handle jobs and webhooks

Video, image and long audio run as jobs. You get a job id at once and a signed job.completed webhook when it is done.

Common headers
AuthorizationBearer rp_live_… or rp_test_…
Idempotency-KeyYour own id. Retrying with the same key never charges twice.
RP-Sub-AccountOptional. Bills usage to one of your customers.
RP-ConnectionWhich connected account to act as (Google, WhatsApp, social).
curl · chat
curl https://api.relaypoint.[DOMAIN]/v1/chat/completions \
  -H "Authorization: Bearer $RP_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"rp/text-pro",
       "messages":[{"role":"user","content":"Hello"}]}'
response
{
  "id": "chat_8f2k…",
  "model": "rp/text-pro",
  "choices": [{ "message": { "role": "assistant",
     "content": "Hi! How can I help?" } }],
  "usage": { "units": 412, "unit": "tokens",
             "credits": 0.002 }
}
node · GPU job
const job = await rp.jobs.create({
  product: "rp/video-avatar",
  input: { image_url, audio_url },
  webhook: "https://yourapp.com/hooks/rp"
});
// → { id: "job_3x…", status: "queued" }