Apicurio Artifacts API

The Artifacts API from Apicurio — 9 operation(s) for artifacts.

Operations 12

GET /ids/globalIds/{globalId} Get artifact by global ID #
GET /search/artifacts Search for artifacts #
POST /search/artifacts Search for artifacts by content #
GET /ids/contentIds/{contentId}/references List artifact references by content ID #
GET /ids/globalIds/{globalId}/references List artifact references by global ID #
GET /groups/{groupId}/artifacts List artifacts in group #
POST /groups/{groupId}/artifacts Create artifact #
DELETE /groups/{groupId}/artifacts Delete artifacts in group #
GET /ids/contentHashes/{contentHash}/references List artifact references by hash #
GET /ids/contentHashes/{contentHash} Get artifact content by SHA-256 hash #
GET /ids/contentIds/{contentId} Get artifact content by ID #
DELETE /groups/{groupId}/artifacts/{artifactId} Delete artifact #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/apicurio-artifacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

apicurio-artifacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Apicurio Registry Admin Artifacts API
  version: 3.1.x
  description: Apicurio Registry is a high-performance, runtime registry for schemas and API designs. It stores and manages OpenAPI, AsyncAPI, Avro, JSON Schema, Protobuf, and other artifact types, providing a REST API for schema management with compatibility checking and content versioning.
  contact:
    name: Apicurio
    url: https://www.apicur.io/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8080/apis/registry/v3
  description: Local Apicurio Registry
tags:
- name: Artifacts
paths:
  /ids/globalIds/{globalId}:
    summary: Access artifact content utilizing an artifact version's globally unique identifier.
    parameters:
    - name: globalId
      description: Global identifier for an artifact version.
      schema:
        format: int64
        type: integer
      in: path
      required: true
    get:
      tags:
      - Artifacts
      parameters:
      - name: references
        description: Allows the user to specify how references in the content should be treated.
        schema:
          $ref: '#/components/schemas/HandleReferencesType'
        in: query
      - name: returnArtifactType
        description: 'When set to `true`, the HTTP response will include a header named `X-Registry-ArtifactType`

          that contains the type of the artifact being returned.'
        schema:
          type: boolean
        in: query
      responses:
        '200':
          $ref: '#/components/responses/ArtifactContent'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getContentByGlobalId
      summary: Get artifact by global ID
      description: 'Gets the content for an artifact version in the registry using its globally unique

        identifier.


        This operation may fail for one of the following reasons:


        * No artifact version with this `globalId` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
  /search/artifacts:
    summary: Search for artifacts in the registry.
    get:
      tags:
      - Artifacts
      parameters:
      - name: name
        description: Filter by artifact name.
        schema:
          type: string
        in: query
      - name: offset
        description: The number of artifacts to skip before starting to collect the result set.  Defaults to 0.
        schema:
          default: 0
          type: integer
        in: query
        required: false
      - name: limit
        description: The number of artifacts to return.  Defaults to 20.
        schema:
          default: 20
          type: integer
        in: query
        required: false
      - name: order
        description: Sort order, ascending (`asc`) or descending (`desc`).
        schema:
          $ref: '#/components/schemas/SortOrder'
        in: query
      - name: orderby
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
        schema:
          $ref: '#/components/schemas/ArtifactSortBy'
        in: query
      - name: labels
        description: 'Filter by one or more name/value label.  Separate each name/value pair using a colon.  For

          example `labels=foo:bar` will return only artifacts with a label named `foo`

          and value `bar`.'
        schema:
          type: array
          items:
            type: string
        in: query
      - name: description
        description: Filter by description.
        schema:
          type: string
        in: query
      - name: groupId
        description: Filter by artifact group.
        schema:
          type: string
        in: query
      - name: globalId
        description: Filter by globalId.
        schema:
          format: int64
          type: integer
        in: query
      - name: contentId
        description: Filter by contentId.
        schema:
          format: int64
          type: integer
        in: query
        required: false
      - name: artifactId
        description: Filter by artifactId.
        schema:
          type: string
        in: query
      - name: artifactType
        description: Filter by artifact type (`AVRO`, `JSON`, etc).
        schema:
          $ref: '#/components/schemas/ArtifactType'
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtifactSearchResults'
          description: 'On a successful response, returns a result set of artifacts - one for each artifact

            in the registry that matches the criteria.'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: searchArtifacts
      summary: Search for artifacts
      description: 'Returns a paginated list of all artifacts that match the provided filter criteria.


        This operation can fail for the following reasons:


        * A server error occurred (HTTP error `500`)

        '
    post:
      requestBody:
        description: The content to search for.
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/FileContent'
        required: true
      tags:
      - Artifacts
      parameters:
      - name: canonical
        description: Parameter that can be set to `true` to indicate that the server should "canonicalize" the content when searching for matching artifacts.  Canonicalization is unique to each artifact type, but typically involves removing any extra whitespace and formatting the content in a consistent manner.  Must be used along with the `artifactType` query parameter.
        schema:
          type: boolean
        in: query
      - name: artifactType
        description: Indicates the type of artifact represented by the content being used for the search.  This is only needed when using the `canonical` query parameter, so that the server knows how to canonicalize the content prior to searching for matching artifacts.
        schema:
          $ref: '#/components/schemas/ArtifactType'
        in: query
      - name: groupId
        description: Filter by artifact group.
        schema:
          type: string
        in: query
      - name: offset
        description: The number of artifacts to skip before starting to collect the result set.  Defaults to 0.
        schema:
          default: 0
          type: integer
        in: query
        required: false
      - name: limit
        description: The number of artifacts to return.  Defaults to 20.
        schema:
          default: 20
          type: integer
        in: query
        required: false
      - name: order
        description: Sort order, ascending (`asc`) or descending (`desc`).
        schema:
          $ref: '#/components/schemas/SortOrder'
        in: query
      - name: orderby
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
        schema:
          $ref: '#/components/schemas/ArtifactSortBy'
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtifactSearchResults'
          description: 'On a successful response, returns a result set of artifacts - one for each artifact

            in the registry that matches the criteria.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: searchArtifactsByContent
      summary: Search for artifacts by content
      description: 'Returns a paginated list of all artifacts with at least one version that matches the

        posted content.


        This operation can fail for the following reasons:


        * Provided content (request body) was empty (HTTP error `400`)

        * A server error occurred (HTTP error `500`)

        '
  /ids/contentIds/{contentId}/references:
    parameters:
    - name: contentId
      description: Global identifier for a single artifact content.
      schema:
        format: int64
        type: integer
      in: path
      required: true
    get:
      tags:
      - Artifacts
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactReference'
          description: A list containing all the references for the artifact with the given content id.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: referencesByContentId
      summary: List artifact references by content ID
      description: 'Returns a list containing all the artifact references using the artifact content ID.


        This operation may fail for one of the following reasons:


        * A server error occurred (HTTP error `500`)'
  /ids/globalIds/{globalId}/references:
    parameters:
    - name: globalId
      description: Global identifier for an artifact version.
      schema:
        format: int64
        type: integer
      in: path
      required: true
    - name: refType
      description: Determines the type of reference to return, either INBOUND or OUTBOUND.  Defaults to OUTBOUND.
      schema:
        $ref: '#/components/schemas/ReferenceType'
      in: query
    get:
      tags:
      - Artifacts
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactReference'
          description: A list containing all the references for the artifact with the given global id.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: referencesByGlobalId
      summary: List artifact references by global ID
      description: 'Returns a list containing all the artifact references using the artifact global ID.


        This operation may fail for one of the following reasons:


        * A server error occurred (HTTP error `500`)'
  /groups/{groupId}/artifacts:
    summary: Manage the collection of artifacts within a single group in the registry.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    get:
      tags:
      - Artifacts
      parameters:
      - name: limit
        description: The number of artifacts to return.  Defaults to 20.
        schema:
          type: integer
        in: query
      - name: offset
        description: The number of artifacts to skip before starting the result set.  Defaults to 0.
        schema:
          type: integer
        in: query
      - name: order
        description: Sort order, ascending (`asc`) or descending (`desc`).
        schema:
          $ref: '#/components/schemas/SortOrder'
        in: query
      - name: orderby
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
        schema:
          $ref: '#/components/schemas/ArtifactSortBy'
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArtifactSearchResults'
          description: On a successful response, returns a bounded set of artifacts.
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: listArtifactsInGroup
      summary: List artifacts in group
      description: Returns a list of all artifacts in the group.  This list is paged.
    post:
      requestBody:
        description: The artifact being created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateArtifact'
        required: true
      tags:
      - Artifacts
      parameters:
      - name: ifExists
        description: Set this option to instruct the server on what to do if the artifact already exists.
        schema:
          $ref: '#/components/schemas/IfArtifactExists'
        in: query
      - name: canonical
        description: Used only when the `ifExists` query parameter is set to `RETURN_OR_UPDATE`, this parameter can be set to `true` to indicate that the server should "canonicalize" the content when searching for a matching version.  The canonicalization algorithm is unique to each artifact type, but typically involves removing extra whitespace and formatting the content in a consistent manner.
        schema:
          type: boolean
        in: query
      - name: dryRun
        description: 'When set to `true`, the operation will not result in any changes. Instead, it

          will return a result based on whether the operation **would have succeeded**.'
        schema:
          type: boolean
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateArtifactResponse'
          description: Artifact was successfully created.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/RuleViolationConflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: createArtifact
      summary: Create artifact
      description: "Creates a new artifact.  The body of the request should be a `CreateArtifact` \nobject, which includes the metadata of the new artifact and, optionally, the \nmetadata and content of the first version.\n\nIf the artifact type is not provided, the registry attempts to figure out what \nkind of artifact is being added from the\nfollowing supported list:\n\n* Avro (`AVRO`)\n* Protobuf (`PROTOBUF`)\n* JSON Schema (`JSON`)\n* Kafka Connect (`KCONNECT`)\n* OpenAPI (`OPENAPI`)\n* AsyncAPI (`ASYNCAPI`)\n* GraphQL (`GRAPHQL`)\n* Web Services Description Language (`WSDL`)\n* XML Schema (`XSD`)\n\nAn artifact will be created using the unique artifact ID that can optionally be \nprovided in the request body.  If not provided in the request, the server will\ngenerate a unique ID for the artifact.  It is typically recommended that callers\nprovide the ID, because it is typically a meaningful identifier, and as such\nfor most use cases should be supplied by the caller.\n\nIf an artifact with the provided artifact ID already exists, the default behavior\nis for the server to reject the content with a 409 error.  However, the caller can\nsupply the `ifExists` query parameter to alter this default behavior. The `ifExists`\nquery parameter can have one of the following values:\n\n* `FAIL` (*default*) - server rejects the content with a 409 error\n* `CREATE_VERSION` - server creates a new version of the existing artifact and returns it\n* `FIND_OR_CREATE_VERSION` - server returns an existing **version** that matches the \nprovided content if such a version exists, otherwise a new version is created\n\nThis operation may fail for one of the following reasons:\n\n* An invalid `ArtifactType` was indicated (HTTP error `400`)\n* No `ArtifactType` was indicated and the server could not determine one from the content (HTTP error `400`)\n* Provided content (request body) was empty (HTTP error `400`)\n* An invalid version number was used for the optional included first version (HTTP error `400`)\n* The group does not exist and automatic-group-creation is not enabled (HTTP error `404`)\n* An artifact with the provided ID already exists (HTTP error `409`)\n* The content violates one of the configured global rules (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n\nNote that if the `dryRun` query parameter is set to `true`, then this operation\nwill not actually make any changes.  Instead it will succeed or fail based on \nwhether it **would have worked**.  Use this option to, for example, check if an\nartifact is valid or if a new version passes configured compatibility checks."
    delete:
      tags:
      - Artifacts
      responses:
        '204':
          description: When the delete operation is successful, a simple 204 is returned.
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: deleteArtifactsInGroup
      summary: Delete artifacts in group
      description: Deletes all of the artifacts that exist in a given group.
  /ids/contentHashes/{contentHash}/references:
    parameters:
    - name: contentHash
      description: SHA-256 content hash for a single artifact content.
      schema:
        type: string
      in: path
      required: true
    get:
      tags:
      - Artifacts
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactReference'
          description: A list containing all the references for the artifact with the given content hash.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: referencesByContentHash
      summary: List artifact references by hash
      description: 'Returns a list containing all the artifact references using the artifact content hash.


        This operation may fail for one of the following reasons:


        * A server error occurred (HTTP error `500`)

        '
  /ids/contentHashes/{contentHash}:
    summary: Access artifact content utilizing the SHA-256 hash of the content.
    parameters:
    - name: contentHash
      description: SHA-256 content hash for a single artifact content.
      schema:
        type: string
      in: path
      required: true
    get:
      tags:
      - Artifacts
      responses:
        '200':
          $ref: '#/components/responses/ArtifactContent'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getContentByHash
      summary: Get artifact content by SHA-256 hash
      description: "Gets the content for an artifact version in the registry using the \nSHA-256 hash of the content.  This content hash may be shared by multiple artifact\nversions in the case where the artifact versions have identical content.\n\nThis operation may fail for one of the following reasons:\n\n* No content with this `contentHash` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
  /ids/contentIds/{contentId}:
    summary: Access artifact content utilizing the unique content identifier for that content.
    parameters:
    - name: contentId
      description: Global identifier for a single artifact content.
      schema:
        format: int64
        type: integer
      in: path
      required: true
    get:
      tags:
      - Artifacts
      responses:
        '200':
          $ref: '#/components/responses/ArtifactContent'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getContentById
      summary: Get artifact content by ID
      description: 'Gets the content for an artifact version in the registry using the unique content

        identifier for that content.  This content ID may be shared by multiple artifact

        versions in the case where the artifact versions are identical.


        This operation may fail for one of the following reasons:


        * No content with this `contentId` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
  /groups/{groupId}/artifacts/{artifactId}:
    summary: Manage a single artifact.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    delete:
      tags:
      - Artifacts
      responses:
        '204':
          description: Returned when the artifact was successfully deleted.
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: deleteArtifact
      summary: Delete artifact
      description: 'Deletes an artifact completely, resulting in all versions of the artifact also being

        deleted.  This may fail for one of the following reasons:


        * No artifact with the `artifactId` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)'
components:
  schemas:
    ProblemDetails:
      title: Root Type for Error
      description: 'All error responses, whether `4xx` or `5xx` will include one of these as the response

        body.'
      required:
      - title
      - status
      type: object
      properties:
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        type:
          description: A URI reference [RFC3986] that identifies the problem type.
          type: string
        title:
          description: A short, human-readable summary of the problem type.
          type: string
        status:
          format: int32
          description: The HTTP status code.
          type: integer
        instance:
          description: A URI reference that identifies the specific occurrence of the problem.
          type: string
        name:
          description: The name of the error (typically a server exception class name).
          type: string
      example:
        status: 500
        name: NullPointerException
        title: An error occurred somewhere.
    ContractMetadata:
      title: ContractMetadata
      description: Contract metadata for an artifact.
      type: object
      properties:
        status:
          description: The contract lifecycle status.
          type: string
          enum:
          - DRAFT
          - STABLE
          - DEPRECATED
        ownerTeam:
          description: The team that owns the contract.
          type: string
        ownerDomain:
          description: The domain the contract belongs to.
          type: string
        supportContact:
          description: Support contact email.
          type: string
        classification:
          description: Data classification level.
          type: string
          enum:
          - PUBLIC
          - INTERNAL
          - CONFIDENTIAL
          - RESTRICTED
        stage:
          description: Promotion stage.
          type: string
          enum:
          - DEV
          - STAGE
          - PROD
        stableDate:
          description: ISO-8601 date when contract became stable.
          type: string
        deprecatedDate:
          description: ISO-8601 date when contract was deprecated.
          type: string
        deprecationReason:
          description: Reason for deprecation.
          type: string
        compatibilityGroup:
          description: Compatibility group for schema evolution scoping.
          type: string
    ArtifactType:
      description: ''
      type: string
      example: AVRO
      x-codegen-package: io.apicurio.registry.types
    VersionMetaData:
      title: Root Type for ArtifactVersionMetaData
      description: ''
      required:
      - createdOn
      - owner
      - version
      - artifactType
      - globalId
      - artifactId
      - contentId
      type: object
      properties:
        version:
          $ref: '#/components/schemas/Version'
        name:
          type: string
        description:
          type: string
        owner:
          type: string
        createdOn:
          format: date-time
          type: string
        artifactType:
          $ref: '#/components/schemas/ArtifactType'
          description: ''
        globalId:
          format: int64
          description: ''
          type: integer
        state:
          $ref: '#/components/schemas/VersionState'
          description: ''
        labels:
          $ref: '#/components/schemas/Labels'
          description: ''
        groupId:
          $ref: '#/components/schemas/GroupId'
          description: ''
        contentId:
          format: int64
          description: ''
          type: integer
        artifactId:
          $ref: '#/components/schemas/ArtifactId'
          description: ''
        modifiedBy:
          description: ''
          type: string
        modifiedOn:
          format: date-time
          description: ''
          type: string
      example:
        groupId: My-Group
        artifactId: my-artifact-id
        version: 1221432
        artifactType: PROTOBUF
        name: Artifact Name
        description: The description of the artifact
        owner: user1
        createdOn: '2019-05-17T12:00:00Z'
        globalId: 183282932983
        contentId: 12347
        labels:
          custom-1: foo
          custom-2: bar
    GroupId:
      description: An ID of a single artifact group.
      pattern: ^.{1,512}$
      type: string
      example: '"my-group"'
    SearchedArtifact:
      description: Models a single artifact from the result set returned when searching for artifacts.
      required:
      - owner
      - createdOn
      - artifactId
      - artifactType
      - groupId
      - modifiedBy
      - modifiedOn
      type: object
      properties:
        name:
          description: ''
          type: string
        description:
          description: ''
          type: string
        createdOn:
          format: date-time
          description: ''
          type: string
        owner:
          description: ''
          type: string
        artifactType:
          $ref: '#/components/schemas/ArtifactType'
          description: ''
        modifiedOn:
          format: date-time
          description: ''
          type: string
        modifiedBy:
          description: ''
          type: string
        groupId:
          $ref: '#/components/schemas/GroupId'
          description: ''
        artifactId:
          $ref: '#/components/schemas/ArtifactId'
          description: ''
        labels:
          $ref: '#/components/schemas/Labels'
          description: ''
      example:
        groupId: My-Group
        artifactId: Procurement-Invoice
        name: Artifact Name
        description: Description of the artifact
        artifactType: AVRO
        owner: user1
        createdOn: '2019-03-22T12:51:19Z'
        modifiedBy: user2
        modifiedOn: '2019-04-01T12:51:19Z'
    VersionContent:
      description: ''
      required:
      - content
      - contentType
      type: object
      properties:
        content:
          description: Raw content of the artifact version or a valid (and accessible) URL where the content can be found.
          type: string
          example: ''
        references:
          description: Collection of references to other artifacts.
          type: array
          items:
            $ref: '#/components/schemas/ArtifactReference'
        contentType:
          description: The content-type, such as `application/json` or `text/xml`.
          type: string
        encoding:
          description: Optional encoding for the content property. When set to 'base64', the content value will be base64-decoded by the server before processing.
          type: string
          enum:
          - base64
    RuleViolationCause:
      title: Root Type for RuleViolationCause
      description: ''
      type: object
      properties:
        description:
          type: string
        context:
          type: string
      example:
        description: External documentation URL is not valid (it must be formatted as a URL).
        context: /info/externalDocs[url]
    ReferenceType:
      description: ''
      enum:
      - OUTBOUND
      - INBOUND
      type: string
      example: '"INBOUND"'
      x-codegen-package: io.apicurio.registry.types
    ArtifactSortBy:
      description: ''
      enum:
      - groupId
      - artifactId
      - createdOn
      - modifiedOn
      - artifactType
      - name
      type: string
    ArtifactMetaData:
      title: Root Type for ArtifactMetaData
      description: ''
      required:
      - artifactId
      - owner
      - createdOn
      - modifiedBy
      - modifiedOn
      - artifactType
      - groupId
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        owner:
          type: string
        createdOn:
          format: date-time
          type: string
        modifiedBy:
          type: string
        modifiedOn:
          format: date-time
          type: string
        artifactType:
          $ref: '#/components/schemas/ArtifactType'
          description: ''
        labels:
          $ref: '#/components/schemas/Labels'
          description: ''
        groupId:
          $ref: '#/components/schemas/GroupId'
          description: ''
        artifactId:
          $ref: '#/components/schemas/ArtifactId'
          description: ''
        contractMetadata:
          $ref: '#/components/schemas/ContractMetadata'
          description: Contract metadata projected from the artifact labels. Only present when data contracts are enabled and contract labels exist.
      example:
        groupId: My-Group
        artifactId: Procurement-Invoice
        name: Artifact Name
        description: Description of the artifact
        artifactType: AVRO
        owner: user1
        createdOn: '2019-03-22T12:51:19Z'
        modifiedBy: user2
        modifiedOn: '2019-07-19T15:09:00Z'
        labels:
          custom-1: foo
          custom-2: bar
    ArtifactReference:
      title: Root Type for ArtifactReference
      description: A reference to a different artifact. Typically used with artifact types that can have dependencies like Protobuf.
      required:
      - artifactId
      - groupId
      - name
      type: object
      properties:
        groupId:
          type: string
        artifactId:
          type: string
        version:
          type: string
        name:
          type: string
      example:
        groupId: mygroup
        artifactId: 13842090-2ce3-11ec-8d3d-0242ac130003
        version: '2'
        name: foo.bar.Open
  

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apicurio/refs/heads/main/openapi/apicurio-artifacts-api-openapi.yml