media:read (to find media), ai:read and ai:write. Nothing on this page sends anything to fans: the AI uses the ladder in its own conversations once it is active.
All endpoints live under /v1/creators/{creatorId}/ai-content, and every write returns the whole updated board, so you always see the result of your change: 201 for the three creates (folder, ladder, level), 200 for everything else. Content writes are limited to 60 per minute per credential (429 RATE_LIMITED with Retry-After beyond that).
Step 1: Pick the media
List the creator’s vault and choose ids (see Vault media). For this ladder we use:cURL
Step 2: Create a folder (optional)
Folders only organize the board for people. Skip this step if you do not need them.cURL
fld_...) in folders of the returned board.
Step 3: Create the ladder, switched off
Create it with"active": false so the AI does not offer a half-built ladder. You switch it on in step 8.
cURL
Step 4: Create the levels
Each level needscollectionId and priceCents (required: 0 makes a free level). Every other field is applied on create too.
Levels are added at the end of the ladder, so create them in climbing order:
cURL
Step 5: Add media
POST /ai-content/levels/{levelId}/media with mediaIds (1 to 200 vault media ids, as strings) and a role:
preview: sent free with the offer, to tease.paid: locked behind the price.
cURL
DELETE /ai-content/levels/{levelId}/media/{mediaId} (404 if it is not on that level).
Step 6: Order the media
The preview order is the order fans see the teasers; the paid order is the unlock order.PUT /ai-content/levels/{levelId}/media/order with the role and the ids in the order you want. Ids you leave out follow in their current order; an id that is not on that side of the level is a 400:
cURL
Step 7: Order the levels
In a sequential ladder this is the climb every fan follows.PUT /ai-content/collections/{collectionId}/order with the level ids in order. Levels you list come first; any you leave out keep their order after them, and an id that is not a level of this ladder is a 400:
cURL
Step 8: Verify, then switch it on
Read the board and check, for this ladder:- every priced level (
free: false) has at least one item inpaid, or the AI cannot sell it; - every free level has at least one item;
priceCentsis what you meant on every level, and the free ones are only your opener and thank-you;positionfollows the climb you want.
cURL
GET /v1/creators/{creatorId} should show the readiness check content as ok: true.
The whole build as one script
This script does steps 2 to 8. It sends each create with anIdempotency-Key, so a retry never creates a duplicate, and it finds each new id by comparing the board before and after.
Changing a live ladder
- Change a price:
PATCH /ai-content/levels/{levelId}with{"priceCents": 1500}. Moving a level between free and priced converts all its media: free makes everything preview; priced makes everything paid (re-add the teaser as preview afterwards). - Pause one level:
{"active": false}on the level. Pause the whole ladder:{"active": false}on the collection. - Keep a level out of chats but in the board:
{"availableInPaidMessages": false}. - Delete: deleting a level renumbers the rest; deleting a ladder deletes its levels; deleting a folder keeps its ladders, unfiled.
Errors
Build it with your AI assistant
With the MCP server connected, thebuild_content_ladder prompt walks the same steps: it lists the vault (and can look at thumbnails), proposes levels and prices, shows you the plan, and only then creates everything with the create_content_* and add_media_to_level tools. For example: “Build Mia a sequential ladder from her red lace photos and shower videos, with a free opener, and show me the plan before creating anything.”
Related
- AI content: modes, floors, preview versus paid, how the AI chooses.
- Vault media: finding media ids.
- Set up the AI persona: describe her content in words.