APIHub
Back to Explore

Apicurio Registry API [v2]

The Apicurio Registry v2 API is a REST interface for storing, versioning, retrieving, and managing a wide range of schema and API design artifacts (including Avro, OpenAPI, AsyncAPI, GraphQL, protobuf, JSON Schema, and more) organized in logical groups. It also exposes endpoints for artifact metadata, versioning, custom rules, search, and administrative operations such as configuration management, logging control, and data import/export.

Development
none
No HTTPS
CORS: Unknown
Description enriched
Visit official documentation

Latency

387ms p95

Uptime

100.0% 30d

Playground

Verified

live

Endpoints

REST · JSON
GET

/groups/{groupId}/artifacts/{artifactId}

Get latest artifact

  • dereference (query) — Allows the user to specify if the content should be dereferenced when being returned
GET

/admin/artifactTypes

List artifact types

GET

/admin/config/properties

List all configuration properties

DELETE

/admin/config/properties/{propertyName}

Reset a configuration property

GET

/admin/config/properties/{propertyName}

Get configuration property value

PUT

/admin/config/properties/{propertyName}

Update a configuration property

GET

/admin/export

Export registry data

  • forBrowser (query) — 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.
POST

/admin/import

Import registry data

  • X-Registry-Preserve-GlobalId (header) — If this header is set to false, global ids of imported data will be ignored and replaced by next id in global id sequence. This allows to import any data even thought the global ids would cause a conflict.
  • X-Registry-Preserve-ContentId (header) — If this header is set to false, content ids of imported data will be ignored and replaced by next id in content id sequence. The mapping between content and artifacts will be preserved. This allows to import any data even thought the content ids would cause a conflict.
GET

/admin/loggers

List logging configurations

DELETE

/admin/loggers/{logger}

Removes logger configuration

GET

/admin/loggers/{logger}

Get a single logger configuration

PUT

/admin/loggers/{logger}

Set a logger's configuration

GET

/admin/roleMappings

List all role mappings

POST

/admin/roleMappings

Create a new role mapping

DELETE

/admin/roleMappings/{principalId}

Delete a role mapping

GET

/admin/roleMappings/{principalId}

Return a single role mapping

PUT

/admin/roleMappings/{principalId}

Update a role mapping

DELETE

/admin/rules

Delete all global rules

GET

/admin/rules

List global rules

POST

/admin/rules

Create global rule

DELETE

/admin/rules/{rule}

Delete global rule

GET

/admin/rules/{rule}

Get global rule configuration

PUT

/admin/rules/{rule}

Update global rule configuration

GET

/groups

List groups

  • limit (query, limit) — The number of groups to return. Defaults to 20.
  • offset (query, offset) — The number of groups to skip before starting the result set. Defaults to 0.
  • order (query) — Sort order, ascending (`asc`) or descending (`desc`).
  • orderby (query) — The field to sort by. Can be one of: * `name` * `createdOn`
POST

/groups

Create a new group

DELETE

/groups/{groupId}

Delete a group by the specified ID.

GET

/groups/{groupId}

Get a group by the specified ID.

DELETE

/groups/{groupId}/artifacts

Delete artifacts in group

GET

/groups/{groupId}/artifacts

List artifacts in group

  • limit (query, limit) — The number of artifacts to return. Defaults to 20.
  • offset (query, offset) — The number of artifacts to skip before starting the result set. Defaults to 0.
  • order (query) — Sort order, ascending (`asc`) or descending (`desc`).
  • orderby (query) — The field to sort by. Can be one of: * `name` * `createdOn`
POST

/groups/{groupId}/artifacts

Create artifact

  • X-Registry-ArtifactType (header) — Specifies the type of the artifact being added. Possible values include: * Avro (`AVRO`) * Protobuf (`PROTOBUF`) * JSON Schema (`JSON`) * Kafka Connect (`KCONNECT`) * OpenAPI (`OPENAPI`) * AsyncAPI (`ASYNCAPI`) * GraphQL (`GRAPHQL`) * Web Services Description Language (`WSDL`) * XML Schema (`XSD`)
  • X-Registry-ArtifactId (header) — A client-provided, globally unique identifier for the new artifact.
  • X-Registry-Version (header) — Specifies the version number of this initial version of the artifact content. This would typically be a simple integer or a SemVer value. If not provided, the server will assign a version number automatically (starting with version `1`).
  • ifExists (query) — Set this option to instruct the server on what to do if the artifact already exists.
  • canonical (query) — 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.
  • X-Registry-Description (header) — Specifies the description of artifact being added. Description must be ASCII-only string. If this is not provided, the server will extract the description from the artifact content.
  • X-Registry-Description-Encoded (header) — Specifies the description of artifact being added. Value of this must be Base64 encoded string. If this is not provided, the server will extract the description from the artifact content.
  • X-Registry-Name (header) — Specifies the name of artifact being added. Name must be ASCII-only string. If this is not provided, the server will extract the name from the artifact content.
  • X-Registry-Name-Encoded (header) — Specifies the name of artifact being added. Value of this must be Base64 encoded string. If this is not provided, the server will extract the name from the artifact content.
  • X-Registry-Content-Hash (header) — Specifies the (optional) hash of the artifact to be verified.
  • X-Registry-Hash-Algorithm (header) — The algorithm to use when checking the content validity. (available: SHA256, MD5; default: SHA256)
DELETE

/groups/{groupId}/artifacts/{artifactId}

Delete artifact

PUT

/groups/{groupId}/artifacts/{artifactId}

Update artifact

  • X-Registry-Version (header) — Specifies the version number of this new version of the artifact content. This would typically be a simple integer or a SemVer value. If not provided, the server will assign a version number automatically.
  • X-Registry-Name (header) — Specifies the artifact name of this new version of the artifact content. Name must be ASCII-only string. If this is not provided, the server will extract the name from the artifact content.
  • X-Registry-Name-Encoded (header) — Specifies the artifact name of this new version of the artifact content. Value of this must be Base64 encoded string. If this is not provided, the server will extract the name from the artifact content.
  • X-Registry-Description (header) — Specifies the artifact description of this new version of the artifact content. Description must be ASCII-only string. If this is not provided, the server will extract the description from the artifact content.
  • X-Registry-Description-Encoded (header) — Specifies the artifact description of this new version of the artifact content. Value of this must be Base64 encoded string. If this is not provided, the server will extract the description from the artifact content.
GET

/groups/{groupId}/artifacts/{artifactId}/meta

Get artifact metadata

POST

/groups/{groupId}/artifacts/{artifactId}/meta

Get artifact version metadata by content

  • canonical (query) — Parameter that can be set to `true` to indicate that the server should "canonicalize" the content when searching for a matching version. Canonicalization is unique to each artifact type, but typically involves removing any extra whitespace and formatting the content in a consistent manner.
PUT

/groups/{groupId}/artifacts/{artifactId}/meta

Update artifact metadata

GET

/groups/{groupId}/artifacts/{artifactId}/owner

Get artifact owner

PUT

/groups/{groupId}/artifacts/{artifactId}/owner

Update artifact owner

DELETE

/groups/{groupId}/artifacts/{artifactId}/rules

Delete artifact rules

GET

/groups/{groupId}/artifacts/{artifactId}/rules

List artifact rules

POST

/groups/{groupId}/artifacts/{artifactId}/rules

Create artifact rule

DELETE

/groups/{groupId}/artifacts/{artifactId}/rules/{rule}

Delete artifact rule

GET

/groups/{groupId}/artifacts/{artifactId}/rules/{rule}

Get artifact rule configuration

PUT

/groups/{groupId}/artifacts/{artifactId}/rules/{rule}

Update artifact rule configuration

PUT

/groups/{groupId}/artifacts/{artifactId}/state

Update artifact state

PUT

/groups/{groupId}/artifacts/{artifactId}/test

Test update artifact

GET

/groups/{groupId}/artifacts/{artifactId}/versions

List artifact versions

  • offset (query, offset) — The number of versions to skip before starting to collect the result set. Defaults to 0.
  • limit (query, limit) — The number of versions to return. Defaults to 20.
POST

/groups/{groupId}/artifacts/{artifactId}/versions

Create artifact version

  • X-Registry-Version (header) — Specifies the version number of this new version of the artifact content. This would typically be a simple integer or a SemVer value. It must be unique within the artifact. If this is not provided, the server will generate a new, unique version number for this new updated content.
  • X-Registry-Name (header) — Specifies the artifact name of this new version of the artifact content. Name must be ASCII-only string. If this is not provided, the server will extract the name from the artifact content.
  • X-Registry-Description (header) — Specifies the artifact description of this new version of the artifact content. Description must be ASCII-only string. If this is not provided, the server will extract the description from the artifact content.
  • X-Registry-Description-Encoded (header) — Specifies the artifact description of this new version of the artifact content. Value of this must be Base64 encoded string. If this is not provided, the server will extract the description from the artifact content.
  • X-Registry-Name-Encoded (header) — Specifies the artifact name of this new version of the artifact content. Value of this must be Base64 encoded string. If this is not provided, the server will extract the name from the artifact content.
GET

/groups/{groupId}/artifacts/{artifactId}/versions/{version}

Get artifact version

  • dereference (query) — Allows the user to specify if the content should be dereferenced when being returned
DELETE

/groups/{groupId}/artifacts/{artifactId}/versions/{version}/meta

Delete artifact version metadata

GET

/groups/{groupId}/artifacts/{artifactId}/versions/{version}/meta

Get artifact version metadata

PUT

/groups/{groupId}/artifacts/{artifactId}/versions/{version}/meta

Update artifact version metadata

GET

/groups/{groupId}/artifacts/{artifactId}/versions/{version}/references

Get artifact version

PUT

/groups/{groupId}/artifacts/{artifactId}/versions/{version}/state

Update artifact version state

GET

/ids/contentHashes/{contentHash}/

Get artifact content by SHA-256 hash

GET

/ids/contentHashes/{contentHash}/references

List artifact references by hash

GET

/ids/contentIds/{contentId}/

Get artifact content by ID

GET

/ids/contentIds/{contentId}/references

List artifact references by content ID

GET

/ids/globalIds/{globalId}

Get artifact by global ID

  • dereference (query) — Allows the user to specify if the content should be dereferenced when being returned
GET

/ids/globalIds/{globalId}/references

List artifact references by global ID

GET

/search/artifacts

Search for artifacts

  • name (query) — Filter by artifact name.
  • offset (query, offset) — The number of artifacts to skip before starting to collect the result set. Defaults to 0.
  • limit (query, limit) — The number of artifacts to return. Defaults to 20.
  • order (query) — Sort order, ascending (`asc`) or descending (`desc`).
  • orderby (query) — The field to sort by. Can be one of: * `name` * `createdOn`
  • labels (query) — Filter by label. Include one or more label to only return artifacts containing all of the specified labels.
  • properties (query) — Filter by one or more name/value property. Separate each name/value pair using a colon. For example `properties=foo:bar` will return only artifacts with a custom property named `foo` and value `bar`.
  • description (query) — Filter by description.
  • group (query) — Filter by artifact group.
  • globalId (query) — Filter by globalId.
  • contentId (query) — Filter by contentId.
POST

/search/artifacts

Search for artifacts by content

  • canonical (query) — 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.
  • artifactType (query) — 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.
  • offset (query, offset) — The number of artifacts to skip before starting to collect the result set. Defaults to 0.
  • limit (query, limit) — The number of artifacts to return. Defaults to 20.
  • order (query) — Sort order, ascending (`asc`) or descending (`desc`).
  • orderby (query) — The field to sort by. Can be one of: * `name` * `createdOn`
GET

/system/info

Get system information

GET

/system/limits

Get resource limits information

GET

/users/me

Get current user

64 endpoints auto-detected

curl -X GET \
  "http://apicurio.local/groups/{groupId}/artifacts/{artifactId}"

apicurio.local · HTTPS only