List your drafted content
Retrieve a paginated list of the short-form content in your publication's library, newest activity first. The publication is identified by the API key.
Filter with kind and status. status defaults to all, which is everything except the pieces you've archived — a piece that was delivered stays listed whether or not it was archived afterwards.
Bodies aren't included; fetch a single piece to read one.
apiKeyAuthorizationBearer <token>API key for authenticating protected endpoints. Pass as Bearer token in Authorization header.
cursor?stringCursor for pagination
limit?integerMaximum number of items to return (1-50, default: 20)
1 <= value <= 5020kind?stringFilter by content kind
"tweet""linkedin""newsletter""x_article"status?stringFilter by lifecycle. all (default) is drafts plus delivered pieces; archived is the pieces you've put away and never delivered.
"all""draft""published""archived"Content retrieved successfully
application/json- response
items*array<>Array of items in this page
pagination*curl -X GET "https://example.com/v1/content"{ "items": [ { "id": "string", "kind": "string", "title": "string", "excerpt": "string", "status": "draft", "scheduled": true, "lockedReason": "string", "publishedAt": "string", "url": "string", "archivedAt": "string", "bucketId": "string", "createdAt": "string", "updatedAt": "string" } ], "pagination": { "cursor": "string", "hasMore": true, "total": 0 }}Send a test newsletter email POST
Sends a test newsletter email for the specified draft post to the publication owner's email address. Useful for previewing how a post will look as a newsletter before publishing. Only works for draft posts.
Create a draft POST
Save a finished piece of short-form content — an X post or thread, a LinkedIn post, a one-off email, or an X Article — to your publication's library. **What this does:** - The piece is saved as a draft and shows up in the Paragraph app under Content, where you can edit it and send it. - Nothing is posted, emailed, or scheduled. Sending happens in the app, so a draft you upload can't go out without you. - Long-form Paragraph posts are a different resource — use `POST /v1/posts` for those. **The body:** - `body` carries the artifact itself, in the shape its kind uses (see the field descriptions below). - It's validated the same way the Paragraph app validates it, so an X thread over 280 characters an entry, or an Article missing its headline, comes back with the same explanation you'd see in the app. - Drafts created here are text-only. Media has to be uploaded to X or LinkedIn first, which the API can't do yet. **Grouping:** - Pass `bucketId` to group this piece with the post it was made from, so the writer sees them together as one row under Content. Get the id with `POST /v1/posts/{postId}/bucket`. - Unknown fields are rejected rather than ignored, so a misspelled key comes back as a 400 instead of a draft that quietly isn't grouped.