Packs
Create, read, update, search, like, and delete packs.
Use pack endpoints for reusable workflows and context.
Create
POST /v1/packs
Authorization: Bearer <token>
Content-Type: application/json
{
"type": "context",
"title": "Team onboarding",
"scope": { "type": "personal" },
"blocks": [
{ "title": "Where things live", "content": "Docs in Notion, code in GitHub, designs in Figma." }
]
}Workflow packs use steps; context packs use blocks.
Workflow step dueDate is a relative number of days from a future workflow run, stored as a string such as "7". It is not a calendar date. Use task dueDate for YYYY-MM-DD deadlines.
Read
GET /v1/packs?reference=@repo-onboarding returns outline data by default. Add full=true for all nested content, or pass blockIds / stepIds for selected content.
Pack references can be UUIDs, aliases, share URLs, or hub URLs.
| Operation | Cost |
|---|---|
packs.create |
5 credits |
packs.search |
5 credits |
packs.get |
1 credit |
packs.update/delete/like |
1 credit |
For large packs, read the outline first to keep agent context small, then fetch only the nested content needed.
packs.get costs the same 1 credit for outline, selected-content, and full-content (full=true) reads.
Update
Nested content updates use operation arrays.
PATCH /v1/packs?reference=@repo-onboarding
Authorization: Bearer <token>
Content-Type: application/json
{
"blocks": [
{ "op": "add", "title": "Local setup", "content": "npm install" },
{ "op": "update", "id": "b001", "content": "Updated" },
{ "op": "remove", "id": "b002" }
]
}Omitting steps or blocks keeps nested content unchanged. Passing an empty array is a no-op. Use one remove operation per nested item to delete all items.
Search filters
Pack search supports type, query, page, scopes, and filters such as category, like, visibility, ownerId, minLikeCount, minDownloadCount, updatedAtFrom, and updatedAtTo.