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.
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.
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.
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}"