REST API Reference

Public REST API for programmatic read access to Metapad models. All endpoints require an API token (mpt_...) or OAuth JWT. Pro+ plan required.

GET
/api/v1/models/{model_id}/assetsREST

List Assets

List all assets (file attachments) in a model. Returns metadata only — file binaries are fetched separately via Download Asset. Useful for browsing what's attached to a model.

GET
/api/v1/models/{model_id}/assets/{asset_id}REST

Get Asset Metadata

Fetch metadata for a single asset (label, description, filename, content type, size, tags, timestamps). Does not return the file binary — use Download Asset for that.

GET
/api/v1/models/{model_id}/assets/{asset_id}/downloadREST

Download Asset

Download the file attached to an asset. Returns a 302 redirect to a short-lived presigned S3 URL — clients must follow redirects to fetch the binary. Returns 404 with code 'no_file' if the asset has no file attached.

DELETE
/api/v1/models/{model_id}/assets/{asset_id}/fileREST

Delete Asset File

Detach the file from an asset. The asset element itself stays in the model — only the attached binary is removed from object storage and the file metadata cleared. Use this to replace a file (delete, then upload).

POST
/api/v1/models/{model_id}/assetsREST

Upload Asset

Create a new asset in a model and attach a file in a single multipart upload. Broadcasts AssetAdded + AssetFileAttached collaboration operations — browser users see the new asset in real-time. 100 MB max.

GET
/api/v1/models/{model_id}REST

Get Model

Returns the full model data including metamodel (M2 types) and all node/relationship instances. Equivalent to a full JSON export.

GET
/api/v1/models/{model_id}/relationshipsREST

List Relationships

Paginated list of relationships with filtering by type, source, or target node. Returns x-total-count header for pagination.

GET
/api/v1/models/{model_id}/exportREST

Export Model

Export the full model as a downloadable JSON file. Identical payload to Get Model but served with Content-Disposition: attachment for direct download.

GET
/api/v1/models/{model_id}/metadataREST

Get Metadata

Lightweight model metadata: name, description, language list, node/relationship counts, and last updated timestamp. Does not return model content.

GET
/api/v1/models/{model_id}/foldersREST

List Folders

Returns the complete folder hierarchy for the model. Folders are optional organizational containers for nodes.

POST
/api/v1/models/{model_id}/nodes/batchREST

Batch Get Nodes

Fetch multiple nodes by ID in a single request. More efficient than multiple single-node calls. Accepts UUIDs and auto-IDs (e.g. REQ-42).

GET
/api/v1/models/{model_id}/nodes/{node_id}REST

Get Node

Full details for a single node including all properties and optionally its incoming and outgoing relationships. Accepts UUID or auto-ID (e.g. REQ-42).

GET
/api/v1/models/{model_id}/nodesREST

List Nodes

Paginated list of node instances with filtering by type, folder, and full-text search. Returns a page of node summaries plus x-total-count header for pagination.

GET
/api/v1/models/{model_id}/schemaREST

Get Schema

Returns the metamodel (M2 schema): all node types, relationship types, their properties, and allowed connection patterns. Equivalent to the MCP get_metamodel tool.