DocsREST API

API reference

REST API v1 for short charts, usage and URL signing. Authenticate with your secret key (rc_sec_live_...) as a bearer token. The API needs a verified email address and a paid plan (Starter or above); changing a short chart's data needs Pro. Requests are limited to 120 a minute per key. Every error has the same shape (see Error). See REST API for a guide.

Base URL https://app.renderchart.com/api/v1. Authenticate with Authorization: Bearer rc_sec_live_.... The OpenAPI 3.1 description is at openapi.yaml, for Redoc, Scalar or a client generator. The guide is REST API.

List short charts

GET /api/v1/charts

The account's short charts, newest first, 50 a page.

Parameters

NameInTypeNotes
cursorquerystringThe next_cursor from the previous page.

Responses

StatusMeaningBody
200A page of charts.object
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
429More than 120 requests in a minute with this key.Error

Create a short chart

POST /api/v1/charts

Saves chart parameters behind a short URL (/s/{id}) that hides your key and data. The parameters are the URL spec's as strings; key, sig and exp are ignored and unknown parameters are dropped. The chart renders with the key you authenticated with.

Request body

A ChartInput object.

{
  "name": "Weekly signups",
  "params": {
    "type": "bar",
    "x": "Mon,Tue,Wed,Thu,Fri",
    "y": "12,19,3,5,2",
    "title": "Signups this week"
  }
}

Responses

StatusMeaningBody
201The new chart.Chart
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
422The request or the chart parameters are not valid.Error
429More than 120 requests in a minute with this key.Error
503Charts are briefly unavailable; try again.Error

Get a short chart

GET /api/v1/charts/{id}

Parameters

NameInTypeNotes
idpath, requiredstringPattern ^[A-Za-z0-9]{10}$

Responses

StatusMeaningBody
200The chart.Chart
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
404No such chart on this account.Error
429More than 120 requests in a minute with this key.Error

Rename a chart or change its data

PATCH /api/v1/charts/{id}

A new name works on any paid plan. New params make a live short URL, which needs Pro: the same /s/{id} shows the new chart within about five minutes, and the version goes up by one.

Parameters

NameInTypeNotes
idpath, requiredstringPattern ^[A-Za-z0-9]{10}$

Request body

FieldTypeNotes
namestring or nullUp to 80 characters.
paramsParamsChart parameters as strings, exactly as the URL spec defines them.

Responses

StatusMeaningBody
200The updated chart.Chart
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
404No such chart on this account.Error
422The request or the chart parameters are not valid.Error
429More than 120 requests in a minute with this key.Error
503Charts are briefly unavailable; try again.Error

Delete a short chart

DELETE /api/v1/charts/{id}

/s/{id} returns the 403 image within a minute.

Parameters

NameInTypeNotes
idpath, requiredstringPattern ^[A-Za-z0-9]{10}$

Responses

StatusMeaningBody
204Deleted.None
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
404No such chart on this account.Error
429More than 120 requests in a minute with this key.Error

Renders this period

GET /api/v1/usage

Unique renders in the current period against the plan's allowance. Cached charts never count. At the limit blocked turns true: Free and unverified accounts stop making new charts, and paid accounts stop making new unsigned ones while signed URLs and short charts keep rendering.

Responses

StatusMeaningBody
200The current period.Usage
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
429More than 120 requests in a minute with this key.Error

Sign a chart URL

POST /api/v1/sign

Signs a chart URL (or chart parameters) with the authenticating key's secret, so it renders without a watermark on paid plans. The URL's key must be that key; if it has none it is added. Optional exp (Unix seconds) makes the URL stop working after that time.

Request body

FieldTypeNotes
urlstringA chart URL, or a path with a query. Up to 8000 characters.
paramsParamsChart parameters as strings, exactly as the URL spec defines them.
expintegerUnix seconds, in the future.
{
  "url": "https://c.renderchart.com/?type=bar&x=Mon,Tue&y=1,2",
  "exp": 1767225600
}

Responses

StatusMeaningBody
200The signed URL.object
401Missing or unknown secret key.Error
403The email is not verified (email_unverified) or the plan lacks the feature (plan_required).Error
422The request or the chart parameters are not valid.Error
429More than 120 requests in a minute with this key.Error

Plans and prices

GET /api/public/pricing

The plans on sale, their prices in US cents before tax, monthly allowances, features and the founding offer. No authentication. Responses may be cached for five minutes, and any origin may read them.

No authentication.

Responses

StatusMeaningBody
200The price list.Pricing
429More than 60 requests in a minute from one address.Error

Schemas

Params

Chart parameters as strings, exactly as the URL spec defines them.

object

ChartInput

FieldTypeNotes
namestring or nullUp to 80 characters.
paramsParams, requiredChart parameters as strings, exactly as the URL spec defines them.

Chart

FieldTypeNotes
idstring, required
namestring or null, required
urlstring, required
typestring, requiredThe chart type, or cfg in advanced mode.
paramsParams, requiredChart parameters as strings, exactly as the URL spec defines them.
versioninteger, required
render_countinteger, requiredUnique renders of this chart.
last_rendered_atstring or null, requiredFormat date-time.
created_atstring, requiredFormat date-time.
updated_atstring, requiredFormat date-time.

Usage

FieldTypeNotes
periodobject, required
planstring: free, starter, pro, business, admin, required
limitinteger or null, requiredNull is unlimited.
usedinteger, required
remaininginteger or null, required
blockedboolean, required

Pricing

FieldTypeNotes
currencystring, required
plansarray of object, required
foundingobject, required
unverified_rendersinteger, requiredRenders an account may make before verifying its email.

Error

FieldTypeNotes
errorobject, required