TEASEDocs
API ReferencePages & Publish

Create a notification preset

Creates a reusable banner preset in the library. Texts and files can be filled in later (PATCH + the preset avatar upload), but only a complete preset (title, body, link_text, an avatar — plus target_url when link_mode is 'manual') can be enabled on a domain. Requires a write-scoped key.

Authorization

bearerAuth
AuthorizationBearer <token>

Your al_live_<prefix>_<secret> API key. Mint and manage keys in the dashboard.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

POST
/api/admin/library/notifications
curl -X POST "https://example.com/api/admin/library/notifications" \  -H "Content-Type: application/json" \  -d '{    "name": "July drop",    "title": "New post is live",    "body": "Tap to see what you\'ve been missing",    "link_text": "Open",    "target_url": "https://onlyfans.com/dasha"  }'
{  "id": 7,  "creator_id": "dasha",  "name": "July drop",  "title": "New post is live",  "body": "Tap to see what you've been missing",  "link_text": "Open",  "target_url": "https://onlyfans.com/dasha",  "link_mode": "",  "delay_ms": 2500,  "avatar_filename": "avatar_9f2c1a7b3d4e5f60.webp",  "sound_filename": null,  "translations": null,  "variants": null,  "activity_source": null,  "created_at": 1752537600,  "updated_at": 1752537600}
{  "detail": {    "code": "name_required",    "message": "Provide a name"  }}
{  "detail": {    "code": "preset_name_taken",    "message": "Preset 'July drop' already exists"  }}