SeaLink
← Docs

Rate limits

Limits are enforced per-account and per-key. Every response carries X-RateLimit-Remaining headers.

Per-plan limits

PlanRPMTPM
Starter6030K
Builder300150K
Team600300K
Creative300150K
BusinessCustomCustom

RPM = requests/min; TPM = tokens/min (input + output). Need higher? Email hello@sealink.asia.

Response headers

HeaderMeaning
X-RateLimit-Limit-RequestsPer-minute RPM ceiling
X-RateLimit-Remaining-RequestsRemaining for this minute
X-RateLimit-Reset-RequestsSeconds until reset
Retry-AfterReturned on 429; wait at least this many seconds

Recommended retry pattern

Exponential backoff with jitter, capped at 5-6 attempts. Retries on 429 don't count against your quota.

Python
import time, random
from openai import OpenAI, APIStatusError
client = OpenAI(base_url="https://api.sealink.asia/v1", api_key="<your-sealink-key>")
def call_with_backoff(messages, model="claude-haiku-4-5", max_attempts=6):
for attempt in range(max_attempts):
try:
return client.chat.completions.create(model=model, messages=messages)
except APIStatusError as e:
if e.status_code != 429 or attempt == max_attempts - 1:
raise
sleep_s = min(60, 2 ** attempt) + random.random()
time.sleep(sleep_s)