Incantory
Sign in

Collections API

11 operations. Authentication, errors and pagination work as described in the REST API overview.

List collections

GET/api/v1/collectionsToken optional

Public collections, one owner's (owner=handle) or yours (mine=1), newest first.

listCollections parameters
NameTypeDescription
owner querystring
mine query"1" | "true"
cursor querystring

Responses: 200 OK304, 400, 404, 429

Response fields
listCollections response fields
NameTypeDescription
itemsrequiredobject[]
nextCursorrequiredstring | nullOpaque cursor for the next page; null at the end
Example
curl 'https://incantory.ai/api/v1/collections' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"

Create a collection

POST/api/v1/collectionsToken required

Request body

createCollection body fields
NameTypeDescription
titlerequiredstring
descriptionstring
visibility"public" | "unlisted" | "private"

Responses: 201 OK400, 401, 403, 404, 429

Response fields
createCollection response fields
NameTypeDescription
idrequiredstring
slugrequiredstring
titlerequiredstring
descriptionrequiredstring
visibilityrequired"public" | "unlisted" | "private"
itemCountrequiredinteger (-9007199254740991–9007199254740991)
starCountrequiredinteger (-9007199254740991–9007199254740991)
ownerrequiredobject
urlrequiredstring
updatedAtrequiredstringISO 8601 timestamp (UTC)
createdAtrequiredstringISO 8601 timestamp (UTC)
viewerrequiredobject
Example
curl -X POST 'https://incantory.ai/api/v1/collections' \
  -H "Authorization: Bearer $INCANTORY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"title":"title"}'

A collection and the items you may see

GET/api/v1/collections/{id}Token optional

getCollection parameters
NameTypeDescription
id pathrequiredstringId

Responses: 200 OK400, 404, 429

Response fields
getCollection response fields
NameTypeDescription
idrequiredstring
slugrequiredstring
titlerequiredstring
descriptionrequiredstring
visibilityrequired"public" | "unlisted" | "private"
itemCountrequiredinteger (-9007199254740991–9007199254740991)
starCountrequiredinteger (-9007199254740991–9007199254740991)
ownerrequiredobject
urlrequiredstring
updatedAtrequiredstringISO 8601 timestamp (UTC)
createdAtrequiredstringISO 8601 timestamp (UTC)
viewerrequiredobject
itemsrequiredobject[]
Example
curl 'https://incantory.ai/api/v1/collections/{id}' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"

Edit a collection (owner or admin)

PATCH/api/v1/collections/{id}Token required

A slug change redirects the old URL.

updateCollection parameters
NameTypeDescription
id pathrequiredstringId

Request body

updateCollection body fields
NameTypeDescription
titlestring
descriptionstring
visibility"public" | "unlisted" | "private"
slugstring

Responses: 200 OK400, 401, 403, 404, 429

Response fields
updateCollection response fields
NameTypeDescription
idrequiredstring
slugrequiredstring
titlerequiredstring
descriptionrequiredstring
visibilityrequired"public" | "unlisted" | "private"
itemCountrequiredinteger (-9007199254740991–9007199254740991)
starCountrequiredinteger (-9007199254740991–9007199254740991)
ownerrequiredobject
urlrequiredstring
updatedAtrequiredstringISO 8601 timestamp (UTC)
createdAtrequiredstringISO 8601 timestamp (UTC)
viewerrequiredobject
Example
curl -X PATCH 'https://incantory.ai/api/v1/collections/{id}' \
  -H "Authorization: Bearer $INCANTORY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{}'

Delete a collection (owner or admin)

DELETE/api/v1/collections/{id}Token required

deleteCollection parameters
NameTypeDescription
id pathrequiredstringId

Responses: 204 OK400, 401, 403, 404, 429

Example
curl -X DELETE 'https://incantory.ai/api/v1/collections/{id}' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"

Add a prompt, make or post (idempotent)

POST/api/v1/collections/{id}/itemsToken required

addCollectionItem parameters
NameTypeDescription
id pathrequiredstringId

Request body

addCollectionItem body fields
NameTypeDescription
itemTyperequired"prompt" | "make" | "post"
itemIdrequiredstring
notestring | null

Responses: 201 Added (200 when it was already there, `added: false`)400, 401, 403, 404, 409, 429

Response fields
addCollectionItem response fields
NameTypeDescription
addedrequiredboolean
itemCountrequiredinteger (-9007199254740991–9007199254740991)
Example
curl -X POST 'https://incantory.ai/api/v1/collections/{id}/items' \
  -H "Authorization: Bearer $INCANTORY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"itemType":"prompt","itemId":"itemId"}'

Reorder items

PUT/api/v1/collections/{id}/itemsToken required

reorderCollection parameters
NameTypeDescription
id pathrequiredstringId

Request body

reorderCollection body fields
NameTypeDescription
orderrequiredstring[]

Responses: 200 OK400, 401, 403, 404, 429

Response fields
reorderCollection response fields
NameTypeDescription
okrequiredtrue
Example
curl -X PUT 'https://incantory.ai/api/v1/collections/{id}/items' \
  -H "Authorization: Bearer $INCANTORY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"order":["order"]}'

Remove an item by its target

DELETE/api/v1/collections/{id}/itemsToken required

removeCollectionItemByTarget parameters
NameTypeDescription
id pathrequiredstringId
itemType query"prompt" | "make" | "post"
itemId querystring

Responses: 200 OK400, 401, 403, 404, 429

Response fields
removeCollectionItemByTarget response fields
NameTypeDescription
removedrequiredboolean
itemCountrequiredinteger (-9007199254740991–9007199254740991)
Example
curl -X DELETE 'https://incantory.ai/api/v1/collections/{id}/items' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"

Set the note on an item

PATCH/api/v1/collections/{id}/items/{itemId}Token required

setCollectionItemNote parameters
NameTypeDescription
id pathrequiredstringCollection id
itemId pathrequiredstringCollection item row id

Request body

setCollectionItemNote body fields
NameTypeDescription
noterequiredstring | null

Responses: 200 OK400, 401, 403, 404, 429

Response fields
setCollectionItemNote response fields
NameTypeDescription
okrequiredtrue
Example
curl -X PATCH 'https://incantory.ai/api/v1/collections/{id}/items/{itemId}' \
  -H "Authorization: Bearer $INCANTORY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"note":"note"}'

Remove one item

DELETE/api/v1/collections/{id}/items/{itemId}Token required

removeCollectionItem parameters
NameTypeDescription
id pathrequiredstringCollection id
itemId pathrequiredstringCollection item row id

Responses: 200 OK400, 401, 403, 404, 429

Response fields
removeCollectionItem response fields
NameTypeDescription
removedrequiredboolean
itemCountrequiredinteger (-9007199254740991–9007199254740991)
Example
curl -X DELETE 'https://incantory.ai/api/v1/collections/{id}/items/{itemId}' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"

Your collections, flagged if they contain a target

GET/api/v1/collections/membershipToken required

collectionMembership parameters
NameTypeDescription
targetType queryrequired"prompt" | "make" | "post"
targetId queryrequiredstring

Responses: 200 OK400, 401, 403, 404, 429

Response fields
collectionMembership response fields
NameTypeDescription
itemsrequiredobject[]
Example
curl 'https://incantory.ai/api/v1/collections/membership' \
  -H "Authorization: Bearer $INCANTORY_TOKEN"