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

# عرض النماذج

> تصفح النماذج الأصلية في Gateway عبر Phaseo Gateway، مع تفاصيل اختيارية عن توفر النماذج غير القابلة للتوجيه.

تعيد نقطة النهاية هذه افتراضيًا النماذج القابلة للتوجيه حاليًا فقط. اضبط `availability=all` لتضمين النماذج المعروفة غير المتاحة حاليًا.

تُخزّن استجابات الكتالوج مؤقتًا لخمس دقائق، وقد تُقدّم لخمس دقائق إضافية أثناء إعادة التحقق من صلاحية التخزين المؤقت. ينطبق ذلك على صيغ JSON وRSS وAtom للكتالوج الحالي؛ أما موجز الإصدارات فله تخزين مؤقت مستقل وأقصر للاستطلاع.

`GET /models/me` مخصص لتصفية مستقبلية للنماذج وفق ضوابط المتصل الحالي. وهو يعيد حاليًا `501 not implemented`، لذا استخدم `GET /models` للوصول إلى كتالوج Gateway المشترك في الوقت الحالي.

## عوامل تصفية مفيدة

* يستخدم `endpoints` أسماء عامة مثل `chat.completions` و`responses` و`messages`
* يرشح `status` النماذج حسب دورة حياتها، مثل `active` أو `deprecated` أو `retired`
* يرشح `provider` حسب معرّف المزوّد العام، مثل `openai` أو `anthropic` أو `google_vertex`
* يرشح `provider_status` حسب مستوى طرح المزوّد، مثل `active` أو `beta` أو `alpha` أو `not_ready`
* يرشح `provider_routing_status` حسب حالة توجيه المزوّد
* يرشح `model_routing_status` حسب حالة توجيه النموذج
* يرشح `capability_status` حسب حالة إمكانات المزوّد لمطابقة نقطة النهاية المطلوبة
* يرشح `provider_availability_status` حسب توفر المزوّد، مثل `active` أو `coming_soon` أو `inactive`
* يرشح `provider_availability_reason` حسب سبب توفر المزوّد، مثل `preview_only` أو `provider_not_ready` أو `gated` أو `access_limited` أو `region_limited`
* يرشح `organisation` حسب بادئة معرّف النموذج العام، مثل `anthropic` في `anthropic/claude-3-haiku`
* القيمة الافتراضية هي `availability=active`
* يتضمن `availability=all` النماذج أو المزوّدين ذوي الحالة `coming_soon` أو `inactive` أو غير القابلين للتوجيه للعامة بعد
* `input_modalities` اسم بديل لـ `input_types`
* `output_modalities` اسم بديل لـ `output_types`
* `supported_parameters` اسم بديل لـ `params`

للاطلاع على عقد نقطة النهاية لنموذج واحد، استدعِ `GET /models/{author}/{slug}/endpoints`. تفصل الاستجابة مسارات المزوّدين وتعرض في كل صف المسار العام والوسائط وتفاصيل المعلمات المدعومة والتوفر وحالة التوجيه واسم النموذج لدى المزوّد وملخص الأسعار.

قد تتضمن إدخالات المزوّد أيضًا:

* `availability_status`
* `availability_reason`
* `provider_status`
* `provider_routing_status`
* `model_routing_status`
* `capability_status`

### الاستجابة

```json theme={null}
{
  "ok": true,
  "privacy_scope": "shared",
  "availability_mode": "all",
  "limit": 50,
  "offset": 0,
  "total": 99,
  "models": [
    {
      "id": "anthropic/claude-3-haiku",
      "canonical_slug": "anthropic/claude-3-haiku",
      "model_id": "anthropic/claude-3-haiku",
      "name": "anthropic/claude-3-haiku",
      "description": "anthropic/claude-3-haiku via Phaseo Gateway. Supports chat.completions, messages, responses.",
      "created": null,
      "release_date": null,
      "deprecation_date": null,
      "retirement_date": null,
      "status": "active",
      "availability": {
        "status": "coming_soon",
        "provider_count": 1,
        "active_provider_count": 0,
        "inactive_provider_count": 0
      },
      "organisation_id": "anthropic",
      "organisation_name": null,
      "organisation_colour": null,
      "aliases": [],
      "endpoints": ["chat.completions", "messages", "responses"],
      "input_types": ["text"],
      "output_types": ["text"],
      "architecture": {
        "modality": "text->text",
        "input_modalities": ["text"],
        "output_modalities": ["text"],
        "tokenizer": null,
        "instruct_type": "chat"
      },
      "providers": [
        {
          "api_provider_id": "anthropic",
          "api_provider_name": "Anthropic",
          "provider_model_slug": "claude-3-haiku-20240307",
          "is_active_gateway": false,
          "availability_status": "coming_soon",
          "availability_reason": "preview_only",
          "provider_status": "beta",
          "provider_routing_status": "active",
          "model_routing_status": "active",
          "capability_status": "coming_soon",
          "effective_from": "2026-06-01T00:00:00Z",
          "effective_to": null,
          "endpoints": ["responses"],
          "input_modalities": ["text"],
          "output_modalities": ["text"],
          "params": [
            "max_tokens",
            "response_format",
            "stop",
            "structured_outputs",
            "temperature",
            "tool_choice",
            "tools",
            "top_k",
            "top_p"
          ],
          "supported_parameters": [
            "max_tokens",
            "response_format",
            "stop",
            "structured_outputs",
            "temperature",
            "tool_choice",
            "tools",
            "top_k",
            "top_p"
          ],
          "supported_parameters_detail": {
            "temperature": {
              "supported": true,
              "type": "number",
              "minimum": 0,
              "maximum": 2
            }
          }
        }
      ],
      "supported_params": [
        "max_tokens",
        "response_format",
        "stop",
        "structured_outputs",
        "temperature",
        "tool_choice",
        "tools",
        "top_k",
        "top_p"
      ],
      "supported_params_detail": {
        "temperature": {
          "supported": true,
          "type": "number",
          "minimum": 0,
          "maximum": 2,
          "providers": ["openai"]
        }
      },
      "supported_parameters": [
        "max_tokens",
        "response_format",
        "stop",
        "structured_outputs",
        "temperature",
        "tool_choice",
        "tools",
        "top_k",
        "top_p"
      ],
      "supported_parameters_detail": {
        "temperature": {
          "supported": true,
          "type": "number",
          "minimum": 0,
          "maximum": 2,
          "providers": ["openai"]
        }
      },
      "top_provider_id": null,
      "top_provider": {
        "context_length": null,
        "max_completion_tokens": null,
        "is_moderated": false
      },
      "pricing": {
        "prompt": null,
        "completion": null,
        "request": null,
        "image": null,
        "input_cache_read": null,
        "input_cache_write": null,
        "web_search": null
      },
      "pricing_detail": {
        "pricing_plan": "standard",
        "meters": {}
      },
      "per_request_limits": null
    }
  ]
}
```

`availability_reason` هو الحقل الوحيد الذي يوضح سبب كون إدخال المزوّد نشطًا أو متاحًا للمعاينة فقط أو غير نشط.


## OpenAPI

````yaml ar/openapi/v1/openapi.localized.yaml GET /models
openapi: 3.0.3
info:
  title: Phaseo Gateway API
  description: >-
    واجهة API للبوابة تتيح الوصول إلى نماذج ذكاء اصطناعي متنوعة عبر نقاط نهاية
    متوافقة مع OpenAI.
  version: 1.0.0
  contact:
    name: Phaseo
    url: https://phaseo.app
    email: danielbutler500@gmail.com
servers:
  - url: https://api.phaseo.app/v1
    description: التوجيه العالمي
security:
  - BearerAuth: []
tags:
  - name: Gateway
    description: Core Phaseo Gateway operations.
paths:
  /models:
    get:
      tags:
        - Gateway
      summary: عرض نماذج البوابة
      description: >-
        يعرض نماذج البوابة المشتركة وغير المخفية. يعرض افتراضيًا النماذج القابلة
        للتوجيه علنًا حاليًا؛ استخدم `availability=all` لتضمين سجلات التوفر غير
        القابلة للتوجيه.
      operationId: listModels
      parameters:
        - name: search
          in: query
          description: >-
            بحث غير حساس لحالة الأحرف في معرّفات النماذج وأسمائها وأوصافها
            والمؤسسات.
          schema:
            type: string
            maxLength: 200
        - name: provider_search
          in: query
          description: بحث غير حساس لحالة الأحرف عن المزود أو مؤسسة النموذج.
          schema:
            type: string
            maxLength: 100
        - name: input_modality
          in: query
          description: اشتراط نمط إدخال مدعوم.
          schema:
            type: string
            enum:
              - text
              - image
              - audio
              - video
        - name: minimum_context_tokens
          in: query
          description: اشتراط هذا العدد على الأقل من رموز سياق الإدخال.
          schema:
            type: number
            minimum: 0
        - name: maximum_input_price_per_million
          in: query
          description: أقصى سعر بالدولار لكل مليون رمز إدخال.
          schema:
            type: number
            minimum: 0
        - name: gateway_available_only
          in: query
          description: عرض النماذج التي لديها عرض بوابة واحد على الأقل قابل للتوجيه فقط.
          schema:
            type: boolean
            default: false
        - name: sort_by
          in: query
          description: الحقل المستخدم لترتيب نتائج اكتشاف النماذج.
          schema:
            type: string
            enum:
              - relevance
              - input_price
              - output_price
              - context_length
              - provider_count
            default: relevance
        - name: sort_order
          in: query
          description: >-
            اتجاه ترتيب اختياري. تُرتّب الأسعار تصاعديًا افتراضيًا، والقيم
            الرقمية الأخرى تنازليًا.
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: endpoints
          in: query
          description: التصفية حسب نقاط النهاية
          schema:
            type: array
            items:
              type: string
        - name: organisation
          in: query
          description: التصفية حسب المؤسسة
          schema:
            oneOf:
              - $ref: '#/components/schemas/OrganisationId'
              - type: array
                items:
                  $ref: '#/components/schemas/OrganisationId'
        - name: provider
          in: query
          description: التصفية حسب معرّف المزوّد
          schema:
            type: array
            items:
              type: string
        - name: provider_status
          in: query
          description: التصفية حسب حالة طرح المزوّد
          schema:
            type: array
            items:
              type: string
        - name: provider_routing_status
          in: query
          description: التصفية حسب حالة توجيه المزوّد
          schema:
            type: array
            items:
              type: string
        - name: model_routing_status
          in: query
          description: التصفية حسب حالة توجيه النموذج
          schema:
            type: array
            items:
              type: string
        - name: capability_status
          in: query
          description: التصفية حسب حالة قدرات المزوّد
          schema:
            type: array
            items:
              type: string
        - name: provider_availability_status
          in: query
          description: التصفية حسب حالة توفر المزوّد
          schema:
            type: array
            items:
              type: string
        - name: provider_availability_reason
          in: query
          description: التصفية حسب سبب توفر المزوّد
          schema:
            type: array
            items:
              type: string
        - name: status
          in: query
          description: التصفية حسب حالة النموذج
          schema:
            type: array
            items:
              type: string
        - name: input_types
          in: query
          description: التصفية حسب أنواع الإدخال
          schema:
            type: array
            items:
              type: string
        - name: input_modalities
          in: query
          description: اسم مستعار عام لـ `input_types`.
          schema:
            type: array
            items:
              type: string
        - name: output_types
          in: query
          description: التصفية حسب أنواع الإخراج
          schema:
            type: array
            items:
              type: string
        - name: output_modalities
          in: query
          description: اسم مستعار عام لـ `output_types`.
          schema:
            type: array
            items:
              type: string
        - name: params
          in: query
          description: التصفية حسب المعلمات
          schema:
            type: array
            items:
              type: string
        - name: supported_parameters
          in: query
          description: اسم مستعار عام لـ `params`.
          schema:
            type: array
            items:
              type: string
        - name: availability
          in: query
          description: >-
            مرشح التوفر. يعرض `active` النماذج القابلة للتوجيه علنًا فقط؛ ويشمل
            `all` سجلات التوفر غير القابلة للتوجيه.
          schema:
            type: string
            enum:
              - active
              - all
            default: active
        - name: limit
          in: query
          description: تحديد عدد النتائج
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 250
        - name: offset
          in: query
          description: الإزاحة لأغراض ترقيم الصفحات
          schema:
            type: integer
            default: 0
            minimum: 0
            maximum: 5000
        - name: format
          in: query
          description: تنسيق الاستجابة. القيمة الافتراضية هي `json`.
          schema:
            type: string
            enum:
              - json
              - rss
              - atom
            default: json
        - name: feed
          in: query
          description: اسم مستعار لـ `format`. يقبل `json` أو `rss` أو `atom`.
          schema:
            type: string
            enum:
              - json
              - rss
              - atom
      responses:
        '200':
          description: قائمة النماذج
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayModelsResponse'
            application/rss+xml:
              schema:
                type: string
                description: موجز RSS 2.0 بصيغة XML
            application/atom+xml:
              schema:
                type: string
                description: موجز Atom بصيغة XML
        '400':
          description: معلمات الطلب غير صالحة
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestResponse'
        '401':
          description: غير مصرّح به
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: خطأ
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      servers:
        - url: https://api.phaseo.app/v1
          description: التوجيه العالمي
        - url: https://eu.api.phaseo.app/v1
          description: توجيه إقليمي إلى مزودي الاتحاد الأوروبي (نص فقط)
        - url: https://us.api.phaseo.app/v1
          description: توجيه إقليمي إلى مزودي الولايات المتحدة (نص فقط)
components:
  schemas:
    OrganisationId:
      type: string
      description: معرّف المؤسسة.
      enum:
        - 01-ai
        - adept
        - ai21
        - aion-labs
        - aisingapore
        - alibaba
        - allenai
        - amazon
        - anthracite-org
        - anthropic
        - arcee-ai
        - baai
        - baichuan
        - baidu
        - bigcode
        - black-forest-labs
        - bytedance
        - bytedance-seed
        - cogito
        - cognitivecomputations
        - cohere
        - crofai
        - cursor
        - cyfragovpl
        - databricks
        - decart
        - deepseek
        - dots-studio
        - early-access
        - eleven-labs
        - essential-ai
        - fastino
        - fish-audio
        - github
        - google
        - gryphe
        - hexgrad
        - ibm
        - ibm-granite
        - inception
        - inclusionai
        - inference-net
        - inflection
        - intfloat
        - jetbrains
        - kblab
        - kling
        - kuaishou
        - kwaipilot
        - kwaivgi
        - lg
        - lightricks
        - liquid-ai
        - mancer
        - medaibase
        - meituan
        - meta
        - microsoft
        - mindai
        - minimax
        - mistral
        - mistralai
        - moonshotai
        - morph
        - naver-hyperclova
        - near-ai
        - nex-agi
        - nous
        - nousresearch
        - novasearch
        - nvidia
        - openai
        - openbmb
        - opencompass
        - opengvlab
        - orcarouter
        - ornith
        - perceptron
        - perplexity
        - phala
        - pixverse
        - poe
        - poolside
        - prime-intellect
        - prism-ml
        - qwen
        - reka
        - relace
        - runway
        - sakana
        - sao10k
        - sapiens-ai
        - sentence-transformers
        - sference
        - shanghai-ai-laboratory
        - shengshu-ai
        - snowflake
        - sourceful
        - spacex-ai
        - speakleash
        - stability-ai
        - stealth
        - stepfun
        - suno
        - tencent
        - thedrummer
        - thinking-machines
        - undi95
        - upstage
        - venice
        - vercel
        - villanova-ai
        - voyage
        - windsurf
        - writer
        - xai
        - xgenerationlab
        - xiaomi
        - z-ai
        - zyphra
    GatewayModelsResponse:
      type: object
      required:
        - ok
        - availability_mode
        - limit
        - offset
        - total
        - models
      properties:
        ok:
          type: boolean
          example: true
        availability_mode:
          type: string
          enum:
            - active
            - all
          example: active
        limit:
          type: integer
          minimum: 1
          maximum: 250
          example: 50
        offset:
          type: integer
          minimum: 0
          maximum: 5000
          example: 0
        total:
          type: integer
          minimum: 0
          example: 128
        models:
          type: array
          items:
            $ref: '#/components/schemas/Model'
      additionalProperties: false
    InvalidRequestResponse:
      type: object
      required:
        - ok
        - error
        - message
      properties:
        ok:
          type: boolean
          enum:
            - false
          example: false
        error:
          type: string
          example: invalid_request
        message:
          type: string
          example: Invalid request parameters.
        max_offset:
          type: integer
          minimum: 0
      additionalProperties: true
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        ok:
          type: boolean
          example: false
        error:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
          example: error_type
        message:
          type: string
          example: Human-readable error message
        description:
          type: string
          example: Additional error details.
        generation_id:
          type: string
          example: G-abc123
        status_code:
          type: integer
          example: 502
        error_type:
          type: string
          enum:
            - user
            - system
          example: system
        error_origin:
          type: string
          enum:
            - user
            - gateway
            - upstream
          example: upstream
        reason:
          type: string
          example: all_candidates_failed
        attempt_count:
          type: integer
          example: 2
        failed_providers:
          type: array
          items:
            type: string
          example:
            - google-ai-studio
            - openai
        failed_statuses:
          type: array
          items:
            type: integer
          example:
            - 403
            - 429
        upstream_error:
          $ref: '#/components/schemas/ErrorUpstreamError'
        failure_sample:
          type: array
          items:
            $ref: '#/components/schemas/ErrorFailureSampleItem'
        provider_failure_diagnostics:
          $ref: '#/components/schemas/ErrorProviderFailureDiagnostics'
        routing_diagnostics:
          $ref: '#/components/schemas/ErrorRoutingDiagnostics'
        provider_candidate_diagnostics:
          $ref: '#/components/schemas/ErrorProviderCandidateDiagnostics'
        provider_enablement:
          $ref: '#/components/schemas/ErrorProviderEnablementDiagnostics'
        missing_pricing_providers:
          type: array
          items:
            type: string
        provider_payment_required_provider:
          type: string
          example: openai
        provider_payment_required_support_notice:
          type: string
          example: >-
            Our upstream provider billing appears to be unavailable. If this
            persists, contact support.
        details:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    Model:
      type: object
      required:
        - id
        - base_model_id
        - variant
        - variants
        - name
        - description
        - organization
        - aliases
        - lifecycle
        - modalities
        - limits
        - capabilities
        - availability
        - pricing
        - offers
      properties:
        id:
          type: string
        base_model_id:
          type: string
        variant:
          type: string
        variants:
          type: object
          additionalProperties:
            type: object
            required:
              - model_id
              - name
            properties:
              model_id:
                type: string
              name:
                type: string
        name:
          type: string
        description:
          type: string
        organization:
          $ref: '#/components/schemas/GatewayModelOrganization'
        aliases:
          type: array
          items:
            type: string
        lifecycle:
          $ref: '#/components/schemas/GatewayModelLifecycle'
        modalities:
          $ref: '#/components/schemas/GatewayModalities'
        limits:
          $ref: '#/components/schemas/GatewayModelLimits'
        capabilities:
          $ref: '#/components/schemas/GatewayCapabilities'
        availability:
          $ref: '#/components/schemas/ModelAvailability'
        pricing:
          $ref: '#/components/schemas/GatewayPricing'
        offers:
          type: array
          items:
            $ref: '#/components/schemas/GatewayModelOffer'
      additionalProperties: false
    ErrorUpstreamError:
      type: object
      properties:
        code:
          type: string
          nullable: true
          example: PERMISSION_DENIED
        message:
          type: string
          nullable: true
          example: The caller does not have permission.
        description:
          type: string
          nullable: true
        param:
          type: string
          nullable: true
    ErrorFailureSampleItem:
      type: object
      properties:
        provider:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        status:
          type: integer
          nullable: true
        upstream_error_code:
          type: string
          nullable: true
        upstream_error_message:
          type: string
          nullable: true
        upstream_error_description:
          type: string
          nullable: true
        upstream_error_param:
          type: string
          nullable: true
        upstream_payload_preview:
          type: string
          nullable: true
        retryable:
          type: boolean
          nullable: true
      additionalProperties: true
    ErrorProviderFailureDiagnostics:
      type: object
      properties:
        category:
          type: string
          enum:
            - credentials_not_configured
            - credentials_invalid_or_forbidden
            - provider_access_missing
            - region_or_project_restriction
            - model_unavailable_for_endpoint
            - rate_limited
            - server_error
        hint:
          type: string
        provider:
          type: string
          nullable: true
    ErrorRoutingDiagnostics:
      type: object
      properties:
        filterStages:
          type: array
          items:
            type: object
            properties:
              stage:
                type: string
              beforeCount:
                type: integer
              afterCount:
                type: integer
              droppedProviders:
                type: array
                items:
                  type: object
                  properties:
                    providerId:
                      type: string
                      nullable: true
                    reason:
                      type: string
                      nullable: true
                  additionalProperties: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderCandidateDiagnostics:
      type: object
      properties:
        totalProviders:
          type: integer
        supportsEndpointCount:
          type: integer
        candidateCount:
          type: integer
        droppedUnsupportedEndpoint:
          type: array
          items:
            type: string
        droppedMissingAdapter:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              endpoint:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
    ErrorProviderEnablementDiagnostics:
      type: object
      properties:
        capability:
          type: string
        providersBefore:
          type: array
          items:
            type: string
        providersAfter:
          type: array
          items:
            type: string
        dropped:
          type: array
          items:
            type: object
            properties:
              providerId:
                type: string
                nullable: true
              reason:
                type: string
                nullable: true
            additionalProperties: true
      additionalProperties: true
    GatewayModelOrganization:
      type: object
      nullable: true
      required:
        - id
        - name
        - color
      properties:
        id:
          type: string
        name:
          type: string
          nullable: true
        color:
          type: string
          nullable: true
    GatewayModelLifecycle:
      type: object
      required:
        - status
        - released_at
        - deprecated_at
        - retires_at
        - replacement_id
        - message
      properties:
        status:
          type: string
          enum:
            - active
            - deprecated
            - retired
          nullable: true
        released_at:
          type: string
          nullable: true
        deprecated_at:
          type: string
          nullable: true
        retires_at:
          type: string
          nullable: true
        replacement_id:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
    GatewayModalities:
      type: object
      required:
        - input
        - output
      properties:
        input:
          type: array
          items:
            type: string
        output:
          type: array
          items:
            type: string
    GatewayModelLimits:
      type: object
      required:
        - input_tokens
        - output_tokens
      properties:
        input_tokens:
          type: integer
          nullable: true
          minimum: 0
          exclusiveMinimum: true
        output_tokens:
          type: integer
          nullable: true
          minimum: 0
          exclusiveMinimum: true
    GatewayCapabilities:
      type: object
      required:
        - parameters
        - parameter_details
      properties:
        endpoints:
          type: array
          items:
            type: string
        parameters:
          type: array
          items:
            type: string
        parameter_details:
          $ref: '#/components/schemas/SupportedParameterDetails'
    ModelAvailability:
      type: object
      required:
        - status
        - provider_count
        - active_provider_count
        - coming_soon_provider_count
        - inactive_provider_count
      properties:
        status:
          type: string
          enum:
            - active
            - coming_soon
            - inactive
            - not_listed
        provider_count:
          type: integer
          minimum: 0
        active_provider_count:
          type: integer
          minimum: 0
        coming_soon_provider_count:
          type: integer
          minimum: 0
        inactive_provider_count:
          type: integer
          minimum: 0
    GatewayPricing:
      type: object
      required:
        - pricing_plan
        - meters
      properties:
        pricing_plan:
          type: string
          enum:
            - standard
        meters:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/GatewayPricingMeter'
    GatewayModelOffer:
      type: object
      required:
        - provider
        - model
        - status
        - status_reason
        - routable
        - endpoints
        - modalities
        - capabilities
        - routing
        - effective
        - pricing
      properties:
        provider:
          type: object
          required:
            - id
            - name
          properties:
            id:
              type: string
            name:
              type: string
              nullable: true
        model:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - active
            - coming_soon
            - inactive
        status_reason:
          $ref: '#/components/schemas/GatewayProviderAvailabilityReason'
        routable:
          type: boolean
        endpoints:
          type: array
          items:
            type: string
        modalities:
          $ref: '#/components/schemas/GatewayModalities'
        capabilities:
          $ref: '#/components/schemas/GatewayCapabilities'
        routing:
          type: object
          required:
            - provider
            - model
            - capability
          properties:
            provider:
              $ref: '#/components/schemas/GatewayRoutingStatus'
            model:
              $ref: '#/components/schemas/GatewayRoutingStatus'
            capability:
              $ref: '#/components/schemas/GatewayCapabilityStatus'
        effective:
          type: object
          required:
            - from
            - to
          properties:
            from:
              type: string
              nullable: true
            to:
              type: string
              nullable: true
        pricing:
          $ref: '#/components/schemas/GatewayPricing'
    SupportedParameterDetails:
      type: object
      description: قيود منظمة ودعم المزوّد لمعلمات الطلب، مرتبة حسب اسم المعلمة.
      additionalProperties:
        type: object
        additionalProperties: true
    GatewayPricingMeter:
      type: object
      nullable: true
      required:
        - provider_id
        - unit
        - unit_size
        - price_per_unit
        - currency
      properties:
        provider_id:
          type: string
        unit:
          type: string
        unit_size:
          type: number
          minimum: 0
          exclusiveMinimum: true
        price_per_unit:
          type: string
        currency:
          type: string
          enum:
            - USD
    GatewayProviderAvailabilityReason:
      type: string
      enum:
        - active
        - preview_only
        - gated
        - access_limited
        - region_limited
        - project_limited
        - paused
        - soft_blocked
        - deranked_lvl1
        - deranked_lvl2
        - deranked_lvl3
        - internal_testing
        - scheduled
        - coming_soon
        - provider_disabled
        - model_disabled
        - capability_disabled
        - provider_not_ready
        - provider_inactive
        - inactive
        - retired
    GatewayRoutingStatus:
      type: string
      enum:
        - active
        - deranked_lvl1
        - deranked_lvl2
        - deranked_lvl3
        - disabled
    GatewayCapabilityStatus:
      type: string
      enum:
        - active
        - coming_soon
        - deranked_lvl1
        - deranked_lvl2
        - deranked_lvl3
        - disabled
        - internal_testing
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: المصادقة باستخدام رمز Bearer

````

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