---
title: "read schema"
method: POST
path: "/v1/tenants/{tenant_id}/schemas/read"
tags: ["Schema"]
---

# read schema

`POST /v1/tenants/{tenant_id}/schemas/read`

## Path parameters

- `tenant_id` string, required

## Request body

- SchemaReadBody — SchemaReadRequest is the request message for the Read method in the Schema service. It contains tenant_id and metadata about the schema to be read.
  - `metadata` SchemaReadRequestMetadata — SchemaReadRequestMetadata provides additional information for the Schema Read request. It contains schema_version to specify which version of the schema should be read.
    - `schema_version` string — schema_version is the string that identifies the version of the schema to be read.

## Response `200`

A successful response.

- SchemaReadResponse — SchemaReadResponse is the response message for the Read method in the Schema service. It returns the requested schema.
  - `schema` SchemaDefinition — The SchemaDefinition message provides definitions for entities and rules, and includes references to clarify whether a name refers to an entity or a rule.
    - `entityDefinitions` object — Map of entity definitions. The key is the entity name, and the value is the corresponding EntityDefinition.
    - `ruleDefinitions` object — Map of rule definitions. The key is the rule name, and the value is the corresponding RuleDefinition.
    - `references` object — Map of references to signify whether a string refers to an entity or a rule.

## Other responses

- `default` — An unexpected error response.

## Changes

- **2025-12-28** `f37e45046dd2` — 1 breaking, 1 warning, 18 info
  - the `details/items/additionalProperties/` response's property type changed from `object` to no type for status `default`
  - removed the optional property `schema/entityDefinitions/additionalProperties/permissions/additionalProperties/child/leaf/call/arguments/items/contextAttribute` from the response with the `200` status
  - added the optional property `schema/ruleDefinitions/additionalProperties/expression/expr/callExpr` to the response with the `200` status
  - added the optional property `schema/ruleDefinitions/additionalProperties/expression/expr/comprehensionExpr` to the response with the `200` status
  - …16 more
- **2024-08-26** `b7278a55155e` — 15 info
  - added the optional property `schema/entityDefinitions/additionalProperties/permissions/additionalProperties/child/leaf` to the response with the `200` status
  - added the optional property `schema/entityDefinitions/additionalProperties/permissions/additionalProperties/child/rewrite` to the response with the `200` status
  - added the optional property `schema/ruleDefinitions/additionalProperties/expression/typeMap/additionalProperties/abstractType` to the response with the `200` status
  - added the optional property `schema/ruleDefinitions/additionalProperties/expression/typeMap/additionalProperties/dyn` to the response with the `200` status
  - …11 more
- …earlier changes not shown

[Full history](https://skmtc.dev/permify/apis/permify-api/changes/v1/tenants/:tenant_id/schemas/read/post.md)

---

[API](https://skmtc.dev/permify/apis/permify-api.md) · [All operations](https://skmtc.dev/permify/apis/permify-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/permify/permify-api/revisions/73b7d5b3742e/schema)
