Supported endpoints
Schemas
Subjects
Compatibility
Config and mode
Content types
The registry acceptsapplication/vnd.schemaregistry.v1+json,
application/vnd.schemaregistry+json, application/json, application/octet-stream, */*, or a
missing Accept header. Any other value returns 412 Precondition Failed.
Unsupported endpoints
These return 404 Not Found:
Unsupported query parameters—
format, fetchMaxId, latestOnly, subjectPrefix,
defaultToGlobal—are ignored rather than rejected.
Unsupported features
Behavior differences
Endpoints that exist but don’t behave the way the Confluent documentation describes.GET /config always reports NONE
The global GET /config returns {"compatibilityLevel":"NONE"} regardless of the compatibility
level actually in force. The real default is BACKWARD.
Use GET /config/{subject} to read the level that applies to a subject.
Subject names map to Pulsar coordinates
Subject names are parsed into tenant, namespace, and topic components:
Subject names are limited to the characters
[a-zA-Z0-9._-] and 249 characters. Anything else
returns error code 42208.
Normalization is partial
?normalize=true performs real normalization for Avro and Protobuf schemas. For JSON
Schema it’s a no-op—the schema is stored as submitted.
On the /compatibility/* endpoints, normalize is parsed and then discarded for every format.
There is no undelete
A soft-deleted schema stays readable through?deleted=true and ?deletedOnly=true, but there is no
operation that restores it. Re-registering the same schema string after a soft delete creates a
new version rather than reviving the old one.
Hard delete (?permanent=true) requires a prior soft delete; calling it first returns 40405 for
a subject or 40407 for a version. Hard-deleted data is unrecoverable.
Deletes are blocked by references
Deleting a schema that another schema references returns error code 42206. Delete the referencing schemas first, or useGET /subjects/{subject}/versions/{version}/referencedby to find them.
PUT /mode availability varies
Mode changes—READONLY, READONLY_OVERRIDE, and IMPORT—depend on how the registry is deployed
for your cluster. On clusters that don’t support it, GET /mode always returns READWRITE and
PUT /mode fails.
IMPORT mode is normally set by
Universal Linking replication on the standby
cluster, not by client applications.
JSON $ref cannot reach external URLs
A JSON Schema $ref pointing at an external URL is rejected. Use
schema references to compose schemas within
the registry instead.
Broker-side validation uses different property names
Schema ID validation is configured withkop.kafka.* topic properties, not Confluent’s
confluent.* properties. See
Schema ID validation.