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

# by artifactId

> List the versions of one artifact, or search the versions of every artifact when artifact_id is unset.



## OpenAPI

````yaml /openapi.json get /api/v1/artifacts/{artifactId}/versions
openapi: 3.0.0
info:
  title: Sift API
  version: '1.0'
servers:
  - url: https://api.siftstack.com
    description: Production
  - url: https://gov.api.siftstack.com
    description: Gov
security:
  - BearerAuth: []
tags:
  - name: TagService
    description: Service to programmatically interact with [tags](/glossary#tag).
  - name: ProtobufDescriptorService
    description: >-
      Service to programmatically interact with protobuf descriptors used for
      protobuf ingestion.
    externalDocs:
      description: Read more about what protobuf ingestion.
      url: /ingestion/protobuf_ingestion
  - name: PanelConfigurationService
    description: Service to programmatically interact with panel configurations.
  - name: AssetService
    description: Service to programmatically interact with [assets](/glossary#asset).
    externalDocs:
      description: Read more about what assets are.
      url: /data-model
  - name: UnitService
  - name: ExternalSyncService
  - name: CommentService
    description: >-
      Service to programmatically interact with comments attached to resources
      in the platform.
  - name: ReportTemplateService
  - name: ExportService
  - name: ArtifactService
  - name: WebhookService
  - name: UserGroupService
  - name: RuleService
    description: Service to programmatically interact with rules.
    externalDocs:
      description: Read more about what rules are.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102
  - name: DocsService
  - name: RunService
    description: Service to programmatically interact with [runs](/glossary#run).
    externalDocs:
      description: Read more about what runs are.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265454053
  - name: NotificationService
    description: Service to programmatically interact with in-app notifications.
  - name: AnnotationLogService
    description: >-
      Service to programmatically interact with [annotation
      logs](/glossary#annotation).
    externalDocs:
      description: Read more about annotations.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685
  - name: DataImportService
  - name: DlqErrorsService
  - name: RoleService
  - name: AnnotationService
    description: Service to programmatically interact with annotations.
    externalDocs:
      description: Read more about annotations.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265486685
  - name: ResourceAttributeService
    description: Service to manage ABAC resource attributes (entity attributes).
  - name: RuleEvaluationService
    description: Service to evaluate rules.
    externalDocs:
      description: Read more about what rules are.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421102
  - name: RemoteFileService
  - name: UserDefinedFunctionService
  - name: PingService
  - name: PrincipalAttributeService
    description: Service to manage ABAC principal attributes.
  - name: ChannelSchemaService
    description: Service to programmatically interact with channel schemas
  - name: IngestionConfigService
    description: >-
      Service to programmatically interact with [ingestion
      configs](/glossary#ingestion-config).
    externalDocs:
      description: Read more about what ingestion configs are.
      url: /ingestion/creating-amend-ingestion-config
  - name: ViewService
    description: Service to programmatically interact with views.
    externalDocs:
      description: Read more about what views are.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/298188809
  - name: TestReportService
    description: Service to manage test reports
  - name: DataService
    description: Service to query data
  - name: MetadataService
  - name: CampaignService
  - name: SavedSearchService
  - name: ApiKeyService
  - name: ChannelService
    description: Service to programmatically interact with [channels](/glossary#channel).
    externalDocs:
      description: Read more about what channels are.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265453943
  - name: CalculatedChannelService
  - name: CalculatedChannelsService
    description: Service to programmatically interact with calculated channels.
    externalDocs:
      description: Read more about calculated channels.
      url: >-
        https://customer.support.siftstack.com/servicedesk/customer/portal/2/article/265421153
  - name: AutomationService
  - name: UserService
    description: Service to programmatically interact with user objects.
  - name: ReportService
  - name: FamilyService
    description: Service to programmatically interact with family configurations.
  - name: JobService
  - name: MeService
  - name: IngestService
  - name: PolicyService
    description: Service to manage ABAC policies.
paths:
  /api/v1/artifacts/{artifactId}/versions:
    get:
      tags:
        - ArtifactService
      summary: by artifactId
      description: >-
        List the versions of one artifact, or search the versions of every
        artifact when artifact_id is unset.
      operationId: ArtifactService_ListArtifactVersions
      parameters:
        - name: artifactId
          description: >-
            The artifact whose versions to list. Unset searches the versions of
            every

            artifact in the caller's organization. A named artifact lists its

            versions even when it is archived.
          in: path
          required: true
          schema:
            type: string
        - name: pageSize
          description: Defaults to 50; values above 200 are treated as 200.
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: pageToken
          description: >-
            From a previous response's next_page_token. Offset tokens from
            before

            this field took cursors are rejected (InvalidArgument).
          in: query
          required: false
          schema:
            type: string
        - name: filter
          description: >-
            A [Common Expression Language
            (CEL)](https://github.com/google/cel-spec)

            filter string with the ListArtifacts fields, evaluated against each

            version instead of the latest: title, version, file_name, file_type,

            version_created_date, metadata, links, runs, assets, and canvases

            describe the version, and the artifact fields describe its
            container.

            GetArtifactVersionFilterFields returns the fields. With artifact_id
            unset,

            versions of archived artifacts are excluded unless the query says

            otherwise, as in ListArtifacts.
          in: query
          required: false
          schema:
            type: string
        - name: orderBy
          description: >-
            A comma-separated [AIP-132](https://google.aip.dev/132#ordering)
            ordering

            string over created_date (when the version was written), version,
            and

            title. Fields sort ascending by default and support a `desc` suffix.
            The

            default is created_date descending.
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListArtifactVersionsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
components:
  schemas:
    v1ListArtifactVersionsResponse:
      type: object
      properties:
        versions:
          type: array
          items:
            $ref: '#/components/schemas/v1ArtifactVersion'
          readOnly: true
        nextPageToken:
          type: string
          readOnly: true
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    v1ArtifactVersion:
      type: object
      properties:
        artifactVersionId:
          type: string
          readOnly: true
        artifactId:
          type: string
          readOnly: true
        version:
          type: integer
          format: int64
          readOnly: true
        title:
          type: string
        summary:
          type: string
        authoringMessageId:
          type: string
          description: >-
            Set only for versions authored inside a conversation, and there only

            after the introducing message persists: uploads attach before the
            user

            sends, and agent turns persist messages only at end of turn.
          readOnly: true
        sourceToolUseIds:
          type: array
          items:
            type: string
          readOnly: true
        remoteFileId:
          type: string
          description: Unset until bytes are uploaded.
        createdDate:
          type: string
          format: date-time
          readOnly: true
        fileName:
          type: string
          description: >-
            From the version's remote_files record. Unset until bytes are
            uploaded.

            Clients infer preview behavior from file_name / file_mime_type.
          readOnly: true
        fileMimeType:
          type: string
          readOnly: true
        payload:
          type: object
          description: Set by GetArtifact for STRUCTURED artifacts. The listings omit it.
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/v1MetadataValue'
          description: Metadata attached to this version.
        isCurrent:
          type: boolean
          description: >-
            True when this is the artifact's current version, the one
            GetArtifact

            returns without a pin. A version still waiting for its upload is
            never

            current.
          readOnly: true
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
          description: >-
            A URL/resource name that uniquely identifies the type of the
            serialized

            protocol buffer message. This string must contain at least

            one "/" character. The last segment of the URL's path must represent

            the fully qualified name of the type (as in

            `path/google.protobuf.Duration`). The name should be in a canonical
            form

            (e.g., leading "." is not accepted).


            In practice, teams usually precompile into the binary all types that
            they

            expect it to use in the context of Any. However, for URLs which use
            the

            scheme `http`, `https`, or no scheme, one can optionally set up a
            type

            server that maps type URLs to message definitions as follows:


            * If no scheme is provided, `https` is assumed.

            * An HTTP GET on the URL must yield a [google.protobuf.Type][]
              value in binary format, or produce an error.
            * Applications are allowed to cache lookup results based on the
              URL, or have them precompiled into a binary to avoid any
              lookup. Therefore, binary compatibility needs to be preserved
              on changes to types. (Use versioned type names to manage
              breaking changes.)

            Note: this functionality is not currently available in the official

            protobuf release, and it is not used for type URLs beginning with

            type.googleapis.com. As of May 2023, there are no widely used type
            server

            implementations and no plans to implement one.


            Schemes other than `http`, `https` (or the empty scheme) might be

            used with implementation specific semantics.
      additionalProperties: {}
      description: >-
        `Any` contains an arbitrary serialized protocol buffer message along
        with a

        URL that describes the type of the serialized message.


        Protobuf library provides support to pack/unpack Any values in the form

        of utility functions or additional generated methods of the Any type.


        Example 1: Pack and unpack a message in C++.

            Foo foo = ...;
            Any any;
            any.PackFrom(foo);
            ...
            if (any.UnpackTo(&foo)) {
              ...
            }

        Example 2: Pack and unpack a message in Java.

            Foo foo = ...;
            Any any = Any.pack(foo);
            ...
            if (any.is(Foo.class)) {
              foo = any.unpack(Foo.class);
            }
            // or ...
            if (any.isSameTypeAs(Foo.getDefaultInstance())) {
              foo = any.unpack(Foo.getDefaultInstance());
            }

         Example 3: Pack and unpack a message in Python.

            foo = Foo(...)
            any = Any()
            any.Pack(foo)
            ...
            if any.Is(Foo.DESCRIPTOR):
              any.Unpack(foo)
              ...

         Example 4: Pack and unpack a message in Go

             foo := &pb.Foo{...}
             any, err := anypb.New(foo)
             if err != nil {
               ...
             }
             ...
             foo := &pb.Foo{}
             if err := any.UnmarshalTo(foo); err != nil {
               ...
             }

        The pack methods provided by protobuf library will by default use

        'type.googleapis.com/full.type.name' as the type URL and the unpack

        methods only use the fully qualified type name after the last '/'

        in the type URL, for example "foo.bar.com/x/y.z" will yield type

        name "y.z".


        JSON

        ====

        The JSON representation of an `Any` value uses the regular

        representation of the deserialized, embedded message, with an

        additional field `@type` which contains the type URL. Example:

            package google.profile;
            message Person {
              string first_name = 1;
              string last_name = 2;
            }

            {
              "@type": "type.googleapis.com/google.profile.Person",
              "firstName": <string>,
              "lastName": <string>
            }

        If the embedded message type is well-known and has a custom JSON

        representation, that representation will be embedded adding a field

        `value` which holds the custom JSON in addition to the `@type`

        field. Example (for message [google.protobuf.Duration][]):

            {
              "@type": "type.googleapis.com/google.protobuf.Duration",
              "value": "1.212s"
            }
    v1MetadataValue:
      type: object
      properties:
        key:
          $ref: '#/components/schemas/v1MetadataKey'
        stringValue:
          type: string
        numberValue:
          type: number
          format: double
        booleanValue:
          type: boolean
        relationValue:
          $ref: '#/components/schemas/v1MetadataRelationValue'
        archivedDate:
          type: string
          format: date-time
        isArchived:
          type: boolean
          description: >-
            Whether the metadata value is archived. This is inferred from
            whether archived_date is set.
      required:
        - key
    v1MetadataKey:
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/v1MetadataKeyType'
        archivedDate:
          type: string
          format: date-time
        isArchived:
          type: boolean
          description: >-
            Whether the metadata key is archived. This is inferred from whether
            archived_date is set.


            The filter field type this key maps to, so a client can build a CEL
            filter
             against it (`metadata["<name>"]`) and resolve its operators and functions
             from FilterGrammarService. Derived from `type`.
      required:
        - name
        - type
    v1MetadataRelationValue:
      type: object
      properties:
        resourceType:
          type: string
        resourceId:
          type: string
      required:
        - resourceType
        - resourceId
    v1MetadataKeyType:
      type: string
      enum:
        - METADATA_KEY_TYPE_UNSPECIFIED
        - METADATA_KEY_TYPE_STRING
        - METADATA_KEY_TYPE_NUMBER
        - METADATA_KEY_TYPE_BOOLEAN
        - METADATA_KEY_TYPE_RELATION
      default: METADATA_KEY_TYPE_UNSPECIFIED
      description: |-
        Metadata key type.

         - METADATA_KEY_TYPE_STRING: string
         - METADATA_KEY_TYPE_NUMBER: number
         - METADATA_KEY_TYPE_BOOLEAN: boolean
         - METADATA_KEY_TYPE_RELATION: relation — references another resource by UUID (e.g. folder membership)
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````