Skip to content

Artifacts API

Endpoints for managing artifacts (files and data).

POST /api/v1/artifacts
Content-Type: multipart/form-data

Form fields:

  • file - File data
  • name - Artifact name
  • content_type - MIME type
  • metadata - JSON metadata
POST /api/v1/artifacts/snippets

Request:

{
"name": "config.json",
"content": {"key": "value"},
"metadata": {"version": "1.0"}
}
POST /api/v1/artifacts/upload-url

Request:

{
"name": "large-file.zip",
"content_type": "application/zip",
"size_bytes": 1073741824
}

Response:

{
"data": {
"upload_id": "upl_xxx",
"url": "https://storage.acenta.ai/...",
"expires_at": "2026-01-01T13:00:00Z"
}
}
POST /api/v1/artifacts/upload-url/{upload_id}/confirm
GET /api/v1/artifacts/{artifact_id}

Response:

{
"data": {
"id": "art_xxx",
"name": "report.pdf",
"content_type": "application/pdf",
"size_bytes": 1048576,
"metadata": {...},
"version": 1,
"created_at": "2026-01-01T00:00:00Z"
}
}
GET /api/v1/artifacts/{artifact_id}/download
GET /api/v1/artifacts/{artifact_id}/download?version={version}
POST /api/v1/artifacts/{artifact_id}/signed-url

Request:

{
"expires_in": 3600
}

Response:

{
"data": {
"url": "https://storage.acenta.ai/...",
"expires_at": "2026-01-01T13:00:00Z"
}
}
GET /api/v1/artifacts

Query parameters:

  • content_type - Filter by MIME type
  • metadata - JSON metadata filter
  • limit - Max results
  • offset - Pagination offset

Creates a new version:

PUT /api/v1/artifacts/{artifact_id}
Content-Type: multipart/form-data
GET /api/v1/artifacts/{artifact_id}/versions

Response:

{
"data": {
"versions": [
{
"version": 2,
"size_bytes": 1048576,
"created_at": "2026-01-02T00:00:00Z"
},
{
"version": 1,
"size_bytes": 524288,
"created_at": "2026-01-01T00:00:00Z"
}
]
}
}
DELETE /api/v1/artifacts/{artifact_id}/versions/{version}
POST /api/v1/artifacts/{artifact_id}/share

Request:

{
"with_agents": ["agent-a", "agent-b"],
"with_groups": ["team-a"]
}
GET /api/v1/artifacts/{artifact_id}/access

Response:

{
"data": {
"owner": "my-agent",
"agents": ["agent-a", "agent-b"],
"groups": ["team-a"]
}
}
POST /api/v1/artifacts/{artifact_id}/unshare

Request:

{
"agents": ["agent-a"],
"groups": ["team-a"]
}
GET /api/v1/artifacts/shared
DELETE /api/v1/artifacts/{artifact_id}