Skip to main content
Upcoming release — Zylon 1.58These docs are published ahead of release so you can prepare your API integrations. The release image is not yet available. For installations running 1.57, use the 1.57 documentation.
An artifact is a piece of information (or tool-ready resource) you ingest into Zylon so it can be used as context for queries and operations. Artifacts live inside a collection, and each artifact has a stable artifact ID. Artifacts can be created from:

Prerequisites

Every ZylonGPT artifact operation—including ingest, list, content retrieval, task status, and delete—requires a read-write scope. PrivateGPT.Read.All and Read.All with gateway_id return 403 for all artifact routes. A Read.All token without gateway context cannot call ZylonGPT at all.

Basic request and response

Use POST /artifacts/ingest when you want the ingest to complete in the same request.
Nullable fields may be omitted. Arbitrary upstream document metadata is not included in the synchronous ingest response.

Async ingest

Use POST /artifacts/ingest/async for larger payloads or when ingest may take longer. Wrap the sync ingest payload in ingest_body and include the required callback object. Use callback: {} when polling without callback configuration. The response returns a task_id you can poll.
Check task status:

Listing ingested artifacts

Retrieving content

Full content

Use POST /artifacts/content to fetch complete document text:

Chunked content (chat-optimized)

Use POST /artifacts/chunked-content to retrieve content split into chat-friendly blocks:

Deleting artifacts

Delete (sync):
Delete (async):
Check task status:
Keep polling until task_status becomes "SUCCESS" or "FAILURE". If deletion fails while an index is still being populated, retry after a short delay.

Errors and edge cases

  • 401/403: missing token or insufficient permissions.
  • 404: collection or artifact not found.
  • 409: ingest/delete task already in progress.
  • 413: input too large for a single ingest.
  • 422: invalid payload shape.
  • Async failures: when task_status becomes FAILURE, check task_result (for example routing_key_error: "ingest.failed" or delete.failed) and retry after fixing the input.