apicurio.local – registry
Apicurio Registry is a datastore for standard event schemas and API designs. Apicurio Registry enables developers to manage and share the structure of their data using a REST interface. For example, client applications can dynamically push or pull the latest updates to or from the registry without needing to redeploy. Apicurio Registry also enables developers to create rules that govern how registry content can evolve over time. For example, this includes rules for content validation and version compatibility.
The Apicurio Registry REST API enables client applications to manage the artifacts in the registry. This API provides create, read, update, and delete operations for schema and API artifacts, rules, versions, and metadata.
The supported artifact types include:
- Apache Avro schema
- AsyncAPI specification
- Google protocol buffers
- GraphQL schema
- JSON Schema
- Kafka Connect schema
- OpenAPI specification
- Web Services Description Language
- XML Schema Definition
Important: The Apicurio Registry REST API is available from https://MY-REGISTRY-URL/apis/registry/v2 by default. Therefore you must prefix all API operation paths with ../apis/registry/v2 in this case. For example: ../apis/registry/v2/ids/globalIds/{globalId}.
- Homepage
- https://api.apis.guru/v2/specs/apicurio.local:registry/2.4.x.json
- Provider
- apicurio.local:registry / registry
- OpenAPI version
- 3.0.2
- Spec (JSON)
- https://api.apis.guru/v2/specs/apicurio.local/registry/2.4.x/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/apicurio.local/registry/2.4.x/openapi.yaml
Tools (66)
Extracted live via the executor SDK.
-
admin.createRoleMappingCreates 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)
- A server error occurred (HTTP error
-
admin.deleteRoleMappingDeletes 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)
- No role mapping for the principalId exists (HTTP error
-
admin.exportDataExports registry data as a ZIP archive.
-
admin.getConfigPropertyReturns 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)
- Property not found or not configured (HTTP error
-
admin.getLogConfigurationReturns the configured logger configuration for the provided logger name, if no logger configuration is persisted it will return the current default log configuration in the system.
-
admin.getRoleMappingGets the details of a single role mapping (by
principalId).This operation can fail for the following reasons:
- No role mapping for the
principalIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No role mapping for the
-
admin.importDataImports registry data that was previously exported using the
/admin/exportoperation. -
admin.listConfigPropertiesReturns 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)
- A server error occurred (HTTP error
-
admin.listLogConfigurationsList all of the configured logging levels. These override the default logging configuration.
-
admin.listRoleMappingsGets 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)
- A server error occurred (HTTP error
-
admin.removeLogConfigurationRemoves the configured logger configuration (if any) for the given logger.
-
admin.resetConfigPropertyResets 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)
- Property not found or not configured (HTTP error
-
admin.setLogConfigurationConfigures the logger referenced by the provided logger name with the given configuration.
-
admin.updateConfigPropertyUpdates 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)
- Property not found or not configured (HTTP error
-
admin.updateRoleMappingUpdates 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)
- No role mapping for the principalId exists (HTTP error
-
artifactRules.createArtifactRuleAdds a rule to the list of rules that get applied to the artifact when adding new versions. All configured rules must pass to successfully add a new artifact version.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - Rule (named in the request body) is unknown (HTTP error
400) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactRules.deleteArtifactRuleDeletes a rule from the artifact. This results in the rule no longer applying for this artifact. If this is the only rule configured for the artifact, this is the same as deleting all rules, and the globally configured rules now apply to this artifact.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No rule with this name/type is configured for this artifact (HTTP error
404) - Invalid rule type (HTTP error
400) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactRules.deleteArtifactRulesDeletes all of the rules configured for the artifact. After this is done, the global rules apply to the artifact again.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactRules.getArtifactRuleConfigReturns information about a single rule configured for an artifact. This is useful when you want to know what the current configuration settings are for a specific rule.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No rule with this name/type is configured for this artifact (HTTP error
404) - Invalid rule type (HTTP error
400) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactRules.listArtifactRulesReturns a list of all rules configured for the artifact. The set of rules determines how the content of an artifact can evolve over time. If no rules are configured for an artifact, the set of globally configured rules are used. If no global rules are defined, there are no restrictions on content evolution.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactRules.testUpdateArtifactTests whether an update to the artifact's content would succeed for the provided content. Ultimately, this applies any rules configured for the artifact against the given content to determine whether the rules would pass or fail, but without actually updating the artifact content.
The body of the request should be the raw content of the artifact. This is typically in JSON format for most of the supported types, but may be in another format for a few (for example,
PROTOBUF).The update could fail for a number of reasons including:
- Provided content (request body) was empty (HTTP error
400) - No artifact with the
artifactIdexists (HTTP error404) - The new content violates one of the rules configured for the artifact (HTTP error
409) - The provided artifact type is not recognized (HTTP error
404) - A server error occurred (HTTP error
500)
When successful, this operation simply returns a No Content response. This response indicates that the content is valid against the configured content rules for the artifact (or the global rules if no artifact rules are enabled).
- Provided content (request body) was empty (HTTP error
-
artifactRules.updateArtifactRuleConfigUpdates the configuration of a single rule for the artifact. The configuration data is specific to each rule type, so the configuration of the
COMPATIBILITYrule is in a different format from the configuration of theVALIDITYrule.This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No rule with this name/type is configured for this artifact (HTTP error
404) - Invalid rule type (HTTP error
400) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifacts.createArtifactCreates a new artifact by posting the artifact content. The body of the request should be the raw content of the artifact. This is typically in JSON format for most of the supported types, but may be in another format for a few (for example,
PROTOBUF).The registry attempts to figure out what kind of artifact is being added from the following supported list:
- Avro (
AVRO) - Protobuf (
PROTOBUF) - JSON Schema (
JSON) - Kafka Connect (
KCONNECT) - OpenAPI (
OPENAPI) - AsyncAPI (
ASYNCAPI) - GraphQL (
GRAPHQL) - Web Services Description Language (
WSDL) - XML Schema (
XSD)
Alternatively, you can specify the artifact type using the
X-Registry-ArtifactTypeHTTP request header, or include a hint in the request'sContent-Type. For example:An artifact is created using the content provided in the body of the request. This content is created under a unique artifact ID that can be provided in the request using the
X-Registry-ArtifactIdrequest header. If not provided in the request, the server generates a unique ID for the artifact. It is typically recommended that callers provide the ID, because this is typically a meaningful identifier, and for most use cases should be supplied by the caller.If an artifact with the provided artifact ID already exists, the default behavior is for the server to reject the content with a 409 error. However, the caller can supply the
ifExistsquery parameter to alter this default behavior. TheifExistsquery parameter can have one of the following values:FAIL(default) - server rejects the content with a 409 errorUPDATE- server updates the existing artifact and returns the new metadataRETURN- server does not create or add content to the server, but instead returns the metadata for the existing artifactRETURN_OR_UPDATE- server returns an existing version that matches the provided content if such a version exists, otherwise a new version is created
This operation may fail for one of the following reasons:
- An invalid
ArtifactTypewas indicated (HTTP error400) - No
ArtifactTypewas indicated and the server could not determine one from the content (HTTP error400) - Provided content (request body) was empty (HTTP error
400) - An artifact with the provided ID already exists (HTTP error
409) - The content violates one of the configured global rules (HTTP error
409) - A server error occurred (HTTP error
500)
- Avro (
-
artifacts.deleteArtifactDeletes 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
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with the
-
artifacts.deleteArtifactsInGroupDeletes all of the artifacts that exist in a given group.
-
artifacts.getContentByGlobalIdGets 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
globalIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact version with this
-
artifacts.getContentByHashGets the content for an artifact version in the registry using the SHA-256 hash of the content. This content hash may be shared by multiple artifact versions in the case where the artifact versions have identical content.
This operation may fail for one of the following reasons:
- No content with this
contentHashexists (HTTP error404) - A server error occurred (HTTP error
500)
- No content with this
-
artifacts.getContentByIdGets 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
contentIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No content with this
-
artifacts.getLatestArtifactReturns the latest version of the artifact in its raw form. The
Content-Typeof the response depends on the artifact type. In most cases, this isapplication/json, but for some types it may be different (for example,PROTOBUF).This operation may fail for one of the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifacts.listArtifactsInGroupReturns a list of all artifacts in the group. This list is paged.
-
artifacts.referencesByContentHashReturns 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)
- A server error occurred (HTTP error
-
artifacts.referencesByContentIdReturns 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)
- A server error occurred (HTTP error
-
artifacts.referencesByGlobalIdReturns 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)
- A server error occurred (HTTP error
-
artifacts.updateArtifactUpdates an artifact by uploading new content. The body of the request can be the raw content of the artifact or a JSON object containing both the raw content and a set of references to other artifacts.. This is typically in JSON format for most of the supported types, but may be in another format for a few (for example,
PROTOBUF). The type of the content should be compatible with the artifact's type (it would be an error to update anAVROartifact with newOPENAPIcontent, for example).The update could fail for a number of reasons including:
- Provided content (request body) was empty (HTTP error
400) - No artifact with the
artifactIdexists (HTTP error404) - The new content violates one of the rules configured for the artifact (HTTP error
409) - A server error occurred (HTTP error
500)
When successful, this creates a new version of the artifact, making it the most recent (and therefore official) version of the artifact.
- Provided content (request body) was empty (HTTP error
-
artifacts.updateArtifactStateUpdates the state of the artifact. For example, you can use this to mark the latest version of an artifact as
DEPRECATED. The operation changes the state of the latest version of the artifact. If multiple versions exist, only the most recent is changed.This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
artifactType.listArtifactTypesGets a list of all the configured artifact types.
This operation can fail for the following reasons:
- A server error occurred (HTTP error
500)
- A server error occurred (HTTP error
-
globalRules.createGlobalRuleAdds 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)
- The rule type is unknown (HTTP error
-
globalRules.deleteAllGlobalRulesDeletes all globally configured rules.
This operation can fail for the following reasons:
- A server error occurred (HTTP error
500)
- A server error occurred (HTTP error
-
globalRules.deleteGlobalRuleDeletes 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
ruleexists (HTTP error404) - Rule cannot be deleted (HTTP error
409) - A server error occurred (HTTP error
500)
- Invalid rule name/type (HTTP error
-
globalRules.getGlobalRuleConfigReturns 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
ruleexists (HTTP error404) - A server error occurred (HTTP error
500)
- Invalid rule name/type (HTTP error
-
globalRules.listGlobalRulesGets 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)
- A server error occurred (HTTP error
-
globalRules.updateGlobalRuleConfigUpdates 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
ruleexists (HTTP error404) - A server error occurred (HTTP error
500)
- Invalid rule name/type (HTTP error
-
groups.createGroupCreates a new group.
This operation can fail for the following reasons:
- A server error occurred (HTTP error
500) - The group already exist (HTTP error
409)
- A server error occurred (HTTP error
-
groups.deleteGroupByIdDeletes a group by identifier.
This operation can fail for the following reasons:
- A server error occurred (HTTP error
500) - The group does not exist (HTTP error
404)
- A server error occurred (HTTP error
-
groups.getGroupByIdReturns a group using the specified id.
This operation can fail for the following reasons:
- No group exists with the specified ID (HTTP error
404) - A server error occurred (HTTP error
500)
- No group exists with the specified ID (HTTP error
-
groups.listGroupsReturns a list of all groups. This list is paged.
-
metadata.deleteArtifactVersionMetaDataDeletes the user-editable metadata properties of the artifact version. Any properties that are not user-editable are preserved.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
metadata.getArtifactMetaDataGets the metadata for an artifact in the registry. The returned metadata includes both generated (read-only) and editable metadata (such as name and description).
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
metadata.getArtifactOwnerGets the owner of an artifact in the registry.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
metadata.getArtifactVersionMetaDataRetrieves the metadata for a single version of the artifact. The version metadata is a subset of the artifact metadata and only includes the metadata that is specific to the version (for example, this doesn't include
modifiedOn).This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
metadata.getArtifactVersionMetaDataByContentGets the metadata for an artifact that matches the raw content. Searches the registry for a version of the given artifact matching the content provided in the body of the POST.
This operation can fail for the following reasons:
- Provided content (request body) was empty (HTTP error
400) - No artifact with the
artifactIdexists (HTTP error404) - No artifact version matching the provided content exists (HTTP error
404) - A server error occurred (HTTP error
500)
- Provided content (request body) was empty (HTTP error
-
metadata.updateArtifactMetaDataUpdates the editable parts of the artifact's metadata. Not all metadata fields can be updated. For example,
createdOnandcreatedByare both read-only properties.This operation can fail for the following reasons:
- No artifact with the
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with the
-
metadata.updateArtifactOwnerChanges the ownership of an artifact.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
metadata.updateArtifactVersionMetaDataUpdates the user-editable portion of the artifact version's metadata. Only some of the metadata fields are editable by the user. For example,
descriptionis editable, butcreatedOnis not.This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
search.searchArtifactsReturns a paginated list of all artifacts that match the provided filter criteria.
-
search.searchArtifactsByContentReturns a paginated list of all artifacts with at least one version that matches the posted content.
-
system.getResourceLimitsThis operation retrieves the list of limitations on used resources, that are applied on the current instance of Registry.
-
system.getSystemInfoThis operation retrieves information about the running registry system, such as the version of the software and when it was built.
-
users.getCurrentUserInfoReturns information about the currently authenticated user.
-
versions.createArtifactVersionCreates a new version of the artifact by uploading new content. The configured rules for the artifact are applied, and if they all pass, the new content is added as the most recent version of the artifact. If any of the rules fail, an error is returned.
The body of the request can be the raw content of the new artifact version, or the raw content and a set of references pointing to other artifacts, and the type of that content should match the artifact's type (for example if the artifact type is
AVROthen the content of the request should be an Apache Avro document).This operation can fail for the following reasons:
- Provided content (request body) was empty (HTTP error
400) - No artifact with this
artifactIdexists (HTTP error404) - The new content violates one of the rules configured for the artifact (HTTP error
409) - A server error occurred (HTTP error
500)
- Provided content (request body) was empty (HTTP error
-
versions.getArtifactVersionRetrieves a single version of the artifact content. Both the
artifactIdand the uniqueversionnumber must be provided. TheContent-Typeof the response depends on the artifact type. In most cases, this isapplication/json, but for some types it may be different (for example,PROTOBUF).This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
versions.getArtifactVersionReferencesRetrieves a single version of the artifact content. Both the
artifactIdand the uniqueversionnumber must be provided. TheContent-Typeof the response depends on the artifact type. In most cases, this isapplication/json, but for some types it may be different (for example,PROTOBUF).This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
versions.listArtifactVersionsReturns a list of all versions of the artifact. The result set is paged.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
versions.updateArtifactVersionStateUpdates the state of a specific version of an artifact. For example, you can use this operation to disable a specific version.
This operation can fail for the following reasons:
- No artifact with this
artifactIdexists (HTTP error404) - No version with this
versionexists (HTTP error404) - A server error occurred (HTTP error
500)
- No artifact with this
-
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools