---
title: "Get User Schema V1"
method: GET
path: "/v1/schemas/{schema_id}"
tags: ["v1", "Schema Management"]
---

# Get User Schema V1

`GET /v1/schemas/{schema_id}`

Get a specific schema by ID.
    
    Returns the complete schema definition including node types, relationship types,
    and metadata. User must have read access to the schema.

## Path parameters

- `schema_id` string, required

## Response `200`

Schema retrieved successfully

- SchemaResponse — Response model for schema operations
  - `success` boolean, required
  - `data` UserGraphSchemaOutput — Complete user-defined graph schema
    - `id` string
    - `name` string, required
    - `description` string, nullable
    - `version` string
    - `user_id` union
      - string
      - object
    - `workspace_id` union
      - string
      - object
    - `organization_id` string, nullable — Organization ID this schema belongs to. Accepts legacy 'organization' alias.
    - `namespace_id` string, nullable — Namespace ID this schema belongs to. Accepts legacy 'namespace' alias.
    - `organization` union — DEPRECATED: Use 'organization_id' instead. Accepts Parse pointer or objectId.
      - string
      - object
    - `namespace` union — DEPRECATED: Use 'namespace_id' instead. Accepts Parse pointer or objectId.
      - string
      - object
    - `node_types` object — Custom node types (max 10 per schema)
    - `relationship_types` object — Custom relationship types (max 20 per schema)
    - `memory_policy` object, nullable — Default memory policy for memories using this schema. Includes mode ('auto', 'manual'), node_constraints (applied in auto mode when present), and OMO safety settings (consent, risk). Memory-level policies override schema-level.
    - `status` 'draft' | 'active' | 'deprecated' | 'archived'
    - `scope` 'personal' | 'workspace' | 'namespace' | 'organization' — Schema scopes available through the API
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable
    - `read_access` string[]
    - `write_access` string[]
    - `usage_count` integer
    - `last_used_at` string, date-time, nullable
  - `error` string, nullable
  - `code` integer

## Other responses

- `401` — Unauthorized
- `404` — Schema not found
- `422` — Validation Error
- `500` — Internal server error

---

[API](https://skmtc.net/papr-ai/apis/papr-memory-api.md) · [All operations](https://skmtc.net/papr-ai/apis/papr-memory-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/papr-ai/papr-memory-api/versions/b553be9aad37/schema)
