Concepts

Objects

An object is any piece of content in your space — a page, weblink, tag, daily note instance, or custom type. The primary representation is returned by GET /object.

Response shape

FieldDescription
idObject UUID
structureIdStructure / type id (see Structures)
collectionsUUIDs of collections (databases) this object is assigned to
propertiesMap of property definition id → typed value (see Properties)
blocksOptional map of property id → block content
filesOptional signed download URLs for media types
mediaContentOptional OCR text and colors for images when analysis is complete

Example (abbreviated):

{
  "id": "7d2e7f8a-4c3b-4e1d-9f0a-123456789abc",
  "structureId": "4ba6e5c6-3f31-45f2-93a0-27a8b2d91551",
  "collections": ["9f20f3d7-7df6-4b4a-8f82-123456789abc"],
  "properties": {
    "title": { "type": "title", "title": { "value": "Example" } }
  },
  "blocks": {
    "content": [
      {
        "id": "b1111111-1111-4111-8111-111111111111",
        "type": "TextBlock",
        "tokens": [{ "type": "TextToken", "text": "Hello", "style": {} }],
        "blocks": [],
        "hierarchy": { "key": "Base", "val": 0 }
      }
    ]
  }
}

Collections

Collections are Capacities databases that group objects of a structure. On read, collections lists the collection ids the object currently belongs to.

When creating or updating:

  • Pass specific collection ids to assign the object to those databases.
  • Pass collections: [] to move the object back to its default database for that structure (when the structure supports collections).
  • Omit collections on create to use default placement behavior.

Only structures that support collections accept collections on POST /object and PATCH /object. Others ignore or reject collection changes.

CRUD overview

OperationEndpointRequired scope
ReadGET /object?id=…api:read
CreatePOST /objectapi:write
UpdatePATCH /objectapi:write
DeleteDELETE /object?id=…api:write
Create from URLPOST /object/urlapi:write
Export MarkdownGET /object/markdown?id=…api:read
Create from MarkdownPOST /object/markdownapi:write

Patch requires at least one of properties or collections. Delete supports hardDelete=true to permanently remove an object instead of moving it to trash.

To create or export body content as Markdown instead of block trees, see Markdown.

Media analysis (mediaContent)

For images (MediaImage), GET /object may include mediaContent when AI analysis is complete (mediaContentState is full):

FieldDescription
ocr.textText extracted from the image
colorsDominant colors (name, hex)

Other media types and fields (audio, weblinks, categories, etc.) are not exposed yet. While analysis is still running or failed, mediaContent is omitted.

Are you missing something in the documentation?

Create a ticket on our feedback board. - Let us know if you have an idea for a feature, improvement or think there is something missing.

Request additions to the documentation. - If your questions are not getting answered, let us know and we will extend the documentation.