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

# List project model grants

> Lists the configured models a project can use, most recently granted first by default, with each grant's overrides and the model's name and provider config.



## OpenAPI

````yaml /api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/model-grants
openapi: 3.1.2
info:
  title: Omnara API
  version: 0.1.0
  description: Public HTTP API contract for Omnara.
servers:
  - url: https://api.omnara.com/v1
    description: Hosted Omnara
  - url: /api/v1
    description: Self-hosted Omnara, relative to the deployment origin
security:
  - bearerAuth: []
  - browserSessionCookie: []
tags:
  - name: Agents
    description: >-
      Launch agents, send inputs, manage the input backlog, and work with tool
      calls.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/agents/overview
  - name: Interactions
    description: List and resolve the approvals and questions that pause an agent.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/events/interactions
  - name: Actors
    description: Attribute agent inputs and interaction responses to external users.
    externalDocs:
      description: Guide
      url: >-
        https://docs.omnara.com/events/sending-input#who-said-that-actors-and-attribution
  - name: Events
    description: Read or stream the agent timeline, list turns, and download artifacts.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/events/streaming
  - name: Configs and Profiles
    description: >-
      Create agent configs, manage reusable launch profiles, and set up
      integrations.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/agents/configuration
  - name: Integrations
    description: >-
      Connect project integrations, route conversations, and manage launch
      settings.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/integrations/overview
  - name: Models
    description: Configure model providers and models, and grant projects access to them.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/organization/model-providers
  - name: Machines
    description: Register machines, control project access, and manage daemon tokens.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/machines/connect
  - name: Machine Pools
    description: Define machine pools and grant projects access to them.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/machines/pools
  - name: Secrets
    description: >-
      Manage secret ownership and versions, and inspect or grant project
      availability.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/organization/secrets
  - name: Skills
    description: Manage versioned skill ownership and load skill instructions on demand.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/tools/skills
  - name: Organizations and Projects
    description: Create organizations and projects and manage membership.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/organization/members
  - name: Users and API Keys
    description: >-
      The authenticated user, personal and organization API keys, and
      invitations.
    externalDocs:
      description: Guide
      url: https://docs.omnara.com/api/authentication
  - name: Machine Daemon
    description: Routes the Omnara machine daemon uses to connect a machine.
paths:
  /orgs/{orgID}/projects/{projectID}/model-grants:
    parameters:
      - name: orgID
        in: path
        description: Organization ID (org_...).
        required: true
        schema:
          type: string
          pattern: ^org_[a-z2-7]{26}$
      - name: projectID
        in: path
        description: Project ID (proj_...).
        required: true
        schema:
          type: string
          pattern: ^proj_[a-z2-7]{26}$
    get:
      tags:
        - Models
      summary: List project model grants
      description: >-
        Lists the configured models a project can use, most recently granted
        first by default, with each grant's overrides and the model's name and
        provider config.
      operationId: listProjectModelGrants
      parameters:
        - $ref: '#/components/parameters/ResourceNameFilter'
        - name: sort
          in: query
          schema:
            $ref: '#/components/schemas/ResourceListSort'
        - $ref: '#/components/parameters/PageLimit'
        - $ref: '#/components/parameters/PageCursor'
      responses:
        '200':
          description: Route response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectModelGrantsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  parameters:
    ResourceNameFilter:
      name: name
      in: query
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 200
      description: >-
        Case-insensitive glob over the list's logical name. `*` matches zero or
        more characters, `?` matches one character, and `\` escapes a wildcard.
    PageLimit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
        default: 50
      description: Maximum number of items to return in one page.
    PageCursor:
      name: cursor
      in: query
      required: false
      schema:
        type: string
        maxLength: 1024
      description: >-
        Opaque pagination cursor from a previous response's next_cursor. Omit
        for the first page.
  schemas:
    ResourceListSort:
      type: string
      description: >-
        Sort order for named resources that expose created and modified
        timestamps.
      default: '-created_at'
      enum:
        - name
        - '-name'
        - '-updated_at'
        - updated_at
        - '-created_at'
        - created_at
    ListProjectModelGrantsResponse:
      type: object
      additionalProperties: false
      required:
        - data
        - next_cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProjectModelGrantListItem'
        next_cursor:
          type:
            - string
            - 'null'
    ProjectModelGrantListItem:
      type: object
      additionalProperties: false
      required:
        - grant
        - model
        - effective_reasoning
      properties:
        grant:
          $ref: '#/components/schemas/ProjectModelGrant'
        model:
          $ref: '#/components/schemas/ConfiguredModelSummary'
        effective_reasoning:
          $ref: '#/components/schemas/ProjectModelGrantEffectiveReasoning'
    Error:
      type: object
      additionalProperties: false
      required:
        - error
        - code
      properties:
        error:
          type: string
          description: Human-readable error message. Do not match on it programmatically.
        current_digest:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
          description: >-
            Current file digest for file_content_conflict or
            expected_digest_required; absent if the file no longer exists. A
            replacement must be confirmed before retrying with this digest.
        issues:
          type: array
          description: >-
            Field-level problems when a submitted document (such as an agent
            config source) failed validation. Absent for errors that are not
            about a specific field.
          items:
            $ref: '#/components/schemas/AgentConfigErrorIssue'
        code:
          type: string
          description: Stable error code for programmatic handling.
          x-go-type: ErrorCode
          x-extensible-enum:
            - invalid_request
            - unauthorized
            - forbidden
            - not_found
            - conflict
            - file_content_conflict
            - file_read_only
            - expected_digest_required
            - not_a_file
            - gone
            - request_too_large
            - unsupported_media_type
            - unprocessable
            - upstream_unavailable
            - rate_limited
            - internal_error
            - service_unavailable
            - idempotency_key_conflict
            - agent_backlog_full
            - state_transition_conflict
            - managed_work_admission_denied
            - pending_work
            - not_wake_capable
            - daemon_runtime_unregistered
            - validation_failed
            - csrf_check_failed
            - authentication_unavailable
    ClientErrorCode:
      type: string
      description: >-
        Stable error code carried by 4XX statuses. Subset of the Error code enum
        whose statuses are client errors.
      x-extensible-enum:
        - invalid_request
        - validation_failed
        - unauthorized
        - forbidden
        - csrf_check_failed
        - not_found
        - conflict
        - file_content_conflict
        - file_read_only
        - expected_digest_required
        - not_a_file
        - idempotency_key_conflict
        - agent_backlog_full
        - state_transition_conflict
        - pending_work
        - not_wake_capable
        - gone
        - daemon_runtime_unregistered
        - request_too_large
        - unsupported_media_type
        - unprocessable
        - upstream_unavailable
        - rate_limited
    ServerErrorCode:
      type: string
      description: >-
        Stable error code carried by 5XX statuses. Subset of the Error code enum
        whose statuses are server errors.
      x-extensible-enum:
        - internal_error
        - service_unavailable
        - authentication_unavailable
    ProjectModelGrant:
      type: object
      additionalProperties: false
      required:
        - id
        - org_id
        - project_id
        - configured_model_id
        - supported_reasoning_efforts
        - input_modalities
        - output_modalities
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/ProjectModelGrantID'
        org_id:
          $ref: '#/components/schemas/OrganizationID'
        project_id:
          $ref: '#/components/schemas/ProjectID'
        configured_model_id:
          $ref: '#/components/schemas/ConfiguredModelID'
        context_window_tokens:
          type:
            - integer
            - 'null'
          description: >-
            Project context budget for input and output tokens, or omitted/null
            to inherit from the configured model. Triggers compaction when
            estimated input exceeds the remaining budget after output and safety
            reserves. The turn fails if compaction cannot make it fit.
        max_output_tokens:
          type:
            - integer
            - 'null'
          description: >-
            Project output-token ceiling, or omitted/null to inherit from the
            configured model.
        default_max_output_tokens:
          type:
            - integer
            - 'null'
          description: >-
            Project default per-request output-token cap, or omitted/null to
            inherit from the configured model.
        default_cache_retention:
          $ref: '#/components/schemas/ModelCacheRetention'
        supports_tools:
          type:
            - boolean
            - 'null'
          description: >-
            Project-level tool-use override, or omitted/null to inherit from the
            configured model.
        supports_reasoning:
          type:
            - boolean
            - 'null'
          description: >-
            Project-level reasoning override, or omitted/null to inherit from
            the configured model.
        default_reasoning_effort:
          type: string
          description: >-
            Project default reasoning effort, or omitted/empty to inherit from
            the configured model.
        supported_reasoning_efforts:
          type: array
          description: >-
            Project subset of configured-model reasoning efforts. Empty means
            inherit. When non-empty, default_reasoning_effort must resolve to
            one of these values.
          items:
            type: string
        input_modalities:
          type: array
          description: >-
            Project subset of configured-model input types (text, image, or
            file). Empty means inherit.
          items:
            type: string
        output_modalities:
          type: array
          description: >-
            Project subset of configured-model output types. Empty means
            inherit.
          items:
            type: string
        created_at:
          $ref: '#/components/schemas/Timestamp'
        updated_at:
          $ref: '#/components/schemas/Timestamp'
    ConfiguredModelSummary:
      type: object
      additionalProperties: false
      required:
        - id
        - org_id
        - model_provider_config_id
        - name
        - provider_config
        - provider_model_slug
        - created_at
        - updated_at
      properties:
        id:
          $ref: '#/components/schemas/ConfiguredModelID'
        org_id:
          $ref: '#/components/schemas/OrganizationID'
        model_provider_config_id:
          $ref: '#/components/schemas/ModelProviderConfigID'
        name:
          $ref: '#/components/schemas/ResourceName'
          description: >-
            User-assigned configured model name used by agent YAML as
            model.name.
        provider_config:
          $ref: '#/components/schemas/ResourceName'
          description: >-
            Name of the provider config that owns this model, used by agent YAML
            as model.provider_config.
        provider_model_slug:
          type: string
          description: >-
            Exact provider model slug sent to the provider endpoint by the
            current revision.
        created_at:
          $ref: '#/components/schemas/Timestamp'
        updated_at:
          $ref: '#/components/schemas/Timestamp'
    ProjectModelGrantEffectiveReasoning:
      type: object
      additionalProperties: false
      description: >-
        Reasoning settings agents in this project get for the model, after
        project grant overrides are applied to the configured model's current
        revision.
      required:
        - supports_reasoning
        - default_reasoning_effort
        - supported_reasoning_efforts
      properties:
        supports_reasoning:
          type: boolean
          description: >-
            Whether agents can use this model's reasoning features. False when
            the grant no longer fits the configured model.
        default_reasoning_effort:
          type: string
          description: >-
            Reasoning effort sent when an agent config does not set
            model.reasoning.effort. Empty means the provider default.
        supported_reasoning_efforts:
          type: array
          description: >-
            Values an agent config may set as model.reasoning.effort, including
            limits the model's API format imposes when the configured model
            lists none. Empty means any value is accepted.
          items:
            type: string
    AgentConfigErrorIssue:
      type: object
      additionalProperties: false
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: >-
            JSON Pointer (RFC 6901) to the offending field in the submitted
            document. An empty string refers to the whole document.
        message:
          type: string
          description: Human-readable description of the problem with this field.
        line:
          type: integer
          minimum: 1
          description: >-
            1-based line of the offending field in the submitted source, when it
            can be located.
        column:
          type: integer
          minimum: 1
          description: >-
            1-based column of the offending field in the submitted source, when
            it can be located.
    ProjectModelGrantID:
      type: string
      pattern: ^pmog_[a-z2-7]{26}$
    OrganizationID:
      type: string
      pattern: ^org_[a-z2-7]{26}$
    ProjectID:
      description: Project ID (proj_...).
      type: string
      pattern: ^proj_[a-z2-7]{26}$
    ConfiguredModelID:
      type: string
      pattern: ^mdl_[a-z2-7]{26}$
    ModelCacheRetention:
      type: string
      description: >-
        Prompt-cache preference for model requests; `short` when omitted.
        `short` applies the route's default caching (explicit cache breakpoints
        where the provider requires them) and, where the route accepts one, a
        stable conversation key for cache-aware routing. `long` prefers the
        route's extended cache lifetime where one exists (currently Anthropic's
        one-hour cache, which on Bedrock requires Claude 4.5 or newer) and
        behaves like `short` elsewhere. `none` sends no Omnara-managed cache
        controls or conversation key; providers may still cache prefixes on
        their own.
      enum:
        - none
        - short
        - long
    Timestamp:
      type: string
      format: date-time
    ModelProviderConfigID:
      type: string
      pattern: ^mpc_[a-z2-7]{26}$
    ResourceName:
      type: string
      minLength: 1
      maxLength: 64
      x-omnara-unicode-normalization: NFC
      description: >-
        Human-readable name. Spaces and punctuation are allowed; leading or
        trailing whitespace and invisible or control characters are not.
  responses:
    BadRequest:
      description: The request was invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication is required or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The authenticated principal is not authorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found or is not visible.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: >-
        The request conflicts with current resource state or idempotency
        history.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServiceUnavailable:
      description: The service dependency required to satisfy the request is unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ClientError:
      description: >-
        Any other client error. The body carries the shared Error envelope
        restricted to client error codes; statuses with a dedicated response
        above are documented precisely.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - error
              - code
            properties:
              error:
                type: string
                description: >-
                  Human-readable error message. Do not match on it
                  programmatically.
              code:
                $ref: '#/components/schemas/ClientErrorCode'
    ServerError:
      description: >-
        Any other server error. The body carries the shared Error envelope
        restricted to server error codes.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            required:
              - error
              - code
            properties:
              error:
                type: string
                description: >-
                  Human-readable error message. Do not match on it
                  programmatically.
              code:
                $ref: '#/components/schemas/ServerErrorCode'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Omnara personal or organization access token
      description: An opaque Omnara personal or organization bearer token.
    browserSessionCookie:
      type: apiKey
      in: cookie
      name: __Host-omnara_session
      description: >-
        Browser session cookie. HTTPS deployments use __Host-omnara_session;
        local HTTP development uses omnara_session.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.