Upload a custom font
Registers a custom font from base64 bytes (ttf/otf/woff/woff2). The file's magic bytes and size are validated, and a licensing attestation is required. Requires the gallery:write scope (key) or editor membership (user).
Registers a custom font from base64 bytes (ttf/otf/woff/woff2). The file's magic bytes and size are validated, and a licensing attestation is required. Requires the gallery:write scope (key) or editor membership (user).
Authorization
bearerAuth gallery:updateA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: gallery:update
Header Parameters
Optional. Send a unique key per logical operation to make retries safe: a retry with the same key replays the stored success for 14 days instead of re-running the write. Reusing a key with a different body returns 400.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Upload a custom font face (base64). Requires a licensing attestation.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "id": "string", "name": "string", "format": "woff2", "byte_size": -9007199254740991, "license_attested": true, "created_at": "string"}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}List events GET
Lists the gallery's domain events, newest first, with cursor pagination — the poll/replay backstop for webhooks. Every event a webhook delivers is retrievable here by its `evt_` id, so a receiver that missed a delivery can reconcile. Filter by `type` (e.g. `artwork.created`); walk older pages with `cursor`.
Delete an uploaded font DELETE
Deletes an uploaded custom font. Templates using it fall back to the built-in font. Requires the gallery:write scope (key) or editor membership (user).