> ## 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.

# Retrieve artifact metadata and download URL

> Returns metadata for a previously uploaded artifact along with a short-lived signed `download_url` for retrieving the original file contents. This endpoint supports inspection, auditing, and re-download of an artifact prior to starting a workflow.

The `download_url` is a presigned URL that remains valid until `download_url_expires_at`. After expiry, call this endpoint again to obtain a new URL.




## OpenAPI

````yaml product-agent.openapi get /v2/optimize/artifacts/{artifact_id}
openapi: 3.0.1
info:
  contact:
    email: support@fabric.inc
    name: fabric Support Team
  description: >
    The Product Agent API helps brands optimize product data for AI-driven
    commerce.

    Monitor how your catalog performs in AI search experiences, enrich product

    content for stronger semantic visibility, and publish optimized data across

    channels. Designed for iterative improvement, Product Agent enables teams to

    measure, refine, and enhance product content as AI shopping behavior
    evolves.
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  termsOfService: https://fabric.inc/terms-of-use
  title: fabric Orders API
  version: 3.0.0
  x-audience: external-public
servers:
  - url: https://commerceos.aiagents.fabric.inc/api
    description: Production API
security:
  - authorization: []
externalDocs:
  description: Find out more about Product Agent.
  url: https://developer.fabric.inc/product-agent/overview
paths:
  /v2/optimize/artifacts/{artifact_id}:
    get:
      summary: Retrieve artifact metadata and download URL
      description: >
        Returns metadata for a previously uploaded artifact along with a
        short-lived signed `download_url` for retrieving the original file
        contents. This endpoint supports inspection, auditing, and re-download
        of an artifact prior to starting a workflow.


        The `download_url` is a presigned URL that remains valid until
        `download_url_expires_at`. After expiry, call this endpoint again to
        obtain a new URL.
      operationId: getOptimizeArtifact
      parameters:
        - $ref: '#/components/parameters/DomainHeader'
        - name: artifact_id
          in: path
          required: true
          description: Artifact identifier returned by `POST /v2/optimize/artifacts`.
          schema:
            type: string
            example: art_95c650ded4824dc79bb6df16427e4a10
        - name: expires_seconds
          in: query
          required: false
          description: >-
            Lifetime of the signed `download_url` in seconds. Minimum 60,
            maximum 3600, default 900.
          schema:
            type: integer
            minimum: 60
            maximum: 3600
            default: 900
            example: 900
      responses:
        '200':
          description: Artifact metadata and signed download URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtifactReadResponse'
              example:
                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'
                download_url: >-
                  https://product-agent-data-prod-ue2.s3.amazonaws.com/optimize-artifacts/svc_yourClientId/art_95c650ded4824dc79bb6df16427e4a10/catalog.csv?X-Amz-Signature=...
                download_url_expires_at: '2026-05-15T10:45:00Z'
        '401':
          description: Unauthorized. The access token is missing or has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '403':
          description: Forbidden. The artifact belongs to a different brand.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '404':
          description: Artifact not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
      security:
        - bearerAuth: []
components:
  parameters:
    DomainHeader:
      name: domain
      in: header
      required: true
      schema:
        type: string
        example: vessel.com
      description: >-
        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.
  schemas:
    ArtifactReadResponse:
      type: object
      required:
        - artifact_id
        - kind
        - source
        - content_type
        - uri
        - brand_id
        - created_at
        - download_url
        - download_url_expires_at
      description: >-
        Artifact metadata plus a short-lived signed URL for downloading the
        original file contents.
      properties:
        artifact_id:
          type: string
          example: art_95c650ded4824dc79bb6df16427e4a10
        kind:
          $ref: '#/components/schemas/ArtifactKind'
        source:
          $ref: '#/components/schemas/ArtifactSource'
        bytes:
          type: integer
          nullable: true
          example: 45678
        sha256:
          type: string
          nullable: true
          example: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
        content_type:
          type: string
          example: text/csv
        uri:
          type: string
          example: >-
            s3://product-agent-data-prod-ue2/optimize-artifacts/svc_yourClientId/art_95c650ded4824dc79bb6df16427e4a10/catalog.csv
        original_filename:
          type: string
          nullable: true
          example: catalog.csv
        brand_id:
          type: string
          example: 691df5949676c8e0b1d7b6b3
        created_at:
          type: string
          format: date-time
          example: '2026-05-15T10:30:00Z'
        download_url:
          type: string
          description: >-
            Short-lived presigned URL for downloading the original file
            contents. The URL is valid until `download_url_expires_at`.
          example: >-
            https://product-agent-data-prod-ue2.s3.amazonaws.com/optimize-artifacts/svc_yourClientId/art_95c650ded4824dc79bb6df16427e4a10/catalog.csv?X-Amz-Signature=...
        download_url_expires_at:
          type: string
          format: date-time
          description: >-
            Expiry timestamp in UTC for `download_url`. After this time, call
            `GET /v2/optimize/artifacts/{artifact_id}` again to obtain a new
            URL.
          example: '2026-05-15T10:45:00Z'
    errorResponse:
      description: Error response
      properties:
        errors:
          description: Errors
          items:
            $ref: '#/components/schemas/errorResponse'
          type: array
        message:
          description: Error message
          example: Bad request
          type: string
        type:
          description: Error type
          example: CLIENT_ERROR
          type: string
      type: object
    HTTPValidationError:
      type: object
      description: Validation error response body returned with HTTP 422.
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
    ArtifactKind:
      type: string
      enum:
        - csv
      description: Artifact file format. The supported value is `csv`.
    ArtifactSource:
      type: string
      enum:
        - upload
        - presigned
        - uri
        - generated
      description: >
        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.
    ValidationError:
      type: object
      required:
        - loc
        - msg
        - type
      properties:
        loc:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer
        msg:
          type: string
        type:
          type: string
  securitySchemes:
    authorization:
      bearerFormat: JWT
      scheme: bearer
      type: http

````