Skip to main content
POST
/
v2
/
optimize
/
artifacts
Upload a catalog artifact
curl --request POST \
  --url https://commerceos.aiagents.fabric.inc/api/v2/optimize/artifacts \
  --header 'Content-Type: multipart/form-data' \
  --header 'domain: <domain>' \
  --form file='@example-file'
{
  "artifact_id": "art_95c650ded4824dc79bb6df16427e4a10",
  "kind": "csv",
  "source": "upload",
  "bytes": 45678,
  "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "content_type": "text/csv",
  "uri": "s3://product-agent-data-prod-ue2/optimize-artifacts/svc_yourClientId/art_95c650ded4824dc79bb6df16427e4a10/catalog.csv",
  "original_filename": "catalog.csv",
  "brand_id": "691df5949676c8e0b1d7b6b3",
  "created_at": "2026-05-15T10:30:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt

Use this file to discover all available pages before exploring further.

Headers

domain
string
required

The brand domain name (for example, vessel.com or containerstore.com) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand.

Example:

"vessel.com"

Body

multipart/form-data
file
file
required

The catalog file to upload. The file must be a CSV.

kind
enum<string>

Optional. When omitted, the server infers the kind from the filename extension or content type. The supported value is csv.

Available options:
csv

Response

Artifact uploaded

artifact_id
string
required

Stable identifier for the artifact. Reference this value when creating a workflow.

Example:

"art_95c650ded4824dc79bb6df16427e4a10"

kind
enum<string>
required

Artifact file format. The supported value is csv.

Available options:
csv
source
enum<string>
required

Indicates how the artifact was ingested. upload denotes a direct multipart upload, presigned denotes the presigned-URL flow used for large files, uri denotes a server-side fetch from an external URI, and generated denotes a system-produced artifact.

Available options:
upload,
presigned,
uri,
generated
content_type
string
required

MIME type as detected by the server.

Example:

"text/csv"

uri
string
required

Internal storage URI for the artifact. Informational only.

Example:

"s3://product-agent-data-prod-ue2/optimize-artifacts/svc_yourClientId/art_95c650ded4824dc79bb6df16427e4a10/catalog.csv"

brand_id
string
required

The brand the artifact is associated with, derived from the domain header.

Example:

"691df5949676c8e0b1d7b6b3"

created_at
string<date-time>
required

Upload timestamp in UTC.

Example:

"2026-05-15T10:30:00Z"

bytes
integer | null

File size in bytes.

Example:

45678

sha256
string | null

Hex-encoded SHA-256 checksum of the file contents.

Example:

"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"

original_filename
string | null

The filename submitted with the multipart upload.

Example:

"catalog.csv"