AmberPen Get started

Testing for free

A test API key lets you build and validate an AmberPen integration without a paid plan. It uses the same POST /proofread endpoint, SDK methods, request fields, response shapes, and streaming behavior as a live key. Moving to production only requires replacing the key.

Create a test key

  1. Sign in and verify your email address.
  2. Open the API-key dashboard.
  3. Under Key type, select Test.
  4. Name the key, choose its expiration, and select Create key.
  5. Copy the key immediately. AmberPen does not show the full value again.

Each account can have one active test key. You can revoke it and create another whenever you need to rotate the credential.

Send a request

Keep the key in an environment variable or secret manager and send it as a Bearer token. Do not embed it in browser code or commit it to source control.

export AMBER_PEN_API_KEY="ap_test_v1.…"

curl https://api.amberpen.dev/proofread \
	-H "authorization: Bearer $AMBER_PEN_API_KEY" \
	-H "content-type: application/json" \
	-d '{ "text": "This are a sentnce.", "mode": "correct" }'

The same key works with the SDK:

import { applyEdits, createAmberPenClient } from "@amber-pen/sdk";

const amberPen = createAmberPenClient({
	apiKey: process.env.AMBER_PEN_API_KEY!,
});

const text = "This are a sentnce.";
const result = await amberPen.proofread({ text });

console.log(applyEdits(text, result.edits));
// "This is a sentence."

Test-key limits

Test access is deliberately small and is shared across your account.

LimitAllowance
Active test keys1 per account
Request rate20 requests per minute
Input per request1,000 weighted characters
Daily requests200 request units per UTC day
Daily input50,000 weighted characters per UTC day
evaluate mode2 request units and 2× the weighted input

Weighted input includes text, every dictionary entry, and every properNouns entry. Chinese, Japanese, and Korean code points count as 2.5 characters; other Unicode code points count as one. The 1,000-character request limit is checked before the evaluate multiplier is applied to daily usage.

Daily usage is reserved before proofreading starts, so an accepted request still consumes its allowance if inference later fails. Daily allowances reset at midnight UTC.

Monitor remaining allowance

Test-key responses include standard minute-rate headers:

HeaderMeaning
RateLimit-LimitThe active request limit.
RateLimit-PolicyThe limit and window in seconds.
RateLimit-RemainingRequests remaining in the current minute.
RateLimit-ResetSeconds until the active window resets.

After daily usage is reserved, responses also include:

HeaderMeaning
X-Test-Daily-Request-LimitThe daily request-unit allowance.
X-Test-Daily-Request-RemainingRequest units left today.
X-Test-Daily-Weighted-Character-LimitThe daily weighted-character allowance.
X-Test-Daily-Weighted-Character-RemainingWeighted characters left today.
X-Test-Daily-ResetSeconds until midnight UTC.

A request over the per-request input limit returns 413. Exhausting the minute or daily allowance returns 429 with Retry-After. See the HTTP API reference for all request fields and errors.

Move to production

Choose a paid plan, create a Live key in the same API-key dashboard, and replace the test key in your secret store. Your endpoint and integration code stay unchanged.