Extension
Matrix extension management API
| Method | Path | Description |
|---|
| 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 /api/v1/extensions/{workspace}/{id}
Get a single extension by ID with content
| Name | Required | Description |
|---|
workspace | Yes | Workspace slug |
id | Yes | Extension ID |
| Status | Description |
|---|
200 | Extension retrieved successfully |
403 | Not authorized - admin required |
404 | Extension not found |
| Field | Type | Description |
|---|
id | string (uuid) | Extension ID |
label | string | Label for the extension |
targetMatrixUri | string | Target matrix URI being extended |
active | boolean | Whether extension has been deployed |
ownerId | string (uuid) | Owner user ID |
ownerUsername | string | Owner username |
content | string | Turtle content (only included in single extension GET) |
createdAt | string (date-time) | Creation timestamp |
updatedAt | string (date-time) | Last update timestamp |
{
"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"
}
}
curl -X GET "https://poliglot.io/api/v1/extensions/my-workspace/<id>" \
-H "Authorization: Bearer <your-token>"
PUT /api/v1/extensions/{workspace}/{id}
Update an extension's label or content. Triggers partial re-deployment.
| Name | Required | Description |
|---|
workspace | Yes | Workspace slug |
id | Yes | Extension ID |
| Name | Required | Type | Description |
|---|
label | No | string | Optional new label |
Content-Type: multipart/form-data
| Field | Type | Description |
|---|
file | string (binary) | Optional new Turtle content file |
| Status | Description |
|---|
200 | Extension updated successfully |
400 | Invalid request or Turtle syntax |
403 | Not authorized - admin required |
404 | Extension not found |
| Field | Type | Description |
|---|
id | string (uuid) | Extension ID |
label | string | Label for the extension |
targetMatrixUri | string | Target matrix URI being extended |
active | boolean | Whether extension has been deployed |
ownerId | string (uuid) | Owner user ID |
ownerUsername | string | Owner username |
content | string | Turtle content (only included in single extension GET) |
createdAt | string (date-time) | Creation timestamp |
updatedAt | string (date-time) | Last update timestamp |
{
"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"
}
}
curl -X PUT "https://poliglot.io/api/v1/extensions/my-workspace/<id>" \
-H "Authorization: Bearer <your-token>"
-H "Content-Type: application/json" \
-d '{}'
DELETE /api/v1/extensions/{workspace}/{id}
Delete an extension. Triggers partial re-deployment.
| Name | Required | Description |
|---|
workspace | Yes | Workspace slug |
id | Yes | Extension ID |
| Status | Description |
|---|
200 | Extension deleted successfully |
403 | Not authorized - admin required |
404 | Extension not found |
{
"success": true,
"data": "string"
}
curl -X DELETE "https://poliglot.io/api/v1/extensions/my-workspace/<id>" \
-H "Authorization: Bearer <your-token>"
GET /api/v1/extensions/{workspace}
List all extensions in a workspace
| Name | Required | Description |
|---|
workspace | Yes | Workspace slug |
| Status | Description |
|---|
200 | Extensions retrieved successfully |
403 | Not authorized - admin required |
404 | Workspace not found |
{
"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"
}
]
}
curl -X GET "https://poliglot.io/api/v1/extensions/my-workspace" \
-H "Authorization: Bearer <your-token>"
POST /api/v1/extensions/{workspace}
Create a new matrix extension. Triggers partial re-deployment of the target matrix.
| Name | Required | Description |
|---|
workspace | Yes | Workspace slug |
| Name | Required | Type | Description |
|---|
targetMatrix | Yes | string | Target matrix URI |
label | No | string | Optional label |
Content-Type: multipart/form-data
| Field | Type | Description |
|---|
file | string (binary) | Turtle content file |
| Status | Description |
|---|
200 | Extension created successfully |
400 | Invalid request or Turtle syntax |
403 | Not authorized - admin required |
404 | Workspace or target matrix not found |
| Field | Type | Description |
|---|
id | string (uuid) | Extension ID |
label | string | Label for the extension |
targetMatrixUri | string | Target matrix URI being extended |
active | boolean | Whether extension has been deployed |
ownerId | string (uuid) | Owner user ID |
ownerUsername | string | Owner username |
content | string | Turtle content (only included in single extension GET) |
createdAt | string (date-time) | Creation timestamp |
updatedAt | string (date-time) | Last update timestamp |
{
"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"
}
}
curl -X POST "https://poliglot.io/api/v1/extensions/my-workspace" \
-H "Authorization: Bearer <your-token>"
-H "Content-Type: application/json" \
-d '{}'