API reference

Content

Entries, types, releases, the delivery API, members and reader comments.

Scopes for this area: content:read, content:write and content:admin.

120 operations

tier

MethodRouteWhat it doesLevelCommand
GET/members/tiersThe membership tiers (free and paid) readers can hold.readrivier content tier list
POST/members/tiersAdd a tier: a name, free or paid, a price and a period (month, year or once).adminrivier content tier create

member

MethodRouteWhat it doesLevelCommand
GET/membersMembers and the tiers each holds now.readrivier content member list
POST/members/grantsGive someone a tier (a gift, a comp, an import, or a payment recorded by hand).adminrivier content member grant
POST/members/grants/{id}/endEnd a grant now.adminrivier content member end grant
POST/members/sessionTokens for a member whom the site has signed in: one for the server-side check and, where the edge key is set up, one the edge verifies with the public key.adminrivier content member session
POST/public/members/verifyCheck the code a member was mailed and get their tokens. Every failure looks the same; five wrong tries end the code.readrivier content member verify
POST/public/members/sign-inAsk for a sign-in code by email. The answer is the same whether or not the address is a member.readrivier content member sign in

access

MethodRouteWhat it doesLevelCommand
GET/content-access/{entryId}Who may read a page and how much of it everyone sees.readrivier content access get
PUT/content-access/{entryId}Set who may read a page: free, members, paid (named tiers), metered (free reads per month) or preview (the first blocks).adminrivier content access set

plan

MethodRouteWhat it doesLevelCommand
GET/public/subscriptions/plansThe tiers a visitor can choose from, with where to pay.readrivier content plan list
POST/public/subscriptions/{tierId}/checkoutStart buying a paid tier: a pending membership and a hosted checkout address. The membership starts when the payment succeeds.readrivier content plan checkout
POST/workspace/content/plansPlan recurring content.writerivier content plan create
PATCH/workspace/content/plans/{id}Change a content plan.writerivier content plan update
DELETE/workspace/content/plans/{id}Delete a content plan.writerivier content plan delete

entitlement

MethodRouteWhat it doesLevelCommand
GET/public/entitlements/entry/{entryId}For a site build: whether a page is free, metered or paid, which fields everyone may read, which rich-text fields are behind the wall and how many blocks of them are shown, and which tiers open it.readrivier content entitlement entry
POST/public/entitlements/revealFor a reader the check lets in: the gated rich-text fields of the page in full, and nothing for anyone else. A metered read is counted once, as in check.readrivier content entitlement reveal
POST/public/entitlements/checkAt request time: may this reader see the body now. Counts a metered read once per page per month.readrivier content entitlement check

reader comment

MethodRouteWhat it doesLevelCommand
GET/public/comments/{entryId}The comments readers may see under a page, and the guard's token for the form.readrivier content reader comment public
POST/public/comments/{entryId}A reader writes a comment. The form guard judges it: abuse is refused, anything unsure is held for a person.readrivier content reader comment submit
GET/cms/reader-commentsReader comments of a page or of the whole project, by state (held, published, refused).readrivier content reader comment list
POST/cms/reader-comments/{id}/decideLet a held comment through or refuse it. A person with the approver role does this; nothing is deleted.writerivier content reader comment decide

proof

MethodRouteWhat it doesLevelCommand
GET/portfolio/proofsThe private links made for a page, with how many pictures were approved, rejected or commented on.readrivier content proof list
POST/portfolio/proofsMake a private link for a client to look at a set of pictures, comment on them and approve them. The token is shown once.writerivier content proof create
GET/portfolio/proofs/{id}/marksWhat the client approved, rejected or said, picture by picture.readrivier content proof marks
DELETE/portfolio/proofs/{id}Switch a client link off.writerivier content proof revoke

offer

MethodRouteWhat it doesLevelCommand
GET/portfolio/offersLicence offers and where each stands (offered, accepted, declined, paid, withdrawn, expired).readrivier content offer list
POST/portfolio/offersOffer a licence: what it allows, where, for how long, whether exclusive, and the price. The buyer answers at a private link; no money moves here.adminrivier content offer create
POST/portfolio/offers/{id}/settleMark an accepted offer paid when the money arrived, or take an offer back.adminrivier content offer settle

certificate

MethodRouteWhat it doesLevelCommand
GET/portfolio/certificatesCertificates of authenticity that were issued.readrivier content certificate list
POST/portfolio/certificatesIssue a certificate of authenticity for a work or one numbered edition, with a serial number anyone can check.adminrivier content certificate issue
POST/portfolio/certificates/{id}/voidVoid a certificate, with the reason. It stays on record and shows as void.adminrivier content certificate void
GET/public/certificates/{serial}Check a certificate by serial number: what it certifies, the edition, the date and whether it was voided.readrivier content certificate verify

cms

MethodRouteWhat it doesLevelCommand
GET/cms/summaryCounts and health of the brand's content.readrivier content cms summary

settings

MethodRouteWhat it doesLevelCommand
GET/cms/settingsLocales, rules, cache time and limits.readrivier content settings get
PUT/cms/settingsChange the CMS settings.adminrivier content settings update

type

MethodRouteWhat it doesLevelCommand
GET/cms/typesThe content types, with fields and rules.readrivier content type list
GET/cms/types.d.tsThe types as TypeScript declarations.readrivier content type typescript
GET/cms/types/{key}One content type.readrivier content type get
PUT/cms/types/{key}Create or change a content type.adminrivier content type save
DELETE/cms/types/{key}Delete a content type with no entries.adminrivier content type delete
GET/cms/types/{key}/packThe writing pack for a type: schema, rules, voice and grounding.readrivier content type pack

comment

MethodRouteWhat it doesLevelCommand
GET/cms/entries/{id}/commentsThe comments on a page.readrivier content comment list
POST/cms/entries/{id}/commentsLeave a note on a page or on one of its fields, naming people if needed.writerivier content comment add
POST/cms/comments/{id}/resolveSettle a comment, or open it again.writerivier content comment resolve

redirect

MethodRouteWhat it doesLevelCommand
GET/cms/redirectsOld addresses and where they lead (301, 302, 307, 308 or 410 for gone).readrivier content redirect list
POST/cms/redirectsSend an old address to a new one so links and search standing carry over. A redirect never points at another one; chains are followed on write.writerivier content redirect set
DELETE/cms/redirects/{id}Remove a redirect.writerivier content redirect remove

delivery

MethodRouteWhat it doesLevelCommand
GET/cms/delivery/v1/redirectsEvery redirect of a site for the build and the edge, or where one address leads (?path=).readrivier content delivery redirects
GET/cms/delivery/v1/id/{id}/markdownA published page as markdown with a small header (title, address, dates, AI use, reviewer, retraction), its corrections and the AI line.readrivier content delivery markdown
GET/cms/delivery/v1/id/{id}/jsonldStructured data (schema.org Article) for a published page: dates, authors with their ORCID iD, the DOI, and a retraction.readrivier content delivery jsonld
GET/cms/delivery/v1/news-sitemap.xmlA Google News sitemap of what was published in the last two days; retracted pages are left out.readrivier content delivery news sitemap
GET/cms/delivery/v1/podcast.rssA podcast feed (RSS with iTunes tags): each published episode with its audio file attached.readrivier content delivery podcast
GET/cms/delivery/v1/feed.jsonA JSON Feed 1.1 of the published entries (by type, language, site). The site serves it at its own address.readrivier content delivery feed json
GET/cms/delivery/v1/feed.rssAn RSS 2.0 feed of the published entries.readrivier content delivery feed rss
GET/cms/delivery/v1/feed.atomAn Atom 1.0 feed of the published entries.readrivier content delivery feed atom
GET/cms/delivery/v1/entriesPublished entries for a site, cached.readrivier content delivery list
GET/cms/delivery/v1/entries/{type}/{slug}One published entry by address.readrivier content delivery get
GET/cms/delivery/v1/id/{id}One published entry by id.readrivier content delivery by id
GET/cms/delivery/v1/llms.txtAn llms.txt for the published content.readrivier content delivery llms

entry

MethodRouteWhat it doesLevelCommand
POST/cms/entries/{id}/embargoHold an approved page until a time and get a link the press can read it with until then.writerivier content entry embargo
GET/cms/entries/{id}/emailA published page as an email ready for the contact store to send: subject, preheader, safe HTML with corrections and the AI line, a plain-text part and the address of the page. The unsubscribe footer is the sender's.readrivier content entry email
GET/cms/entriesList entries with filters.readrivier content entry list
POST/cms/queryQuery entries with a typed filter.readrivier content entry query
POST/cms/entriesCreate an entry as a draft.writerivier content entry create
GET/cms/entries/{id}One entry with its translations.readrivier content entry get
GET/cms/by-slug/{type}/{slug}One entry by its address.readrivier content entry by slug
PATCH/cms/entries/{id}Change an entry with field-level operations.writerivier content entry patch
DELETE/cms/entries/{id}Delete an entry.writerivier content entry delete
GET/cms/entries/{id}/historyThe versions of an entry.readrivier content entry history
GET/cms/entries/{id}/diffWhat changed between two versions.readrivier content entry diff
GET/cms/entries/{id}/checkWhether an entry passes its rules and can be published.readrivier content entry check
POST/cms/entries/{id}/rollbackReturn an entry to an earlier version as a new version.writerivier content entry rollback
POST/cms/entries/{id}/submitSend an entry for review.writerivier content entry submit
POST/cms/entries/{id}/reviewApprove an entry or send it back.writerivier content entry review
POST/cms/entries/{id}/scheduleSchedule publication.writerivier content entry schedule
POST/cms/entries/{id}/publishPublish an approved entry.writerivier content entry publish
POST/cms/entries/{id}/unpublishWithdraw a published entry.writerivier content entry unpublish
POST/cms/entries/{id}/archiveArchive an entry.writerivier content entry archive
POST/cms/entries/{id}/restoreRestore an archived entry.writerivier content entry restore
GET/cms/entries/{id}/translation-packEverything a translator needs for one locale.readrivier content entry translation pack
POST/cms/assistA proposal from the project's writing model for a passage: a draft, a rewrite, a shorter or longer version, a tone, a summary, a search description, alt text or a translation. Nothing is saved; the result is marked as machine-written.writerivier content entry assist
POST/cms/entries/{id}/translateAdd or update a translation.writerivier content entry translate
POST/cms/bulkCreate or update many entries by source reference.writerivier content entry bulk
POST/cms/importImport markdown, a Ghost export, WordPress posts, a Medium export (html files) or a Substack export (posts.csv and html files). Returns what was made, what was skipped and why, and a redirect from each old address to the new page.writerivier content entry import

correction

MethodRouteWhat it doesLevelCommand
GET/cms/entries/{id}/correctionsThe corrections log of a page: every correction, update or clarification made after publishing.readrivier content correction list
POST/cms/entries/{id}/correctionsRecord a correction, an update or a clarification on a published page. A person with the approver role does this; it is shown with the page and never removed.writerivier content correction add

preset

MethodRouteWhat it doesLevelCommand
GET/cms/presetsReady-made groups of content types: blog, magazine, and portfolios for photographers, artists, musicians, designers, writers, performers and consultants.readrivier content preset list
POST/cms/presets/{key}/applySet the project up with a preset's content types. A type the project already has is left alone.adminrivier content preset apply

release

MethodRouteWhat it doesLevelCommand
GET/cms/releasesList releases.readrivier content release list
POST/cms/releasesCreate a release.writerivier content release create
GET/cms/releases/{id}/diffWhat a release would change.readrivier content release diff
POST/cms/releases/{id}/itemsAdd an entry to a release.writerivier content release add item
DELETE/cms/releases/{id}/items/{entryId}Take an entry out of a release.writerivier content release remove item
POST/cms/releases/{id}/rebaseBring a release up to date with changed entries.writerivier content release rebase
POST/cms/releases/{id}/submitSend a release for review.writerivier content release submit
POST/cms/releases/{id}/reviewApprove a release or send it back.writerivier content release review
POST/cms/releases/{id}/scheduleSchedule a release.writerivier content release schedule
POST/cms/releases/{id}/publishPublish a release.writerivier content release publish
POST/cms/releases/{id}/cancelCancel a release.writerivier content release cancel

event

MethodRouteWhat it doesLevelCommand
GET/cms/eventsThe CMS change feed.readrivier content event list

knowledge

MethodRouteWhat it doesLevelCommand
GET/cms/knowledgePublished passages for customer service and memory.readrivier content knowledge list

webhook

MethodRouteWhat it doesLevelCommand
GET/cms/webhooksThe CMS's webhook endpoints.readrivier content webhook list
POST/cms/webhooksAdd a webhook endpoint; the signing secret is returned once.adminrivier content webhook create
DELETE/cms/webhooks/{id}Remove a webhook endpoint.adminrivier content webhook delete

site

MethodRouteWhat it doesLevelCommand
GET/cms/exportA static export of the published content.readrivier content site export

item

MethodRouteWhat it doesLevelCommand
GET/workspace/contentDrafts and posts, by state.readrivier content item list
POST/workspace/contentWrite a draft for a channel.writerivier content item draft
PATCH/workspace/content/{id}Edit a draft.writerivier content item edit
POST/workspace/content/{id}/decideApprove or discard a draft.writerivier content item decide

run

MethodRouteWhat it doesLevelCommand
POST/content/run-plansRun due content plans now.writerivier content run plans
POST/content/publish-duePublish approved items that are due.writerivier content run publish due

library

MethodRouteWhat it doesLevelCommand
GET/workspace/libraryThe reference documents the business keeps.readrivier content library list
POST/workspace/libraryAdd a document.writerivier content library upload
PATCH/workspace/library/{id}Rename or tag a document.writerivier content library update
DELETE/workspace/library/{id}Delete a document.writerivier content library delete
GET/workspace/library/{id}/downloadDownload a document.readrivier content library download
GET/workspace/library/drive/pickerFiles in the connected Drive.readrivier content library drive picker
POST/workspace/library/drive/pullCopy a Drive file into the library.writerivier content library drive pull