Skip to main content
An artifact is a produced deliverable: a document, pull request, design, or report. It belongs to one OrgX entity and carries its own type, location, and lifecycle status. The API keeps two claims separate:
  • A machine can record that work was produced or verified.
  • A person records acceptance in Mission Control.

Create an artifact

POST /api/v1/artifacts accepts an API key. The target entity determines the workspace, so the request does not need a separate workspace field. Every create requires an Idempotency-Key. Use one stable key for one logical artifact and reuse it when retrying a timeout. OrgX returns the stored artifact with meta.duplicate: true on a replay. Reusing that key with a different payload returns 409 idempotency_key_conflict. artifact_type must be a registered type code. List the available codes first:
Then create the artifact:
The response contains the artifact in data and request-independent contract metadata in meta:
If the same request is replayed with the same key, the status is 200 and the artifact is unchanged:
Required fields: Use preview_markdown for a small inline preview and metadata for machine-readable context. New artifacts start in draft unless you provide a different machine-appropriate status.
The target entity must belong to a workspace you can access. If it has no workspace, OrgX rejects the write instead of assigning the artifact by creator alone.

Read artifacts

All reads return the registered artifacts created by POST /api/v1/artifacts. They use the same { data, meta } response envelope. The workspace list returns at most limit records (maximum 100) and reports hasMore in meta:

Verification and acceptance

Machine callers may create an artifact and record machine verification with eval_passed. Human acceptance is a separate session-authenticated action in Mission Control; an API key cannot claim approved or rejected at creation. Draft review records used by the Command UI are a separate surface. They are not returned by /api/v1/artifacts and are not part of the public artifact resource.

Artifact types

GET /api/v1/artifact-types returns the current global vocabulary, including each code’s label, domain, workflow, and whether it is a deliverable. Use a returned type_code; values such as document or pr are not valid unless they appear in that response.

MCP equivalent

orgx_attach registers an artifact through the same resource contract. orgx_search with type=artifact reads the resulting records.