Reference

Manuscripts API

Updated 1 Oct 2026

On this page

For agents

Load this page when: you need to manage manuscripts over HTTP

  • Filter the list with the status query: ACTIVE, PAUSED or ARCHIVED.
  • Pause with PUT and status PAUSED to free a plan slot. Archive with DELETE.
  • On MANUSCRIPT_LIMIT_EXCEEDED, relay the message to the user. It names the manuscripts using the slots.

A manuscript uses one of your plan's manuscript slots while it is active. See Manuscripts.

List manuscripts

GET https://heytrove.ai/api/v1/manuscripts

Lists your manuscripts and the team manuscripts you can read. Each carries a locked flag.

Parameters

NameInTypeRequiredConstraintsMeaning
statusquerystringnoACTIVE, PAUSED or ARCHIVEDShow only manuscripts in this state.

Request

bash
curl "https://heytrove.ai/api/v1/manuscripts?status=ACTIVE" \
  -H "Authorization: Bearer trove_your_key"

Response

json
{
  "manuscripts": [
    {
      "id": "cmms123",
      "title": "Team runbook",
      "description": null,
      "audience": null,
      "topics": ["deploys", "rollbacks"],
      "criteria": [],
      "trigger": null,
      "instructions": null,
      "autoUpdate": true,
      "isSystem": false,
      "team": false,
      "locked": false,
      "status": "ACTIVE",
      "itemId": "cmrun456",
      "createdAt": "2026-10-01T09:00:00.000Z",
      "updatedAt": "2026-10-01T09:00:00.000Z"
    }
  ]
}

Errors

StatusMessageCodeFix
400Invalid status. Must be one of: ACTIVE, PAUSED, ARCHIVEDINVALID_INPUTUse one of the three.

CLI equivalent: trove ms list.

Create a manuscript

POST https://heytrove.ai/api/v1/manuscripts

Creates a manuscript, with a new book or attached to a book you already have.

Parameters

NameInTypeRequiredConstraintsMeaning
titlebodystringyes1 to 200 charactersTitle.
descriptionbodystringnoup to 4,000 charactersDescription.
audiencebodystringnoup to 500 charactersTarget audience.
topicsbodystring arraynoup to 50 items of up to 200 charactersTopics.
criteriabodystring arraynoup to 50 items of up to 500 charactersAcceptance criteria.
triggerbodystringnoup to 80 charactersOne line that says when to log to this manuscript.
instructionsbodystringnoup to 16,000 charactersHow the agent maintains the book.
autoUpdatebodybooleannononeUpdate after each session without asking.
itemIdbodystringnoletters and digits, up to 64Attach to an existing book.
teamIdbodystringnoletters and digits, up to 64Share with a team you belong to.
structurebodyobjectnoup to 16,000 bytes of JSONStructure hints.

Request

bash
curl https://heytrove.ai/api/v1/manuscripts \
  -H "Authorization: Bearer trove_your_key" \
  -H "Content-Type: application/json" \
  -d '{"title":"Team runbook","topics":["deploys","rollbacks"],"autoUpdate":true}'

Response

Status 201. The body is { "manuscript": { ... } } with the fields shown above.

Errors

StatusMessageCodeFix
400A message that names the field that failedINVALID_INPUTFix the field.
403A message that names the manuscripts using your slotsMANUSCRIPT_LIMIT_EXCEEDEDPause one, or upgrade. The body adds upgradeUrl, limit, used and occupants.
403Your library is full. Upgrade to add more items.PLAN_LIMIT_EXCEEDEDA new manuscript also creates a book.
403You are not a member of team {id}.NOT_TEAM_MEMBERUse a team you belong to.
404Item {id} not found or does not belong to your account.ITEM_NOT_FOUNDCheck itemId.
409Item {id} already has an active manuscript. Archive it first with: trove ms archive {manuscriptId}MANUSCRIPT_ITEM_CONFLICTArchive the other one. The body adds existingManuscriptId.
429Too many requestsRATE_LIMITEDWait a minute.

CLI equivalent: trove ms create.

Update a manuscript

PUT https://heytrove.ai/api/v1/manuscripts/{id}

Changes fields or the status. Send only the fields you want to change. A field that allows it can be set to null to clear it.

Parameters

NameInTypeRequiredConstraintsMeaning
idpathstringyesnoneManuscript to change.
titlebodystringno1 to 200 charactersNew title.
descriptionbodystring or nullnoup to 4,000 charactersDescription.
audiencebodystring or nullnoup to 500 charactersAudience.
topicsbodystring arraynoup to 50 itemsTopics.
criteriabodystring arraynoup to 50 itemsCriteria.
triggerbodystring or nullnoup to 80 charactersTrigger line.
instructionsbodystring or nullnoup to 16,000 charactersInstructions.
autoUpdatebodybooleannononeAuto-update on or off.
statusbodystringnoACTIVE, PAUSED or ARCHIVEDPAUSED stops updates and frees the slot. ACTIVE uses a slot.
structurebodyobject or nullnoup to 16,000 bytes of JSONStructure hints.

Request

bash
curl -X PUT https://heytrove.ai/api/v1/manuscripts/cmms123 \
  -H "Authorization: Bearer trove_your_key" \
  -H "Content-Type: application/json" \
  -d '{"status":"PAUSED"}'

Response

json
{ "manuscript": { "id": "cmms123", "title": "Team runbook", "status": "PAUSED" } }

The manuscript object has every field shown in the list response.

Errors

StatusMessageCodeFix
400Invalid request bodynoneSend a JSON object.
404Manuscript not foundNOT_FOUNDCheck the id.
403Only the author or a team owner/admin can update this team manuscript.FORBIDDENAsk the author or a team admin.
403A message that names the manuscripts using your slotsMANUSCRIPT_LIMIT_EXCEEDEDPause another one first.

CLI equivalent: trove ms update.

Archive a manuscript

DELETE https://heytrove.ai/api/v1/manuscripts/{id}

Archives a manuscript you wrote. Nothing is deleted. The book stays, and updates stop.

Request

bash
curl -X DELETE https://heytrove.ai/api/v1/manuscripts/cmms123 \
  -H "Authorization: Bearer trove_your_key"

Response

json
{ "success": true }

Errors

StatusMessageCodeFix
404Manuscript not foundNOT_FOUNDOnly the author can archive. Check the id.

CLI equivalent: trove ms archive.

    Manuscripts API | Trove