Apicurio website screenshot

Apicurio

Apicurio is an open source API and schema tooling platform maintained by Red Hat under the Apache 2.0 license. It includes Apicurio Registry (a high-performance schema and API design registry), Apicurio Studio (a visual API designer for OpenAPI and AsyncAPI), Apicurio Data Models (a data modeling library), Apicurio Codegen (Java code generation from OpenAPI), and Apicurito (an embedded API editor).

4 APIs 7 Features
Apache LicenseAPI DesignAPI RegistryAvroAsyncAPIJavaOpen SourceOpenAPIRed HatSchema Registry

APIs

Apicurio Registry

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

Apicurio Studio

Apicurio Studio is a visual, zero-code API design tool for creating and editing OpenAPI and AsyncAPI specifications. Note: Apicurio Studio is deprecated in favor of the integrat...

Apicurio Data Models

Apicurio Data Models is a Java and TypeScript library for parsing, validating, and manipulating OpenAPI and AsyncAPI specification documents programmatically.

Apicurio Codegen

Apicurio Codegen generates Java JAX-RS server stubs and client code from OpenAPI specifications, enabling design-first API development workflows.

Collections

GraphQL

Pricing Plans

Apicurio Plans Pricing

3 plans

PLANS

Rate Limits

Apicurio Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Schema Registry

High-performance registry for storing and versioning schemas including Avro, JSON Schema, Protobuf, OpenAPI, and AsyncAPI.

Schema Compatibility Checking

Enforce backward, forward, or full compatibility rules when evolving schemas to prevent breaking changes.

Visual API Design

Zero-code visual editor for creating OpenAPI and AsyncAPI specifications without writing raw YAML or JSON.

REST API for Schema Management

Full REST API for programmatic schema registration, retrieval, and version management.

Java Code Generation

Generate JAX-RS server stubs and client code from OpenAPI specifications for design-first Java development.

Multi-Format Support

Support for OpenAPI, AsyncAPI, Avro, JSON Schema, Protobuf, WSDL, XSD, and GraphQL artifact types.

Apache License 2.0

Open source under the Apache License 2.0, maintained by Red Hat with community contributions.

Use Cases

Schema Governance

Centrally manage and version schemas across microservices with compatibility enforcement to prevent breaking changes.

Design-First API Development

Design OpenAPI and AsyncAPI specifications visually before writing code for design-first development.

Event-Driven Architecture

Manage Avro and Protobuf schemas for Kafka and other messaging systems in event-driven architectures.

API Contract Management

Store and version API specifications as the system of record for API contracts across teams.

Java Code Scaffolding

Generate JAX-RS server stubs from OpenAPI specs to accelerate Java API implementation.

Resources

🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
🔗
License
License
🔗
MCPServer
MCPServer

Sources

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Apicurio Registry API
  version: 3.1.x
items:
- info:
    name: Artifacts
    type: folder
  items:
  - info:
      name: Get artifact by global ID
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/globalIds/:globalId
      params:
      - name: globalId
        value: ''
        type: path
        description: Global identifier for an artifact version.
      - name: references
        value: ''
        type: query
        description: Allows the user to specify how references in the content should be treated.
      - name: returnArtifactType
        value: ''
        type: query
        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.'
    docs: '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`)

      '
  - info:
      name: List artifact references by content ID
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/contentIds/:contentId/references
      params:
      - name: contentId
        value: ''
        type: path
        description: Global identifier for a single artifact content.
    docs: '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`)'
  - info:
      name: List artifact references by global ID
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/globalIds/:globalId/references
      params:
      - name: globalId
        value: ''
        type: path
        description: Global identifier for an artifact version.
      - name: refType
        value: ''
        type: query
        description: Determines the type of reference to return, either INBOUND or OUTBOUND.  Defaults to OUTBOUND.
    docs: '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`)'
  - info:
      name: List artifacts in group
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts
      params:
      - name: groupId
        value: ''
        type: path
        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.
      - name: limit
        value: ''
        type: query
        description: The number of artifacts to return.  Defaults to 20.
      - name: offset
        value: ''
        type: query
        description: The number of artifacts to skip before starting the result set.  Defaults to 0.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
    docs: Returns a list of all artifacts in the group.  This list is paged.
  - info:
      name: Create artifact
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts
      params:
      - name: groupId
        value: ''
        type: path
        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.
      - name: ifExists
        value: ''
        type: query
        description: Set this option to instruct the server on what to do if the artifact already exists.
      - name: canonical
        value: ''
        type: query
        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.
      - name: dryRun
        value: ''
        type: query
        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**.'
      body:
        type: json
        data: '{}'
    docs: "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 (`G"
  - info:
      name: Delete artifacts in group
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts
      params:
      - name: groupId
        value: ''
        type: path
        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.
    docs: Deletes all of the artifacts that exist in a given group.
  - info:
      name: List artifact references by hash
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/contentHashes/:contentHash/references
      params:
      - name: contentHash
        value: ''
        type: path
        description: SHA-256 content hash for a single artifact content.
    docs: '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`)

      '
  - info:
      name: Get artifact content by SHA-256 hash
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/contentHashes/:contentHash
      params:
      - name: contentHash
        value: ''
        type: path
        description: SHA-256 content hash for a single artifact content.
    docs: "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"
  - info:
      name: Get artifact content by ID
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/ids/contentIds/:contentId
      params:
      - name: contentId
        value: ''
        type: path
        description: Global identifier for a single artifact content.
    docs: '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`)

      '
  - info:
      name: Delete artifact
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId
      params:
      - name: groupId
        value: ''
        type: path
        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.
      - name: artifactId
        value: ''
        type: path
        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.
    docs: '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`)'
- info:
    name: Global rules
    type: folder
  items:
  - info:
      name: List global rules
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/rules
    docs: 'Gets a list of all the currently configured global rules (if any).


      This operation can fail for the following reasons:


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

      '
  - info:
      name: Create global rule
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/admin/rules
      body:
        type: json
        data: '{}'
    docs: 'Adds a rule to the list of globally configured rules.


      This operation can fail for the following reasons:


      * The rule type is unknown (HTTP error `400`)

      * The rule already exists (HTTP error `409`)

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

      '
  - info:
      name: Delete all global rules
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/admin/rules
    docs: 'Deletes all globally configured rules.


      This operation can fail for the following reasons:


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

      '
  - info:
      name: Get global rule configuration
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/rules/:ruleType
      params:
      - name: ruleType
        value: ''
        type: path
        description: The unique name/type of a rule.
    docs: 'Returns information about the named globally configured rule.


      This operation can fail for the following reasons:


      * Invalid rule name/type (HTTP error `400`)

      * No rule with name/type `rule` exists (HTTP error `404`)

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

      '
  - info:
      name: Update global rule configuration
      type: http
    http:
      method: PUT
      url: http://localhost:8080/apis/registry/v3/admin/rules/:ruleType
      params:
      - name: ruleType
        value: ''
        type: path
        description: The unique name/type of a rule.
      body:
        type: json
        data: '{}'
    docs: 'Updates the configuration for a globally configured rule.


      This operation can fail for the following reasons:


      * Invalid rule name/type (HTTP error `400`)

      * No rule with name/type `rule` exists (HTTP error `404`)

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

      '
  - info:
      name: Delete global rule
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/admin/rules/:ruleType
      params:
      - name: ruleType
        value: ''
        type: path
        description: The unique name/type of a rule.
    docs: 'Deletes a single global rule.  If this is the only rule configured, this is the same

      as deleting **all** rules.


      This operation can fail for the following reasons:


      * Invalid rule name/type (HTTP error `400`)

      * No rule with name/type `rule` exists (HTTP error `404`)

      * Rule cannot be deleted (HTTP error `409`)

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

      '
- info:
    name: System
    type: folder
  items:
  - info:
      name: Get system information
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/system/info
    docs: 'This operation retrieves information about the running registry system, such as the version

      of the software and when it was built.'
  - info:
      name: Get UI config
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/system/uiConfig
    docs: 'Returns the UI configuration properties for this server.  The registry UI can be

      connected to a backend using just a URL.  The rest of the UI configuration can then

      be fetched from the backend using this operation.  This allows UI and backend to

      both be configured in the same place.


      This operation may fail for one of the following reasons:


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

      '
- info:
    name: Search
    type: folder
  items:
  - info:
      name: Search for artifacts
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/search/artifacts
      params:
      - name: name
        value: ''
        type: query
        description: Filter by artifact name.
      - name: offset
        value: ''
        type: query
        description: The number of artifacts to skip before starting to collect the result set.  Defaults to 0.
      - name: limit
        value: ''
        type: query
        description: The number of artifacts to return.  Defaults to 20.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
      - name: labels
        value: ''
        type: query
        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`.'
      - name: description
        value: ''
        type: query
        description: Filter by description.
      - name: groupId
        value: ''
        type: query
        description: Filter by artifact group.
      - name: globalId
        value: ''
        type: query
        description: Filter by globalId.
      - name: contentId
        value: ''
        type: query
        description: Filter by contentId.
      - name: artifactId
        value: ''
        type: query
        description: Filter by artifactId.
      - name: artifactType
        value: ''
        type: query
        description: Filter by artifact type (`AVRO`, `JSON`, etc).
    docs: '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`)

      '
  - info:
      name: Search for artifacts by content
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/search/artifacts
      params:
      - name: canonical
        value: ''
        type: query
        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.
      - name: artifactType
        value: ''
        type: query
        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.
      - name: groupId
        value: ''
        type: query
        description: Filter by artifact group.
      - name: offset
        value: ''
        type: query
        description: The number of artifacts to skip before starting to collect the result set.  Defaults to 0.
      - name: limit
        value: ''
        type: query
        description: The number of artifacts to return.  Defaults to 20.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
    docs: '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`)

      '
  - info:
      name: Search for groups
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/search/groups
      params:
      - name: offset
        value: ''
        type: query
        description: The number of artifacts to skip before starting to collect the result set.  Defaults to 0.
      - name: limit
        value: ''
        type: query
        description: The number of artifacts to return.  Defaults to 20.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
      - name: labels
        value: ''
        type: query
        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`.'
      - name: description
        value: ''
        type: query
        description: Filter by description.
      - name: groupId
        value: ''
        type: query
        description: Filter by group name.
    docs: 'Returns a paginated list of all groups that match the provided filter criteria.


      This operation can fail for the following reasons:


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

      '
  - info:
      name: Search for versions
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/search/versions
      params:
      - name: version
        value: ''
        type: query
        description: Filter by version number.
      - name: offset
        value: ''
        type: query
        description: The number of versions to skip before starting to collect the result set.  Defaults to 0.
      - name: limit
        value: ''
        type: query
        description: The number of versions to return.  Defaults to 20.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
      - name: labels
        value: ''
        type: query
        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`.'
      - name: description
        value: ''
        type: query
        description: Filter by description.
      - name: groupId
        value: ''
        type: query
        description: Filter by artifact group.
      - name: globalId
        value: ''
        type: query
        description: Filter by globalId.
      - name: contentId
        value: ''
        type: query
        description: Filter by contentId.
      - name: artifactId
        value: ''
        type: query
        description: Filter by artifactId.
      - name: name
        value: ''
        type: query
        description: Filter by name.
      - name: state
        value: ''
        type: query
        description: Filter by version state.
      - name: artifactType
        value: ''
        type: query
        description: Filter by artifact type (`AVRO`, `JSON`, etc).
      - name: content
        value: ''
        type: query
        description: Full-text search of artifact content.  Requires the Lucene search index to be enabled.
      - name: structure
        value: ''
        type: query
        description: 'Search by structured content elements (schemas, paths, fields, etc.) using a faceted format. Supports
          three formats: `type:kind:name` for exact match (e.g. `openapi:schema:Pet`), `kind:name` for cross-type match (e.g.
          `schema:Pet`), or just `name` for plain text search. Requires the Lucene search index to be enabled.'
    docs: 'Returns a paginated list of all versions that match the provided filter criteria.


      This operation can fail for the following reasons:


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

      '
  - info:
      name: Search for versions by content
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/search/versions
      params:
      - name: canonical
        value: ''
        type: query
        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.
      - name: artifactType
        value: ''
        type: query
        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 versions.
      - name: offset
        value: ''
        type: query
        description: The number of versions to skip before starting to collect the result set.  Defaults to 0.
      - name: limit
        value: ''
        type: query
        description: The number of versions to return.  Defaults to 20.
      - name: order
        value: ''
        type: query
        description: Sort order, ascending (`asc`) or descending (`desc`).
      - name: orderby
        value: ''
        type: query
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
      - name: groupId
        value: ''
        type: query
        description: Filter by group Id.
      - name: artifactId
        value: ''
        type: query
        description: Filter by artifact Id.
    docs: 'Returns a paginated list of all versions that match 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`)

      '
  - info:
      name: Search contract rules by tag
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/search/contract/rules
      params:
      - name: tag
        value: ''
        type: query
        description: The tag value to search for in contract rules.
    docs: Returns all contract rules across all artifacts that contain the specified tag.
  - info:
      name: Search contracts
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/search/contracts
      params:
      - name: status
        value: ''
        type: query
        description: Filter by contract status (DRAFT, STABLE, DEPRECATED).
      - name: ownerTeam
        value: ''
        type: query
        description: Filter by owner team.
      - name: compatibilityGroup
        value: ''
        type: query
        description: Filter by compatibility group.
      - name: offset
        value: ''
        type: query
        description: Number of results to skip.
      - name: limit
        value: ''
        type: query
        description: Maximum number of results to return.
      - name: order
        value: ''
        type: query
        description: Sort order (asc or desc).
      - name: orderby
        value: ''
        type: query
        description: Field to sort by.
    docs: Searches for artifacts that have contract metadata labels. Filters by status, owner team, and compatibility group.
- info:
    name: Admin
    type: folder
  items:
  - info:
      name: Export registry data
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/export
      params:
      - name: forBrowser
        value: ''
        type: query
        description: Indicates if the operation is done for a browser.  If true, the response will be a JSON payload with
          a property called `href`.  This `href` will be a single-use, naked download link suitable for use by a web browser
          to download the content.
      - name: groupId
        value: ''
        type: query
        description: If specified, only data belonging to this group will be exported. Global rules will be excluded.
    docs: Exports registry data as a ZIP archive.  If a `groupId` query parameter is provided, only data belonging to the
      specified group will be exported and global rules will be excluded.
  - info:
      name: Import registry data
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/admin/import
      headers:
      - name: X-Registry-Preserve-GlobalId
        value: ''
      - name: X-Registry-Preserve-ContentId
        value: ''
      params:
      - name: requireEmptyRegistry
        value: ''
        type: query
        description: 'Query parameter indicating whether the registry must be empty before allowing

          data to be imported.  Defaults to `true` if omitted.'
    docs: Imports registry data that was previously exported using the `/admin/export` operation.
  - info:
      name: Return a single role mapping
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId
      params:
      - name: principalId
        value: ''
        type: path
        description: Unique id of a principal (typically either a user or service account).
    docs: 'Gets the details of a single role mapping (by `principalId`).


      This operation can fail for the following reasons:


      * No role mapping for the `principalId` exists (HTTP error `404`)

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

      '
  - info:
      name: Update a role mapping
      type: http
    http:
      method: PUT
      url: http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId
      params:
      - name: principalId
        value: ''
        type: path
        description: Unique id of a principal (typically either a user or service account).
      body:
        type: json
        data: '{}'
    docs: 'Updates a single role mapping for one user/principal.


      This operation can fail for the following reasons:


      * No role mapping for the principalId exists (HTTP error `404`)

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

      '
  - info:
      name: Delete a role mapping
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId
      params:
      - name: principalId
        value: ''
        type: path
        description: Unique id of a principal (typically either a user or service account).
    docs: 'Deletes a single role mapping, effectively denying access to a user/principal.


      This operation can fail for the following reasons:


      * No role mapping for the principalId exists (HTTP error `404`)

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

      '
  - info:
      name: List all configuration properties
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/config/properties
    docs: 'Returns a list of all configuration properties that have been set.  The list is not paged.


      This operation may fail for one of the following reasons:


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

      '
  - info:
      name: Get configuration property value
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName
      params:
      - name: propertyName
        value: ''
        type: path
        description: The name of a configuration property.
    docs: 'Returns the value of a single configuration property.


      This operation may fail for one of the following reasons:


      * Property not found or not configured (HTTP error `404`)

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

      '
  - info:
      name: Update a configuration property
      type: http
    http:
      method: PUT
      url: http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName
      params:
      - name: propertyName
        value: ''
        type: path
        description: The name of a configuration property.
      body:
        type: json
        data: '{}'
    docs: 'Updates the value of a single configuration property.


      This operation may fail for one of the following reasons:


      * Property not found or not configured (HTTP error `404`)

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

      '
  - info:
      name: Reset a configuration property
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName
      params:
      - name: propertyName
        value: ''
        type: path
        description: The name of a configuration property.
    docs: 'Resets the value of a single configuration property.  This will return the property to

      its default value (see external documentation for supported properties and their default

      values).


      This operation may fail for one of the following reasons:


      * Property not found or not configured (HTTP error `404`)

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

      '
  - info:
      name: List all role mappings
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/roleMappings
      params:
      - name: limit
        value: ''
        type: query
        description: The number of role mappings to return.  Defaults to 20.
      - name: offset
        value: ''
        type: query
        description: The number of role mappings to skip before starting the result set.  Defaults to 0.
    docs: 'Gets a list of all role mappings configured in the registry (if any).


      This operation can fail for the following reasons:


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

      '
  - info:
      name: Create a new role mapping
      type: http
    http:
      method: POST
      url: http://localhost:8080/apis/registry/v3/admin/roleMappings
      body:
        type: json
        data: '{}'
    docs: 'Creates a new mapping between a user/principal and a role.


      This operation can fail for the following reasons:


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


      '
  - info:
      name: Get global contract ruleset
      type: http
    http:
      method: GET
      url: http://localhost:8080/apis/registry/v3/admin/contracts/ruleset
    docs: Returns the global contract ruleset that applies to all artifacts.
  - info:
      name: Set global contract ruleset
      type: http
    http:
      method: PUT
      url: http://localhost:8080/apis/registry/v3/admin/contracts/ruleset
      body:
        type: json
        data: '{}'
    docs: Sets the global contract ruleset that applies to all artifacts.
  - info:
      name: Delete global contract ruleset
      type: http
    http:
      method: DELETE
      url: http://loc

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