Endpoints

Getting started

First, you'll need to Generate an API key.

Next, your API endpoint is either:

  • https://[YOUR-TENANT-NAME].violetlabs.com/api/ for Violet customers

  • https://[YOUR-TENANT-NAME].violetgov.com/api/ for VioletGov customers

Note: If you wish to access an API endpoint to your Violet Staging sandbox environment, use the https://[YOUR-TENANT-NAME].staging.violetlabs.com/api/ or https://[YOUR-TENANT-NAME].staging.violetgov.com/api/ endpoints.

Last, the API payload is described in the Endpoints below, but the easiest way to generate a query is actually via the Data Explorer.

Explore

Use the Explore endpoint to programmatically access your Violet data.

Generate a query

  1. Head to Data Explorer to generate a query. You can use Quick Views, a saved exploration, or filters to configure the query for the data you're interested in.

  1. Next, click the Copy API payload button in the toolbar.

  1. The API payload for the query will copy to your clipboard - you can then paste this directly into a request.

Try it out in Postman

To test in Postmanarrow-up-right:

  1. Create a new Postman request, select the POST method, and populate your URL (eg. https://magictoaster.violetlabs.com/api/explore/arrow-up-right)

  2. In the Authorization tab, select API Key in the Auth Type dropdown. Enter x-api-key for the Key, and populate your API key for the Value.

  1. In the Body tab, select raw, then paste the API payload you generated above. Click Send.

  1. Your results should appear below.

  1. We love using Postman's Visualizerarrow-up-right to generate visualizations of your data:

Why POST?

The Explore and endpoint supports a rich set of data filtering options, so Violet uses a POST endpoint for the query. This allows complex queries to be sent in a body payload instead of directly in the URL.

post
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
keywordstringOptional

Search keyword to filter entities

Example: part number
groupKeysarrayOptional

Array of group keys (strings or objects)

sortobjectOptional

Elasticsearch sort configuration

pagenumber · min: 1Optional

Page number (1-indexed)

Example: 1
limitnumber · min: 1Optional

Number of items per page

Example: 50
includeParametersbooleanOptional

Whether to include parameters in the response

Default: false
includeSubEntitiesbooleanOptional

Whether to include sub-entities in the response

Default: false
includeSchemasbooleanOptional

Whether to include entity schemas in the response

Default: false
Responses
chevron-right
200

Search for entities

application/json
post
/api/explore
200

Search for entities

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
columnstringRequired
Query parameters
sizenumberRequired
Responses
chevron-right
200Success
application/json
string[]Optional
get
/api/explore/column/{column}
200Success

Entities

The entities endpoint returns a broad set of properties and metadata related to an entity or entities. You can use the explore endpoint to determine the entity IDs, and then the entities endpoint to query a deeper set of metadata about the entity.

post

Returns VioletEntityDto (default) or VioletEntityMcpCompactDto when responseScope is mcp_compact, for each id the caller can read. Omit unknown or forbidden ids.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
idsstring · uuid[]Required

Violet entity UUIDs to load (e.g. from getEntityRelationships graph nodes). Up to 100 IDs per request.

responseScopestring · enumOptional

Set to mcp_compact for a slim payload suitable for MCP / LLM (omits integrationEntities, schemas, tags, etc.). Omit for the standard VioletEntityDto[] response.

Possible values:
Responses
chevron-right
200

Entities found (subset of requested ids if some are inaccessible). Homogeneous array: full VioletEntityDto when responseScope is omitted, or VioletEntityMcpCompactDto when responseScope is mcp_compact.

application/json
or
post
/api/entities/by-ids
200

Entities found (subset of requested ids if some are inaccessible). Homogeneous array: full VioletEntityDto when responseScope is omitted, or VioletEntityMcpCompactDto when responseScope is mcp_compact.

get

Get a Violet Entity

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
chevron-right
200Success
application/json
idstring · uuidRequired
namestringRequired
descriptionstringOptional
propertiesobjectRequired
applicationIdstring · uuidOptional
keystringRequired
externalIdstringRequired
externalUrlstringRequired
downloadUrlstringRequired
s3FileUrlstringRequired
thumbnailDownloadUrlstringRequired
thumbnailS3FileUrlstringRequired
applicationIconstringRequired
rawJsonPayloadobjectOptional
rawJsonPayloadHashstringOptional
isNewbooleanOptional
isReferencebooleanRequired
isSubEntitybooleanRequired
isRevisionbooleanRequired
isContainerbooleanOptional
createdAtstring · date-timeOptional
updatedAtstring · date-timeOptional
deletedAtstring · date-timeOptional
tenantIdstring · uuidOptional
schemaIdstring · uuidOptional
parameterIdstring · uuidOptional
containerIdsstring · uuid[]Optional
programIdsstring · uuid[]Optional
externalLastModifiedAtstring · date-timeOptional
externalCreatedAtstring · date-timeOptional
violetCorePropertyValuesobjectOptional
violetCoreEntitystring · enumOptionalPossible values:
lastAttemptedJobstringOptional
connectionIdsstring · uuid[]Optional
integrationIdsstring · uuid[]Optional
integrationNamesstring[]Optional
violetScriptIdstring · uuidOptional
outputsobjectOptional
scriptContentobjectOptional
scriptVariablesobjectOptional
scriptLanguagestring · enumOptionalPossible values:
importbooleanRequired
pushStatusstring · enumOptionalPossible values:
lastPushedAtstring · date-timeOptional
lastPushInfostringOptional
lastSuccessfulJobstring · uuidOptional
canEditbooleanOptional
isCustomEntitybooleanOptional
get
/api/entities/{id}
200Success
get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
chevron-right
200

Returned if the request is successful.

application/json
thumbnailUrlstringRequired

Pre-signed URL for downloading the thumbnail image

get
/api/entities/{id}/thumbnail-url
200

Returned if the request is successful.

Relationships

Use the violet-relationships endpoint to query relationships between entities. We recommend using the explore endpoint to identify the sourceID for the entity or entities you're interested in, then the violet-relationships endpoint to to build out structures like PO Lines belonging to a Purchase Order, or Parts belonging to an Assembly.

get

Get all Violet Relationships, or relationship graph from a source entity. When sourceId is provided, returns a graph (entityNodes, requirementNodes, links) for traversal: Assembly → BOM → Parts, Part/BOM line → PO line → PO, PO ↔ Invoice ↔ Bill, PO/line → receipts/delivery. Use recursiveRelationshipTypes / nonRecursiveRelationshipTypes to restrict traversal; see GET /model for types.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
sourceIdstring · uuidOptional

Violet entity ID to start graph traversal from. If omitted, returns all relationships.

recursiveRelationshipTypesstringOptional

Comma-separated relationship types to follow recursively (e.g. assemblyContains,contains for BOM; containsPOLine,receipts,linkedTo for PO/delivery/3-way match). See GET /model for all types.

Example: assemblyContains,contains
nonRecursiveRelationshipTypesstringOptional

Comma-separated relationship types to include only one level.

Example: contains
afterIdstring · uuidOptional

When sourceId is omitted, cursor for keyset pagination: relationship id from the last item of the previous response. Omit for the first page. Ignored when sourceId is provided.

limitinteger · min: 1 · max: 500Optional

When sourceId is omitted, max readable relationships per page (default 100, max 500). Ignored when sourceId is provided.

Default: 100
Responses
chevron-right
200

Without sourceId: array of relationships (paginated). With sourceId: graph of nodes and links.

application/json
or
get
/api/violet-relationships
200

Without sourceId: array of relationships (paginated). With sourceId: graph of nodes and links.

Get relationship model (types and examples) for assistant/MCP traversal

get

Relationship model for MCP/assistant: which entity types can be related and in which direction. Returns allRelationshipTypes and relationshipTypeExamples (from current DB specs). Use with GET /violet-relationships?sourceId=... to traverse Assembly–BOM–Part, Part–PO line–PO, PO–Invoice–Bill, etc. Optional suggestPath: comma-separated entity types (e.g. "Part,Purchase Order" or "Purchase Order,Invoice,Bill" for 3-way match); response includes suggestedTypesForPath to pass as recursiveRelationshipTypes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
suggestPathstringOptional

Comma-separated entity types to get suggested relationship types for (e.g. "Part,Purchase Order" or "Purchase Order,Invoice,Bill" for 3-way match). Response includes suggestedTypesForPath to pass as recursiveRelationshipTypes to getEntityRelationships.

Responses
chevron-right
200Success
application/json
get
/api/violet-relationships/model
200Success

Activities

The activities endpoint can be used to query activity and change history across your Violet tenant or for specific entities in your Violet environment.

get

Gets all the activities in Violet System.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
chevron-right
200

Returned if the request is successful.

application/json
itemsobject[]Required
hasNextPagebooleanRequired
get
/api/activities
200

Returned if the request is successful.

post

Returns VioletEntityDto (default) or VioletEntityMcpCompactDto when responseScope is mcp_compact, for each id the caller can read. Omit unknown or forbidden ids.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
idsstring · uuid[]Required

Violet entity UUIDs to load (e.g. from getEntityRelationships graph nodes). Up to 100 IDs per request.

responseScopestring · enumOptional

Set to mcp_compact for a slim payload suitable for MCP / LLM (omits integrationEntities, schemas, tags, etc.). Omit for the standard VioletEntityDto[] response.

Possible values:
Responses
chevron-right
200

Entities found (subset of requested ids if some are inaccessible). Homogeneous array: full VioletEntityDto when responseScope is omitted, or VioletEntityMcpCompactDto when responseScope is mcp_compact.

application/json
or
post
/api/entities/by-ids
200

Entities found (subset of requested ids if some are inaccessible). Homogeneous array: full VioletEntityDto when responseScope is omitted, or VioletEntityMcpCompactDto when responseScope is mcp_compact.

get

Gets a parentActivity in Violet System.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Responses
chevron-right
200

Activity with specified ID

application/json
idstringRequired
classstring · enumRequiredPossible values:
eventTypestring · enumRequiredPossible values:
detailsobjectRequired
createdAtstring · date-timeRequired
tenantIdstringRequired
parentActivityIdstringOptional
allDescendantIdsstring[]Optional
fetchJobIdstringOptional
isHiddenbooleanRequired
get
/api/activities/{id}
200

Activity with specified ID

get

Gets all the Activities for a Violet Entity in the Violet System

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
externalIdstringRequired

External ID of the Violet Entity

integrationEntityIdsstring[]Required

Integration Entity IDs to filter by

limitintegerOptional

The maximum number of results to return.

pageintegerOptional

A page number within the paginated result set.

Responses
chevron-right
200

Activities pertaining to the given Violet Entity

application/json
get
/api/activities/violet-entity
200

Activities pertaining to the given Violet Entity

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
violetEntityIdstringRequired

Internal ID of the Violet Entity

limitintegerOptional

The maximum number of results to return.

pageintegerOptional

A page number within the paginated result set.

Responses
chevron-right
200

Activities pertaining to the given internal Violet Entity

application/json
get
/api/activities/internal-violet-entity
200

Activities pertaining to the given internal Violet Entity

Last updated

Was this helpful?