Developer API

Build on the same scoring contract.

API access is a separate future product with its own pricing, limits, and terms. It is not included with the personal extension plan.

Request contract

One document in. Evidence out.

GET /api/v1/models

POST /api/v1/score
Authorization: Bearer sty_…
Idempotency-Key: your-request-id

{
  "text": "…",
  "model": "stylome-auto"
}

200 OK
RateLimit: "account-minute";r=119;t=42
X-RateLimit-Remaining: 119

{
  "verdict": "mixed_signals",
  "score": 0.58,
  "model_version": "stylome-large-1.0"
}

// Pin the lower-latency model
{
  "text": "…",
  "model": "stylome-fast-1.0"
}
Availability

Private preview

Existing preview keys retain the score:create scope and durable 30-day usage totals. New commercial access, pricing, and service guarantees are not available yet.

Model and replay semantics

Pin a model or route by capacity

Use stylome-auto for capacity-aware routing between Large and Stylome 1.0, or name stylome-large-1.0, stylome-1.0, or stylome-fast-1.0 to pin a concrete model. Auto responses always report the concrete model that scored the text. A missing or unsupported model returns 422. All choices use the same rate limit and usage unit. An idempotency key replays only the exact same text-and-requested-model pair; reusing it with different text or a different model returns 409.

Content retention

Zero customer-content retention

Choose Zero customer-content retention when you commission an API key. The choice is fixed for that key, so an application cannot silently fall back to standard retention when it omits a request option. Existing keys use standard retention.

POST /api/v1/score
Authorization: Bearer <zero-retention key>

{
  "text": "…",
  "model": "stylome-large-1.0"
}

200 OK
X-Stylome-Data-Retention: none
Cache-Control: no-store

{
  "verdict": "mixed_signals",
  "model_version": "stylome-large-1.0",
  "receipt": null
}

Zero-retention keys support stylome-large-1.0, stylome-1.0, and stylome-fast-1.0. The stylome-auto routing alias is unavailable for these keys. Do not send Idempotency-Key: replay requires stored request-derived data and returns 400 for these keys.

Not retainedOperational metadata retained
Submitted text, excerpts, content hashes, results, receipts, cache entries, exact input length, and idempotency records.Key retention mode, request ID, timestamp, model and scoring contract, HTTP status, latency, billable unit, and rate-limit state.

The response still returns the result and content hash to the caller, but Stylome does not store them. See the privacy policy for the complete service description.

Rate limits

120 requests per minute, per account

Every key owned by an account draws from the same fixed one-minute quota. Successful requests, failed scoring attempts, and idempotent replays count after authentication and text validation. When the quota is exhausted, the API returns 429 Too Many Requests with Retry-After set to the seconds remaining in the current window.

HeaderMeaning
RateLimit-PolicyQuota and one-minute window for the account policy.
RateLimitRequests remaining and seconds until the window resets.
X-RateLimit-LimitCompatibility field containing the 120-request quota.
X-RateLimit-RemainingCompatibility field containing requests remaining.
X-RateLimit-ResetCompatibility field containing the reset time as a Unix timestamp.

This uniform preview quota will be revisited when paid plans and service tiers are defined.