Skip to content

API reference

Every path starts with https://omamo.app/api/public/v1. Every request needs your key in Authorization: Bearer <key>. Answers are JSON: data, or error with a code and a message. See the API guide for keys, pages, limits, and errors. The OpenAPI file describes the same endpoints for tools.

GET /spaces

The spaces you belong to, including the ones other people share with you. Any key can call it.

Answer (200)

Field Type Description
data object list The answer
data[].id string Its id
data[].name string Its name
data[].description string or null What it is for, or null
data[].boards integer How many boards it has
data[].members integer How many people belong to it
curl "https://omamo.app/api/public/v1/spaces" \
  -H "Authorization: Bearer $OMAMO_KEY"

GET /spaces/{spaceId}/boards

The boards in a space that you can open, in their order. Any key can call it.

Path

Name Type Description
spaceId id The space’s id

Answer (200)

Field Type Description
data object list The answer
data[].id string Its id
data[].spaceId string The space it is in
data[].name string Its name
data[].description string or null What it is for, or null
data[].collections integer How many collections it has
curl "https://omamo.app/api/public/v1/spaces/<spaceId>/boards" \
  -H "Authorization: Bearer $OMAMO_KEY"

POST /spaces/{spaceId}/boards

Adds a board to the end of a space. Needs a read and write key.

Path

Name Type Description
spaceId id The space’s id

Body (JSON)

Field Type Required Description
name string Yes Up to 100 characters
description string No Up to 500 characters

Answer (201)

Field Type Description
data object The answer
data.id string Its id
data.spaceId string The space it is in
data.name string Its name
data.description string or null What it is for, or null
data.collections integer How many collections it has
curl -X POST "https://omamo.app/api/public/v1/spaces/<spaceId>/boards" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"My name"}'

PATCH /boards/{boardId}

Renames a board or changes its description. Send at least one of the two. Needs a read and write key.

Path

Name Type Description
boardId id The board’s id

Body (JSON)

Field Type Required Description
name string No Up to 100 characters
description string No Up to 500 characters

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.spaceId string The space it is in
data.name string Its name
data.description string or null What it is for, or null
data.collections integer How many collections it has
curl -X PATCH "https://omamo.app/api/public/v1/boards/<boardId>" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Reading"}'

GET /boards/{boardId}/collections

The collections on a board, in their order. Any key can call it.

Path

Name Type Description
boardId id The board’s id

Answer (200)

Field Type Description
data object list The answer
data[].id string Its id
data[].boardId string The board it is on
data[].name string Its name
data[].description string or null What it is for, or null
data[].items integer How many items it holds
curl "https://omamo.app/api/public/v1/boards/<boardId>/collections" \
  -H "Authorization: Bearer $OMAMO_KEY"

POST /boards/{boardId}/collections

Adds a collection to the end of a board. Needs a read and write key.

Path

Name Type Description
boardId id The board’s id

Body (JSON)

Field Type Required Description
name string Yes Up to 100 characters
description string No Up to 500 characters

Answer (201)

Field Type Description
data object The answer
data.id string Its id
data.boardId string The board it is on
data.name string Its name
data.description string or null What it is for, or null
data.items integer How many items it holds
curl -X POST "https://omamo.app/api/public/v1/boards/<boardId>/collections" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"My name"}'

PATCH /collections/{collectionId}

Renames a collection or changes its description. Send at least one of the two. Needs a read and write key.

Path

Name Type Description
collectionId id The collection’s id

Body (JSON)

Field Type Required Description
name string No Up to 100 characters
description string No Up to 500 characters

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.boardId string The board it is on
data.name string Its name
data.description string or null What it is for, or null
data.items integer How many items it holds
curl -X PATCH "https://omamo.app/api/public/v1/collections/<collectionId>" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Later"}'

GET /collections/{collectionId}/items

The links and notes in a collection, in their order, a page at a time. Each has an excerpt; get an item for its whole text. Any key can call it.

Path

Name Type Description
collectionId id The collection’s id

Query

Name Type Required Description
limit integer No Items per page, up to 100. Default 50.
cursor string No nextCursor from the page before. Leave it out for the first page.

Answer (200)

Field Type Description
data object list This page
data[].id string Its id
data[].type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data[].title string Its title
data[].url string or null The address, for a link
data[].tags string list Tag names
data[].collectionId string The collection it is in
data[].createdAt string An ISO 8601 date and time
data[].updatedAt string An ISO 8601 date and time
data[].excerpt string or null The start of the note or description, up to 240 characters
nextCursor string or null Pass it as cursor for the next page. null on the last page.
curl "https://omamo.app/api/public/v1/collections/<collectionId>/items" \
  -H "Authorization: Bearer $OMAMO_KEY"

GET /items/{itemId}

One link or note, with a note’s whole text. Any key can call it.

Path

Name Type Description
itemId id The item’s id

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data.title string Its title
data.url string or null The address, for a link
data.tags string list Tag names
data.collectionId string The collection it is in
data.createdAt string An ISO 8601 date and time
data.updatedAt string An ISO 8601 date and time
data.description string or null A link’s description
data.text string or null A note’s whole text, as plain text
curl "https://omamo.app/api/public/v1/items/<itemId>" \
  -H "Authorization: Bearer $OMAMO_KEY"

GET /items/{itemId}/article

The page behind a link as Omamo saved it, in markdown. Part of Omamo Pro: on Free this answers 402. A link without a saved article answers 404. Any key can call it.

Path

Name Type Description
itemId id The item’s id

Answer (200)

Field Type Description
data object The answer
data.markdown string The article as Omamo saved it, in markdown
data.title string or null The article’s own title
data.author string or null Who wrote it, when the page says
data.siteName string or null The site it is from
data.published string or null When it was published, when the page says
data.wordCount integer How many words it has
curl "https://omamo.app/api/public/v1/items/<itemId>/article" \
  -H "Authorization: Bearer $OMAMO_KEY"

POST /collections/{collectionId}/links

Saves a web address into a collection. Omamo then reads the page for its title, picture, and description. A YouTube video is saved with type VIDEO and YouTube’s own picture. Needs a read and write key.

Path

Name Type Description
collectionId id The collection’s id

Body (JSON)

Field Type Required Description
url URL Yes An http or https address
title string No Defaults to the address until Omamo reads the page
description string No Up to 5,000 characters
tags string list No Tag names, up to 20. A name the space does not have yet becomes a new tag.

Answer (201)

Field Type Description
data object The answer
data.id string Its id
data.type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data.title string Its title
data.url string or null The address, for a link
data.tags string list Tag names
data.collectionId string The collection it is in
data.createdAt string An ISO 8601 date and time
data.updatedAt string An ISO 8601 date and time
data.description string or null A link’s description
data.text string or null A note’s whole text, as plain text
curl -X POST "https://omamo.app/api/public/v1/collections/<collectionId>/links" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/"}'

POST /collections/{collectionId}/notes

Writes a note into a collection. Each line of the text becomes a paragraph. Needs a read and write key.

Path

Name Type Description
collectionId id The collection’s id

Body (JSON)

Field Type Required Description
title string Yes Up to 500 characters
text string Yes Plain text
tags string list No Tag names, up to 20. A name the space does not have yet becomes a new tag.

Answer (201)

Field Type Description
data object The answer
data.id string Its id
data.type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data.title string Its title
data.url string or null The address, for a link
data.tags string list Tag names
data.collectionId string The collection it is in
data.createdAt string An ISO 8601 date and time
data.updatedAt string An ISO 8601 date and time
data.description string or null A link’s description
data.text string or null A note’s whole text, as plain text
curl -X POST "https://omamo.app/api/public/v1/collections/<collectionId>/notes" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"My title","text":"My text"}'

PATCH /items/{itemId}

Changes a link’s or note’s title, address, description, text, or tags. Send at least one. text is for notes and replaces the whole note; description and url are for links. tags replaces the item’s whole set of tags. Needs a read and write key.

Path

Name Type Description
itemId id The item’s id

Body (JSON)

Field Type Required Description
title string No Up to 500 characters
url URL No An http or https address
description string No A link’s description, up to 5,000 characters
text string No Plain text
tags string list No Tag names, up to 20. A name the space does not have yet becomes a new tag.

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data.title string Its title
data.url string or null The address, for a link
data.tags string list Tag names
data.collectionId string The collection it is in
data.createdAt string An ISO 8601 date and time
data.updatedAt string An ISO 8601 date and time
data.description string or null A link’s description
data.text string or null A note’s whole text, as plain text
curl -X PATCH "https://omamo.app/api/public/v1/items/<itemId>" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"A better title","tags":["reading"]}'

POST /items/{itemId}/move

Moves a link or note to the end of a collection. Needs a read and write key.

Path

Name Type Description
itemId id The item’s id

Body (JSON)

Field Type Required Description
collectionId id Yes The collection’s id

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data.title string Its title
data.url string or null The address, for a link
data.tags string list Tag names
data.collectionId string The collection it is in
data.createdAt string An ISO 8601 date and time
data.updatedAt string An ISO 8601 date and time
data.description string or null A link’s description
data.text string or null A note’s whole text, as plain text
curl -X POST "https://omamo.app/api/public/v1/items/<itemId>/move" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collectionId":"<collectionId>"}'

DELETE /items/{itemId}

Moves a link or note to Omamo’s trash. It can be restored in the app for 30 days. Needs a read and write key.

Path

Name Type Description
itemId id The item’s id

Answer (200)

Field Type Description
data object The answer
data.id string Its id
data.restorableForDays integer How long it waits in the trash
curl -X DELETE "https://omamo.app/api/public/v1/items/<itemId>" \
  -H "Authorization: Bearer $OMAMO_KEY"

POST /items/bulk/move

Moves up to 100 items to the end of one collection, in the order given. Each item gets its own result, so one you may not move does not stop the rest. Needs a read and write key.

Body (JSON)

Field Type Required Description
itemIds id list Yes Item ids, up to 100
collectionId id Yes The collection’s id

Answer (200)

Field Type Description
data object The answer
data.results object list One result per item, in the order sent
data.results[].id string The item’s id
data.results[].ok boolean Whether it was done
data.results[].error string Why this item was left as it was
curl -X POST "https://omamo.app/api/public/v1/items/bulk/move" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"itemIds":["<itemId>"],"collectionId":"<collectionId>"}'

POST /items/bulk/tag

Adds tags to up to 100 items, takes tags off, or both. Their other tags stay. Each item gets its own result. Needs a read and write key.

Body (JSON)

Field Type Required Description
itemIds id list Yes Item ids, up to 100
add string list No Tag names, up to 20. A name the space does not have yet becomes a new tag.
remove string list No Tag names to take off. Case does not matter.

Answer (200)

Field Type Description
data object The answer
data.results object list One result per item, in the order sent
data.results[].id string The item’s id
data.results[].ok boolean Whether it was done
data.results[].error string Why this item was left as it was
curl -X POST "https://omamo.app/api/public/v1/items/bulk/tag" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"itemIds":["<itemId>"],"add":["reading"]}'

POST /items/bulk/delete

Moves up to 100 items to Omamo’s trash, where they can be restored for 30 days. Each item gets its own result. Needs a read and write key.

Body (JSON)

Field Type Required Description
itemIds id list Yes Item ids, up to 100

Answer (200)

Field Type Description
data object The answer
data.results object list One result per item, in the order sent
data.results[].id string The item’s id
data.results[].ok boolean Whether it was done
data.results[].error string Why this item was left as it was
curl -X POST "https://omamo.app/api/public/v1/items/bulk/delete" \
  -H "Authorization: Bearer $OMAMO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"itemIds":["<itemId>"]}'

GET /spaces/{spaceId}/tags

The tags in a space, most used first. Any key can call it.

Path

Name Type Description
spaceId id The space’s id

Answer (200)

Field Type Description
data object list The answer
data[].id string Its id
data[].name string Its name
data[].color string One of six inks: green, clay, indigo, ochre, plum, teal
data[].items integer How many items have it
curl "https://omamo.app/api/public/v1/spaces/<spaceId>/tags" \
  -H "Authorization: Bearer $OMAMO_KEY"

GET /tags/{tagId}/items

The links and notes with a tag, newest first, across the boards you can open in its space. Any key can call it.

Path

Name Type Description
tagId id The tag’s id

Query

Name Type Required Description
limit integer No Items per page, up to 100. Default 50.
cursor string No nextCursor from the page before. Leave it out for the first page.

Answer (200)

Field Type Description
data object list This page
data[].id string Its id
data[].type LINK, NOTE, IMAGE, SCREENSHOT, VIDEO What the item is
data[].title string Its title
data[].url string or null The address, for a link
data[].tags string list Tag names
data[].collectionId string The collection it is in
data[].createdAt string An ISO 8601 date and time
data[].updatedAt string An ISO 8601 date and time
data[].excerpt string or null The start of the note or description, up to 240 characters
nextCursor string or null Pass it as cursor for the next page. null on the last page.
curl "https://omamo.app/api/public/v1/tags/<tagId>/items" \
  -H "Authorization: Bearer $OMAMO_KEY"

GET /search

Finds boards, collections, links, and notes in a space by the words in their titles and text. To search several spaces, make one request for each. Any key can call it.

Query

Name Type Required Description
q string Yes The words to find
spaceId id Yes The space’s id
limit integer No Results, up to 50. Default 20.

Answer (200)

Field Type Description
data object list The answer
data[].kind BOARD, COLLECTION, ITEM What was found
data[].id string Its id
data[].title string Its title or name
data[].url string or null
data[].itemType LINK, NOTE, IMAGE, SCREENSHOT, VIDEO or null For an item
data[].excerpt string or null
data[].spaceId string The space it is in
data[].boardId string or null
data[].collectionId string or null For an item
curl "https://omamo.app/api/public/v1/search" \
  -H "Authorization: Bearer $OMAMO_KEY"