API ReferenceEndpoints

Package

Package deployment and management API

MethodPathDescription
POST/api/v1/packages/{workspace}/registry/{publisher}/{name}/installInstall from registry
POST/api/v1/packages/{workspace}/installInstall a package
PATCH/api/v1/packages/{workspace}/{packageName}/auto-updateToggle auto-update
GET/api/v1/packages/{workspace}List installed packages
GET/api/v1/packages/{workspace}/{packageName}Get package details
DELETE/api/v1/packages/{workspace}/{packageName}Uninstall a package
GET/api/v1/packages/{workspace}/{packageName}/commandsList package commands
GET/api/v1/packages/{workspace}/commands/{commandId}Get command details
GET/api/v1/packages/{workspace}/commands/{commandId}/validation-reportGet validation report
GET/api/v1/packages/{workspace}/commands/{commandId}/eventsGet command events

Install from registry

POST /api/v1/packages/{workspace}/registry/{publisher}/{name}/install

Install a package from the matrix registry into the workspace. If the package is already installed, re-installs with the specified version. Version defaults to the latest compatible with the workspace engine version.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
publisherYesPublisher slug
nameYesPackage name

Request Body

Content-Type: application/json

FieldTypeDescription
versionstring
autoUpdateboolean

Responses

StatusDescription
202Install command initiated
400Engine version incompatible
404Workspace, publisher, or package not found
409Package has an active operation

Example

curl -X POST "https://poliglot.io/api/v1/packages/my-workspace/registry/<publisher>/<name>/install" \
  -H "Authorization: Bearer <your-token>"
  -H "Content-Type: application/json" \
  -d '{}'

Install a package

POST /api/v1/packages/{workspace}/install

Upload and install a package tgz file to the workspace. The package must contain a manifest.json with name and version fields.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier

Query Parameters

NameRequiredTypeDescription
forceUpdateNobooleanForce update existing matrices

Request Body

Content-Type: multipart/form-data

FieldTypeDescription
filestring (binary)Package tgz file

Responses

StatusDescription
202Command initiated successfully
400Invalid package format or missing manifest
404Workspace not found

Example

curl -X POST "https://poliglot.io/api/v1/packages/my-workspace/install" \
  -H "Authorization: Bearer <your-token>"
  -H "Content-Type: application/json" \
  -d '{}'

Toggle auto-update

PATCH /api/v1/packages/{workspace}/{packageName}/auto-update

Enable or disable auto-update for a registry-installed package.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
packageNameYesPackage name

Request Body

Content-Type: application/json

Responses

StatusDescription
200Auto-update setting updated
400Package not from registry
404Workspace or package not found

Example

curl -X PATCH "https://poliglot.io/api/v1/packages/my-workspace/<packageName>/auto-update" \
  -H "Authorization: Bearer <your-token>"
  -H "Content-Type: application/json" \
  -d '{}'

List installed packages

GET /api/v1/packages/{workspace}

Retrieve all packages installed in the workspace

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier

Query Parameters

NameRequiredTypeDescription
pageNointeger(int32)Page number (1-indexed)
pageSizeNointeger(int32)Page size

Responses

StatusDescription
200Packages retrieved successfully
404Workspace not found

Response Shape

FieldTypeDescription
idstring (uuid)
namestring
currentVersionstring
createdAtstring (date-time)
updatedAtstring (date-time)
matricesMatrixSummaryResponse[]
latestCommandLifecycleCommandSummary
registryPublisherstring
registryNamestring
latestVersionstring
updateAvailableboolean
autoUpdateboolean

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "string",
    "currentVersion": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z",
    "matrices": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "string",
        "description": "string",
        "dependencyCount": 0
      }
    ],
    "latestCommand": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "version": "string",
      "commandType": "string",
      "status": "pending",
      "errorMessage": "string",
      "validationConforms": true,
      "validationViolationCount": 0,
      "validationWarningCount": 0,
      "validationInfoCount": 0,
      "createdAt": "2025-03-28T14:22:03Z",
      "updatedAt": "2025-03-28T14:22:03Z"
    },
    "registryPublisher": "string",
    "registryName": "string",
    "latestVersion": "string",
    "updateAvailable": true,
    "autoUpdate": true
  }
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace" \
  -H "Authorization: Bearer <your-token>"

Get package details

GET /api/v1/packages/{workspace}/{packageName}

Retrieve details for a specific installed package

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
packageNameYesPackage name

Responses

StatusDescription
200Package details retrieved successfully
404Workspace or package not found

Response Shape

FieldTypeDescription
idstring (uuid)
namestring
currentVersionstring
createdAtstring (date-time)
updatedAtstring (date-time)
matricesMatrixSummaryResponse[]
latestCommandLifecycleCommandSummary
registryPublisherstring
registryNamestring
latestVersionstring
updateAvailableboolean
autoUpdateboolean

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "string",
    "currentVersion": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z",
    "matrices": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "string",
        "description": "string",
        "dependencyCount": 0
      }
    ],
    "latestCommand": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "version": "string",
      "commandType": "string",
      "status": "pending",
      "errorMessage": "string",
      "validationConforms": true,
      "validationViolationCount": 0,
      "validationWarningCount": 0,
      "validationInfoCount": 0,
      "createdAt": "2025-03-28T14:22:03Z",
      "updatedAt": "2025-03-28T14:22:03Z"
    },
    "registryPublisher": "string",
    "registryName": "string",
    "latestVersion": "string",
    "updateAvailable": true,
    "autoUpdate": true
  }
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace/<packageName>" \
  -H "Authorization: Bearer <your-token>"

Uninstall a package

DELETE /api/v1/packages/{workspace}/{packageName}

Initiate uninstallation of a package from the workspace.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
packageNameYesPackage name

Responses

StatusDescription
202Uninstall command initiated
404Package not found
409Package has an active operation

Example

curl -X DELETE "https://poliglot.io/api/v1/packages/my-workspace/<packageName>" \
  -H "Authorization: Bearer <your-token>"

List package commands

GET /api/v1/packages/{workspace}/{packageName}/commands

Retrieve command history for a specific package

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
packageNameYesPackage name

Query Parameters

NameRequiredTypeDescription
pageNointeger(int32)Page number (0-indexed)
sizeNointeger(int32)Page size

Responses

StatusDescription
200Commands retrieved successfully
404Workspace or package not found

Example Response

{
  "success": true,
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "packageInstallationId": "550e8400-e29b-41d4-a716-446655440000",
      "packageName": "string",
      "version": "string",
      "commandType": "string",
      "status": "pending",
      "errorMessage": "string",
      "createdAt": "2025-03-28T14:22:03Z",
      "updatedAt": "2025-03-28T14:22:03Z"
    }
  ]
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace/<packageName>/commands" \
  -H "Authorization: Bearer <your-token>"

Get command details

GET /api/v1/packages/{workspace}/commands/{commandId}

Retrieve details for a command

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
commandIdYesCommand ID

Responses

StatusDescription
200Command details retrieved successfully
404Workspace or command not found

Response Shape

FieldTypeDescription
idstring (uuid)
packageInstallationIdstring (uuid)
packageNamestring
versionstring
commandTypestring
statusstring
errorMessagestring
createdAtstring (date-time)
updatedAtstring (date-time)

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "packageInstallationId": "550e8400-e29b-41d4-a716-446655440000",
    "packageName": "string",
    "version": "string",
    "commandType": "string",
    "status": "pending",
    "errorMessage": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z"
  }
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace/commands/<commandId>" \
  -H "Authorization: Bearer <your-token>"

Get validation report

GET /api/v1/packages/{workspace}/commands/{commandId}/validation-report

Retrieve the SHACL validation report for a command. Returns structured JSON by default, or raw Turtle if Accept: text/turtle is set.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
commandIdYesCommand ID

Query Parameters

NameRequiredTypeDescription
AcceptNostring

Responses

StatusDescription
200Validation report retrieved successfully
404Workspace, command, or validation report not found

Response Shape

FieldTypeDescription
conformsboolean
violationCountinteger (int32)
warningCountinteger (int32)
infoCountinteger (int32)
violationsValidationEntry[]
warningsValidationEntry[]
infosValidationEntry[]

Example Response

{
  "success": true,
  "data": {
    "conforms": true,
    "violationCount": 0,
    "warningCount": 0,
    "infoCount": 0,
    "violations": [
      {
        "focusNode": "string",
        "path": "string",
        "value": "string",
        "message": "string"
      }
    ],
    "warnings": [
      {
        "focusNode": "string",
        "path": "string",
        "value": "string",
        "message": "string"
      }
    ],
    "infos": [
      {
        "focusNode": "string",
        "path": "string",
        "value": "string",
        "message": "string"
      }
    ]
  }
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace/commands/<commandId>/validation-report" \
  -H "Authorization: Bearer <your-token>"

Get command events

GET /api/v1/packages/{workspace}/commands/{commandId}/events

Retrieve log events for a specific command

Path Parameters

NameRequiredDescription
workspaceYesWorkspace identifier
commandIdYesCommand ID

Responses

StatusDescription
200Command events retrieved successfully
404Workspace or command not found

Example Response

{
  "success": true,
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "commandId": "550e8400-e29b-41d4-a716-446655440000",
      "message": "string",
      "level": "INFO",
      "createdAt": "2025-03-28T14:22:03Z"
    }
  ]
}

Example

curl -X GET "https://poliglot.io/api/v1/packages/my-workspace/commands/<commandId>/events" \
  -H "Authorization: Bearer <your-token>"

On this page