> ## Documentation Index
> Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Artifact Operations

> List, create, reconcile, and export generated artifact bundles and their manifests through the SEC API without touching object storage directly.

SEC API exposes artifact inventory and lifecycle summaries so you can inspect generated bundles without going through object storage directly.

## Endpoints

* `GET /v1/artifacts`
* `GET /v1/artifacts/summary`
* `POST /v1/artifacts`
* `POST /v1/artifacts/{artifact_id}/reconcile`
* `GET /v1/artifacts/{artifact_id}`
* `GET /v1/artifacts/{artifact_id}/manifest`
* `GET /v1/artifacts/{artifact_id}/download`
* `GET /v1/artifacts/{artifact_id}/export?format=json|markdown`

## List artifacts

Filter by artifact kind, current status, and result count:

```bash theme={null}
curl "$SECAPI_BASE_URL/v1/artifacts?kind=section_compare&status=ready&limit=10" \
  -H "x-api-key: $SECAPI_API_KEY"
```

Use the inventory endpoint to answer:

* which artifacts are available for a tenant
* whether an artifact is still metadata-only or backed by object storage
* which object key and download URL are associated with a generated bundle

## Summarize lifecycle state

The summary endpoint returns grouped counts by artifact kind and status:

```bash theme={null}
curl "$SECAPI_BASE_URL/v1/artifacts/summary" \
  -H "x-api-key: $SECAPI_API_KEY"
```

Use this for support and admin workflows such as:

* confirming whether reconcile jobs are promoting artifacts into storage
* spotting an accumulation of `pending` or `failed` artifacts
* validating tenant-specific generation volume during beta

## Manifests and exports

Every persisted artifact has a structured manifest with byte length, line count, checksum, storage mode and object key, filing and section context, and supported export formats.

Use `GET /v1/artifacts/{artifact_id}/manifest` for deterministic inventory workflows, and `GET /v1/artifacts/{artifact_id}/export?format=json|markdown` when a downstream consumer wants a stable envelope rather than a raw download redirect.

## CLI

```bash theme={null}
secapi artifacts list --kind section_compare --status ready --limit 10
secapi artifacts summary
```

## Operational notes

* `storageMode` distinguishes metadata-only artifacts from object-backed artifacts
* `downloadUrl` is present only when a bundle is ready to fetch
* artifact lifecycle state is org-scoped; always inspect with the correct tenant key
