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

# Create or reuse a shareable artifact

> Creates a public artifact snapshot from a retained dashboard in the authenticated user's chat. A retained dashboard remains shareable if its run later fails. If the same private chat source was already shared, returns the existing published artifact instead.

Operation ID: post__artifacts.



## OpenAPI

````yaml /openapi/itoflow-public.openapi.json post /artifacts
openapi: 3.1.0
info:
  description: >-
    All Itoflow APIs are experimental and may change without notice. Read-only
    operations marked interactive can be tried from the documentation; the
    others are reference-only.
  title: Itoflow Developer API
  version: 1.0.0
servers:
  - description: Itoflow API
    url: https://api.itoflow.ai
security: []
tags:
  - name: Account
  - name: Billing
  - name: Brokers
  - name: Chat
  - name: Connected MCP servers
  - name: GitHub
  - name: Market data
  - name: Monitors
  - name: Notifications
  - name: Portfolios
  - name: Risk runs
  - name: Sharing and data
  - name: Strategies
paths:
  /artifacts:
    post:
      tags:
        - Sharing and data
      summary: Create or reuse a shareable artifact
      description: >-
        Creates a public artifact snapshot from a retained dashboard in the
        authenticated user's chat. A retained dashboard remains shareable if its
        run later fails. If the same private chat source was already shared,
        returns the existing published artifact instead.


        Operation ID: post__artifacts.
      operationId: post__artifacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateArtifactRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateArtifactResponse'
          description: Existing published artifact reused
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateArtifactResponse'
          description: Artifact created
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Authentication required
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Chat, task, or source locator not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Task not shareable or snapshot source unavailable
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Server error
      security:
        - bearerAuth: []
components:
  schemas:
    CreateArtifactRequest:
      properties:
        chat_id:
          description: Chat identifier that owns the retained dashboard
          example: 0b6342a4-ab5f-41b1-9772-60791177acf3
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        source_locator:
          $ref: '#/components/schemas/ArtifactSourceLocator'
        task_id:
          description: >-
            Deprecated task identifier kept for older clients; use
            source_locator instead.
          example: 1939d8d3dc31b215
          maxLength: 100
          minLength: 1
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
      required:
        - chat_id
      type: object
    CreateArtifactResponse:
      properties:
        artifact:
          $ref: '#/components/schemas/PublicArtifact'
        url:
          example: https://app.itoflow.ai/a/VufIWcgY0FlG
          format: uri
          type: string
      required:
        - artifact
        - url
      type: object
    Error:
      properties:
        available:
          description: Optional available amount or value
          type: string
        billing_action:
          $ref: '#/components/schemas/BillingAction'
        code:
          description: Machine-readable error code
          type: string
        currentVersion:
          description: Current server-side version, when relevant
          type: number
        details:
          description: Optional structured error details
        error:
          description: Error type or code
          type: string
        expectedVersion:
          description: Client-provided expected version, when relevant
          type: number
        message:
          description: Human-readable error message
          type: string
        requested:
          description: Optional requested amount or value
          type: string
        usage:
          description: Optional usage metadata for limit errors
      required:
        - error
      type: object
    ArtifactSourceLocator:
      description: >-
        Private source locator identifying the dashboard part inside the chat
        transcript
      properties:
        kind:
          description: Source locator kind
          enum:
            - ui_message_part
          example: ui_message_part
          type: string
        message_id:
          description: AI SDK UI message id containing the dashboard part
          example: cf-message-123
          maxLength: 200
          minLength: 1
          type: string
        native_part_id:
          description: Native AI SDK part id, such as toolCallId or data part id
          example: call_abc123
          maxLength: 200
          minLength: 1
          type: string
        part_type:
          description: AI SDK UI message part type
          example: tool-StructuredOutput
          maxLength: 100
          minLength: 1
          type: string
      required:
        - kind
        - message_id
        - part_type
        - native_part_id
      type: object
    PublicArtifact:
      properties:
        artifact_type:
          enum:
            - report
          example: report
          type: string
        content:
          $ref: '#/components/schemas/ArtifactDashboard'
        created_at:
          example: '2026-04-03T23:29:40.548Z'
          type: string
        expires_at:
          example: null
          type:
            - string
            - 'null'
        metadata:
          $ref: '#/components/schemas/ArtifactMetadata'
        slug:
          example: VufIWcgY0FlG
          pattern: ^[A-Za-z0-9_-]{12}$
          type: string
        title:
          example: 'BTC vs ETH: 1-Year Comparison'
          type: string
      required:
        - slug
        - artifact_type
        - title
        - content
        - metadata
        - created_at
        - expires_at
      type: object
    BillingAction:
      description: Action that resolves a billing-related rejection
      properties:
        href:
          type: string
        kind:
          enum:
            - upgrade
            - payment_method
            - spending_cap
            - billing
          type: string
        label:
          type: string
      required:
        - href
        - label
        - kind
      type: object
    ArtifactDashboard:
      properties:
        components:
          items:
            $ref: '#/components/schemas/ArtifactDashboardComponent'
          type: array
        follow_up_suggestions:
          items:
            type: string
          type: array
        metadata:
          $ref: '#/components/schemas/ArtifactDashboardMetadata'
        timestamp:
          description: ISO 8601 dashboard timestamp
          example: '2026-04-03T15:00:00.000Z'
          type:
            - string
            - 'null'
        title:
          example: 'BTC vs ETH: 1-Year Comparison'
          type: string
        type:
          example: dashboard
          type: string
      required:
        - type
        - components
      type: object
    ArtifactMetadata:
      properties:
        analysis_type:
          example: asset_comparison
          type: string
        dashboard_timestamp:
          description: ISO 8601 timestamp captured from the original dashboard, if present
          example: '2026-04-03T15:00:00.000Z'
          type:
            - string
            - 'null'
        snapshot_version:
          example: 1
          type: integer
        source_chat_id:
          example: 0b6342a4-ab5f-41b1-9772-60791177acf3
          type:
            - string
            - 'null'
        source_task_id:
          example: 1939d8d3dc31b215
          type:
            - string
            - 'null'
        symbols:
          example:
            - BTC-USD.CC
            - ETH-USD.CC
          items:
            type: string
          type: array
      required:
        - snapshot_version
      type: object
    ArtifactDashboardComponent:
      additionalProperties: {}
      type: object
    ArtifactDashboardMetadata:
      properties:
        analysis_type:
          type: string
        query:
          type: string
        symbols:
          items:
            type: string
          type: array
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: Itoflow access token issued for the Itoflow API.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.