Docs/API Reference/Instruments

Instruments

The Instruments API lets you read instrument type schemas, create and manage individual instruments, and organise them with hierarchical tags. All routes are scoped to a workspace.

/v1/workspaces/{workspaceId}
Types (read-only)Type Fields (read-only)InstrumentsTagsTag Assignments

Instrument Types read-only

Instrument types define the schema for a class of instruments (e.g. Equity, Bond, ETF). Robot users can read types to understand the available schemas but cannot create or modify them — that requires the Editor role.

GET/instrument-typesList instrument typesViewer+
GET/instrument-types/{id}Get an instrument typeViewer+
POST/instrument-types/filterFilter instrument typesViewer+
POST/instrument-types/countCount instrument typesViewer+

Instrument Type Fields read-only

Field definitions describe the custom attributes available on instruments of a given type. Robot users can read fields to understand what field_values to supply when creating or updating instruments.

GET/instrument-type-fieldsList type fieldsViewer+
GET/instrument-type-fields/{id}Get a type fieldViewer+
POST/instrument-type-fields/filterFilter type fieldsViewer+
POST/instrument-type-fields/countCount type fieldsViewer+

Instruments

Individual instrument records. Each instrument belongs to one type and carries custom field values defined by that type’s schema. Supports full-text search, EAV field filtering, and tag-based queries.

GET/instrumentsList instrumentsViewer+
POST/instrumentsCreate an instrumentMember

Creates an instrument and upserts all field_values atomically. The extra_fields_snapshot in the response reflects all values immediately.

Request body
{ "name": "BHP Group Ltd.", "identifier": "bhp.ax", "type_id": "equity", "field_values": { "exchange": "ASX", "isin": "AU000000BHP4", "sector": "Materials" }, "extras": { "bloomberg_figi": "BBG000BKRN43" } }
Response — 201 Created
{ "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "identifier": "bhp.ax", "name": "BHP Group Ltd.", "type_id": "uuid", "extra_fields_snapshot": { "exchange": "ASX", "isin": "AU000000BHP4", "sector": "Materials" }, "archived_at": null, "created_at": "2026-04-15T09:00:00Z" }
GET/instruments/{id}Get an instrumentViewer+
PATCH/instruments/{id}Update an instrumentMember
DELETE/instruments/{id}Archive an instrumentMember
DELETE/instruments/{id}?hard=trueHard deleteMember
POST/instruments/{id}/restoreRestore an instrumentMember
POST/instruments/filterFilter instrumentsViewer+
POST/instruments/countCount instrumentsViewer+

Instrument Tags

Hierarchical, workspace-scoped tags for organising instruments. Any workspace Member can create, rename, and archive tags.

GET/instrument-tagsList tagsViewer+
POST/instrument-tagsCreate a tagMember
GET/instrument-tags/{id}Get a tagViewer+
PATCH/instrument-tags/{id}Update a tagMember
POST/instrument-tags/{id}/archiveArchive a tagMember
POST/instrument-tags/{id}/restoreRestore a tagMember
DELETE/instrument-tags/{id}Hard delete a tagMember
GET/instrument-tags/{id}/ancestorsGet ancestor chainViewer+
GET/instrument-tags/{id}/descendantsGet all descendantsViewer+
POST/instrument-tags/filterFilter tagsViewer+
POST/instrument-tags/countCount tagsViewer+

Tag Assignments

Assign tags to instruments. An instrument can have many tags, and a tag can be assigned to many instruments.

GET/instruments/{instrumentId}/tagsList assigned tagsViewer+
POST/instruments/{instrumentId}/tagsAdd a tagMember
DELETE/instruments/{instrumentId}/tags/{tagId}Remove a tagMember
PUT/instruments/{instrumentId}/tagsBulk replace tagsMember
POST/instrument-tag-assignments/filterFilter assignmentsViewer+
POST/instrument-tag-assignments/countCount assignmentsViewer+
PrivacyTermsStatus© 2025 Ptolemy Pty Ltd