Kamai · Schema

MarkupRecord

ConstructionArtificial IntelligenceBlueprint ExtractionTakeoffEstimationRFI extractionSubmittal reviewSpec review

Properties

Name Type Description
id string The markup's id.
kind string `cloud`: a revision cloud; `highlight`: a marker stroke; `note`: a text box, optionally with an arrow.
blueprint_id string The sheet it is drawn on.
box object Its bounding box, [x0, y0, x1, y1] in fractions (0..1) of the page from the top-left corner.
points object A highlight's stroke, or a cloud's outline when it is not a plain box, as [[x, y], ...] page fractions.
pointer object A note's arrow tip, [x, y] page fractions.
text object The note's text.
style object `color` (#RRGGBB), `width` and `font_size` in PDF points, `opacity` 0..1; defaults filled in.
version integer Increases on every change; send it back on an update or a delete.
can_edit boolean Whether you may change or delete it (its author or the project owner).
author object The author's display name, or `null` when the account has none.
source object Where it was made: `app` (the Kamai app), `chat` (its assistant) or `mcp` (this API or an MCP client).
created_at object When it was made (ISO 8601, UTC).
updated_at object When it last changed (ISO 8601, UTC).
delta object A cloud's revision number, shown as Δ1, Δ2… per sheet; never reused after a delete.
room object The room a note's arrow points at, or the room an app-drawn cloud or highlight was linked to, by name.
room_id object That room's id as `{blueprint_id}::{room id}`; the part after `::` is the room's feature `id`. Re-resolved on a read when a room still covers the linked spot. Moving a note's arrow tip, or moving or r
element object The element a note was pinned to in the app, by name (instead of `room`).
element_id object That element's id, as the app recorded it.
deleted object `true` on the record a delete returns.
View JSON Schema on GitHub

JSON Schema

kamai-io-markup-record-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/kamai-io/json-schema/kamai-io-markup-record-schema.json",
  "title": "MarkupRecord",
  "x-generated": "2026-11-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/kamai-io-openapi.json#/components/schemas/MarkupRecord",
  "properties": {
    "id": {
      "type": "string",
      "title": "Id",
      "description": "The markup's id."
    },
    "kind": {
      "type": "string",
      "enum": [
        "cloud",
        "highlight",
        "note"
      ],
      "title": "Kind",
      "description": "`cloud`: a revision cloud; `highlight`: a marker stroke; `note`: a text box, optionally with an arrow."
    },
    "blueprint_id": {
      "type": "string",
      "title": "Blueprint Id",
      "description": "The sheet it is drawn on."
    },
    "box": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Box",
      "description": "Its bounding box, [x0, y0, x1, y1] in fractions (0..1) of the page from the top-left corner."
    },
    "points": {
      "anyOf": [
        {
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Points",
      "description": "A highlight's stroke, or a cloud's outline when it is not a plain box, as [[x, y], ...] page fractions."
    },
    "pointer": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Pointer",
      "description": "A note's arrow tip, [x, y] page fractions."
    },
    "text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Text",
      "description": "The note's text."
    },
    "style": {
      "additionalProperties": true,
      "type": "object",
      "title": "Style",
      "description": "`color` (#RRGGBB), `width` and `font_size` in PDF points, `opacity` 0..1; defaults filled in."
    },
    "version": {
      "type": "integer",
      "title": "Version",
      "description": "Increases on every change; send it back on an update or a delete."
    },
    "can_edit": {
      "type": "boolean",
      "title": "Can Edit",
      "description": "Whether you may change or delete it (its author or the project owner).",
      "default": false
    },
    "author": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Author",
      "description": "The author's display name, or `null` when the account has none."
    },
    "source": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "app",
            "chat",
            "mcp"
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Source",
      "description": "Where it was made: `app` (the Kamai app), `chat` (its assistant) or `mcp` (this API or an MCP client)."
    },
    "created_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Created At",
      "description": "When it was made (ISO 8601, UTC)."
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At",
      "description": "When it last changed (ISO 8601, UTC)."
    },
    "delta": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Delta",
      "description": "A cloud's revision number, shown as Δ1, Δ2… per sheet; never reused after a delete."
    },
    "room": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Room",
      "description": "The room a note's arrow points at, or the room an app-drawn cloud or highlight was linked to, by name."
    },
    "room_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Room Id",
      "description": "That room's id as `{blueprint_id}::{room id}`; the part after `::` is the room's feature `id`. Re-resolved on a read when a room still covers the linked spot. Moving a note's arrow tip, or moving or reshaping a linked cloud or highlight, re-links it at the new spot, and the update response carries it."
    },
    "element": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Element",
      "description": "The element a note was pinned to in the app, by name (instead of `room`)."
    },
    "element_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Element Id",
      "description": "That element's id, as the app recorded it."
    },
    "deleted": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Deleted",
      "description": "`true` on the record a delete returns."
    }
  },
  "additionalProperties": true,
  "type": "object",
  "required": [
    "id",
    "kind",
    "blueprint_id",
    "version"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/kamai-io-markup-record"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.