Recordly
Recordly/Developer API
Back home
REST API v1

Recordly Developer API

Call Recordly programmatically from your own apps and scripts. Authenticate with a secret API key, respect per-key rate limits, and get JSON responses. All endpoints are served underhttps://recordly.site/api/v1.

Authentication

Every request must include your secret key in the Authorization header as a Bearer token. Create a free account and generate your own keys from your account dashboard. Keep your key secret — anyone with it can call the API as you.

HTTP header
Authorization: Bearer rk_live_your_key_here
Your full key is shown only once when created. If you lose it, revoke it and generate a new one.

Rate limits & usage

Each key has a per-minute request limit (default 60/min, configurable per key). Every response includes the current limit status. Exceeding it returns 429 Too Many Requests. Usage is tracked per key and visible in the admin panel.

Response headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
Retry-After: 60   (only on 429 responses)

Endpoint: Summarize text

POST/api/v1/summarize

Summarizes any block of text (for example a recording transcript or meeting notes) into a short paragraph or bullet list.

Request body (JSON)

FieldTypeRequiredDescription
textstringYesThe text to summarize. Max 100,000 characters.
stylestringNo"paragraph" (default) or "bullets".
maxWordsnumberNoTarget length, 20–500. Default 120.

Example request (cURL)

bash
curl -X POST https://recordly.site/api/v1/summarize \
  -H "Authorization: Bearer rk_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Paste the transcript or any long text you want summarized here...",
    "style": "bullets",
    "maxWords": 120
  }'

Example request (JavaScript)

javascript
const res = await fetch("https://recordly.site/api/v1/summarize", {
  method: "POST",
  headers: {
    "Authorization": "Bearer rk_live_your_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    text: "Paste the transcript or any long text you want summarized here...",
    style: "paragraph", // or "bullets"
    maxWords: 120,
  }),
});

const data = await res.json();
console.log(data.summary);

Example response (200 OK)

json
{
  "summary": "A concise summary of your input text...",
  "style": "paragraph",
  "input_chars": 4213,
  "model": "gpt-5.4-mini"
}

Error responses

StatusMeaning
401Missing, invalid, or revoked API key.
400Invalid JSON or missing "text" field.
413Text exceeds the 100,000 character limit.
429Rate limit exceeded for this key.
502Summarization service temporarily unavailable.

All errors return JSON shaped like { "error": "message" }.

Ready to build? Create an account and generate your key in seconds.