API ReferenceEndpoints

Extension

Matrix extension management API

MethodPathDescription
GET/api/v1/extensions/{workspace}/{id}Get extension
PUT/api/v1/extensions/{workspace}/{id}Update extension
DELETE/api/v1/extensions/{workspace}/{id}Delete extension
GET/api/v1/extensions/{workspace}List extensions
POST/api/v1/extensions/{workspace}Create extension

Get extension

GET /api/v1/extensions/{workspace}/{id}

Get a single extension by ID with content

Path Parameters

NameRequiredDescription
workspaceYesWorkspace slug
idYesExtension ID

Responses

StatusDescription
200Extension retrieved successfully
403Not authorized - admin required
404Extension not found

Response Shape

FieldTypeDescription
idstring (uuid)Extension ID
labelstringLabel for the extension
targetMatrixUristringTarget matrix URI being extended
activebooleanWhether extension has been deployed
ownerIdstring (uuid)Owner user ID
ownerUsernamestringOwner username
contentstringTurtle content (only included in single extension GET)
createdAtstring (date-time)Creation timestamp
updatedAtstring (date-time)Last update timestamp

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "label": "string",
    "targetMatrixUri": "string",
    "active": true,
    "ownerId": "550e8400-e29b-41d4-a716-446655440000",
    "ownerUsername": "string",
    "content": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z"
  }
}

Example

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

Update extension

PUT /api/v1/extensions/{workspace}/{id}

Update an extension's label or content. Triggers partial re-deployment.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace slug
idYesExtension ID

Query Parameters

NameRequiredTypeDescription
labelNostringOptional new label

Request Body

Content-Type: multipart/form-data

FieldTypeDescription
filestring (binary)Optional new Turtle content file

Responses

StatusDescription
200Extension updated successfully
400Invalid request or Turtle syntax
403Not authorized - admin required
404Extension not found

Response Shape

FieldTypeDescription
idstring (uuid)Extension ID
labelstringLabel for the extension
targetMatrixUristringTarget matrix URI being extended
activebooleanWhether extension has been deployed
ownerIdstring (uuid)Owner user ID
ownerUsernamestringOwner username
contentstringTurtle content (only included in single extension GET)
createdAtstring (date-time)Creation timestamp
updatedAtstring (date-time)Last update timestamp

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "label": "string",
    "targetMatrixUri": "string",
    "active": true,
    "ownerId": "550e8400-e29b-41d4-a716-446655440000",
    "ownerUsername": "string",
    "content": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z"
  }
}

Example

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

Delete extension

DELETE /api/v1/extensions/{workspace}/{id}

Delete an extension. Triggers partial re-deployment.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace slug
idYesExtension ID

Responses

StatusDescription
200Extension deleted successfully
403Not authorized - admin required
404Extension not found

Example Response

{
  "success": true,
  "data": "string"
}

Example

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

List extensions

GET /api/v1/extensions/{workspace}

List all extensions in a workspace

Path Parameters

NameRequiredDescription
workspaceYesWorkspace slug

Responses

StatusDescription
200Extensions retrieved successfully
403Not authorized - admin required
404Workspace not found

Example Response

{
  "success": true,
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "label": "string",
      "targetMatrixUri": "string",
      "active": true,
      "ownerId": "550e8400-e29b-41d4-a716-446655440000",
      "ownerUsername": "string",
      "content": "string",
      "createdAt": "2025-03-28T14:22:03Z",
      "updatedAt": "2025-03-28T14:22:03Z"
    }
  ]
}

Example

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

Create extension

POST /api/v1/extensions/{workspace}

Create a new matrix extension. Triggers partial re-deployment of the target matrix.

Path Parameters

NameRequiredDescription
workspaceYesWorkspace slug

Query Parameters

NameRequiredTypeDescription
targetMatrixYesstringTarget matrix URI
labelNostringOptional label

Request Body

Content-Type: multipart/form-data

FieldTypeDescription
filestring (binary)Turtle content file

Responses

StatusDescription
200Extension created successfully
400Invalid request or Turtle syntax
403Not authorized - admin required
404Workspace or target matrix not found

Response Shape

FieldTypeDescription
idstring (uuid)Extension ID
labelstringLabel for the extension
targetMatrixUristringTarget matrix URI being extended
activebooleanWhether extension has been deployed
ownerIdstring (uuid)Owner user ID
ownerUsernamestringOwner username
contentstringTurtle content (only included in single extension GET)
createdAtstring (date-time)Creation timestamp
updatedAtstring (date-time)Last update timestamp

Example Response

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "label": "string",
    "targetMatrixUri": "string",
    "active": true,
    "ownerId": "550e8400-e29b-41d4-a716-446655440000",
    "ownerUsername": "string",
    "content": "string",
    "createdAt": "2025-03-28T14:22:03Z",
    "updatedAt": "2025-03-28T14:22:03Z"
  }
}

Example

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

On this page