> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List entity schemas

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns every entity schema the app defines, plus the built-in `User` entity when it has custom fields.

Each entry pairs the entity name with its JSON Schema: the entity's `properties`, its `required` fields, and its row-level security rules under `rls`. To read one schema on its own, use [Get entity schema](/api-reference/get-entity-schema).

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/entity-schemas
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/entity-schemas:
    get:
      summary: List entity schemas
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns every entity schema the app defines, plus the built-in `User`
        entity when it has custom fields.


        Each entry pairs the entity name with its JSON Schema: the entity's
        `properties`, its `required` fields, and its row-level security rules
        under `rls`. To read one schema on its own, use [Get entity
        schema](/api-reference/get-entity-schema).


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: list_schemas_api_apps__app_id__entity_schemas_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app whose entity schemas you want.
            title: App Id
          description: ID of the app whose entity schemas you want.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '200':
          description: The app's entity schemas.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEntitySchemasResponse'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, or you used a workspace
            API key.
        '404':
          description: App not found.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ListEntitySchemasResponse:
      properties:
        schemas:
          items:
            $ref: '#/components/schemas/EntitySchema'
          type: array
          title: Schemas
          description: The app's entity schemas.
        total:
          type: integer
          title: Total
          description: Number of schemas in `schemas`.
          example: 3
      type: object
      required:
        - schemas
        - total
      title: ListEntitySchemasResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    EntitySchema:
      properties:
        entity_name:
          type: string
          title: Entity Name
          description: >-
            Name of the entity. `User` is the built-in user entity; every other
            name is one the app defines.
          example: Invoice
        entity_schema:
          additionalProperties: true
          type: object
          title: Entity Schema
          description: >-
            The entity's JSON Schema, including its `properties`, `required`
            fields, and any `rls` rules. For `User` this holds only the custom
            fields added on top of the built-in ones.
          example:
            name: Invoice
            properties:
              amount:
                description: Total amount in cents
                type: number
              status:
                enum:
                  - draft
                  - sent
                  - paid
                type: string
            required:
              - amount
            rls:
              read:
                created_by: '{{user.email}}'
            type: object
      type: object
      required:
        - entity_name
        - entity_schema
      title: EntitySchema
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````