--- title: "Artifacts" description: "List and download output artifacts from workflow runs" --- # Artifacts ## List Artifacts Get a paginated list of all artifacts across workspaces. ```bash curl http://localhost:8002/osm/api/artifacts \ -H "Authorization: Bearer $TOKEN" ``` **With pagination:** ```bash curl "http://localhost:8002/osm/api/artifacts?offset=0&limit=50" \ -H "Authorization: Bearer $TOKEN" ``` **Filter by workspace:** ```bash curl "http://localhost:8002/osm/api/artifacts?workspace=example.com" \ -H "Authorization: Bearer $TOKEN" ``` **Query Parameters:** | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `workspace` | string | - | Filter by workspace name | | `offset` | int | 0 | Pagination offset | | `limit` | int | 20 | Maximum records to return | **Response:** ```json { "data": [ { "id": "c3d4e5f6-a7b8-9012-cdef-123456789012", "run_id": 1, "workspace": "example.com", "name": "subdomains.txt", "artifact_path": "/workspaces/example.com/subdomains.txt", "artifact_type": "output", "content_type": "txt", "size_bytes": 4523, "line_count": 150, "description": "Discovered subdomains", "created_at": "2025-01-15T10:01:45Z" }, { "id": "d4e5f6a7-b8c9-0123-def0-234567890123", "run_id": 1, "workspace": "example.com", "name": "nuclei-results.json", "artifact_path": "/workspaces/example.com/nuclei-results.json", "artifact_type": "output", "content_type": "json", "size_bytes": 15234, "line_count": 45, "description": "Nuclei vulnerability scan results", "created_at": "2025-01-15T10:15:00Z" } ], "pagination": { "total": 100, "offset": 0, "limit": 20 } } ``` --- ## Download Workspace Artifact Download all artifacts from a workspace as a zip file. ```bash curl http://localhost:8002/osm/api/artifacts/example.com \ -H "Authorization: Bearer $TOKEN" \ --output example.com_artifacts.zip ``` **Response:** - On success: Returns a zip file containing all artifacts - Response headers include: - `Content-Disposition: attachment; filename=_artifacts.zip` - `Content-Type: application/zip` **Error Response (404):** ```json { "error": true, "message": "Workspace not found: example.com" } ``` --- ## Artifact Types | Type | Description | |------|-------------| | `report` | Generated reports from the workflow's reports section | | `state_file` | State files like run-state.json, run-execution.log | | `output` | General output files from steps | | `screenshot` | Screenshots captured during the scan | ## Content Types Detected content types based on file extension: - `json`, `jsonl`, `yaml`, `html`, `md`, `log`, `pdf`, `png`, `txt`, `zip`, `folder`, `unknown`