{
  "commercial": {
    "authority": "owner_approved_business_input",
    "commercial_use_in_customer_product": true,
    "official_offer_licence_agreement": true,
    "permission_contact": "mailto:support@ailoot.ai",
    "promo_discount_max_percent": 50,
    "reseller_licence_on_request": true,
    "subscription_effect": "reduces_effective_token_cost",
    "use_cases": [
      "customer_products",
      "agents",
      "applications",
      "automations"
    ],
    "written_project_permission_on_request": true
  },
  "company": {
    "authority": "owner_approved_business_input",
    "claims": [
      "established operating experience",
      "large client base",
      "stable service",
      "ongoing KPI control"
    ],
    "scale": {
      "clients": "millions of customers",
      "currency": null,
      "monthly_sales": "monthly sales in the billions",
      "scope": "The company and its project portfolio"
    },
    "source": "https://ailoot.ai/ru/",
    "source_language": "ru"
  },
  "connection": {
    "api_server": "https://api.ailoot.ai",
    "authentication": {
      "alternative_http_headers": [
        "x-api-key",
        "x-goog-api-key"
      ],
      "example": "Bearer ${AILOOT_API_KEY}",
      "header": "Authorization",
      "mode": "clientBearer",
      "realtime_mode": "Bearer header only",
      "scheme": "bearer",
      "type": "http"
    },
    "directory_placement": {
      "status": "unknown",
      "url": null
    },
    "mcp": {
      "endpoint": null,
      "status": "unknown"
    },
    "protocols": [
      {
        "id": "models",
        "label": "Model discovery",
        "operations": [
          {
            "http_method": "GET",
            "operation_id": "listModels",
            "path": "/v1/models",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "listGeminiModels",
            "path": "/v1beta/models",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "chat",
        "label": "OpenAI Chat Completions",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createChatCompletion",
            "path": "/v1/chat/completions",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "responses",
        "label": "OpenAI Responses",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createResponse",
            "path": "/v1/responses",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "messages",
        "label": "Anthropic Messages",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createMessage",
            "path": "/v1/messages",
            "status": "documented"
          },
          {
            "description": "Documented token-counting path; unavailable for models in the current public catalogue.",
            "http_method": "POST",
            "operation_id": "countMessageTokens",
            "path": "/v1/messages/count_tokens",
            "status": "unavailable"
          }
        ],
        "transport": "https"
      },
      {
        "id": "gemini",
        "label": "Gemini generateContent",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "generateContent",
            "path": "/v1beta/models/{model}:generateContent",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "generateContentCompatibility",
            "path": "/antigravity/v1beta/models/{model}:generateContent",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "streamGenerateContent",
            "path": "/v1beta/models/{model}:streamGenerateContent",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "embeddings",
        "label": "Text embeddings",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createEmbeddings",
            "path": "/v1/embeddings",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "images",
        "label": "OpenAI Images",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createImage",
            "path": "/v1/images/generations",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "editImage",
            "path": "/v1/images/edits",
            "status": "documented"
          },
          {
            "description": "Save task_id and poll_url. Streaming is rejected. A task has processing/completed/failed status and an expires_at field.",
            "http_method": "POST",
            "operation_id": "createImageTask",
            "path": "/v1/images/generations/async",
            "status": "documented"
          },
          {
            "description": "Save task_id and poll_url. Streaming is rejected. A task has processing/completed/failed status and an expires_at field.",
            "http_method": "POST",
            "operation_id": "createImageEditTask",
            "path": "/v1/images/edits/async",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getImageTask",
            "path": "/v1/images/tasks/{task_id}",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "speech",
        "label": "Speech audio",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createSpeech",
            "path": "/v1/audio/speech",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "transcriptions",
        "label": "Audio transcription",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createTranscription",
            "path": "/v1/audio/transcriptions",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "videos",
        "label": "Video generation and retrieval",
        "operations": [
          {
            "description": "Save the returned task identifier. Poll status and download content; do not repeat creation after a timeout or unknown result. Required media parameters differ by model; this documented example is not a parameter guarantee for every video model.",
            "http_method": "POST",
            "operation_id": "createVideo",
            "path": "/v1/videos/generations",
            "status": "documented"
          },
          {
            "description": "Save the returned task identifier. Poll status and download content; do not repeat creation after a timeout or unknown result. Required media parameters differ by model; this documented example is not a parameter guarantee for every video model.",
            "http_method": "POST",
            "operation_id": "createVideoCompatible",
            "path": "/v1/videos",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideo",
            "path": "/v1/videos/{request_id}",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoContent",
            "path": "/v1/videos/{request_id}/content",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoGeneration",
            "path": "/v1/videos/generations/{request_id}",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoGenerationContent",
            "path": "/v1/videos/generations/{request_id}/content",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "music",
        "label": "Music generation",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createMusic",
            "path": "/v1/music/generations",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "systemone",
        "label": "System One decisions",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createSystemOne",
            "path": "/v1/systemone",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "realtime",
        "label": "Realtime voice WebSocket",
        "operations": [
          {
            "http_method": "GET",
            "operation_id": "openRealtimeSession",
            "path": "/v1/realtime",
            "status": "documented"
          }
        ],
        "transport": "websocket"
      }
    ],
    "provenance": {
      "approved_offer_sha256": "03ba9f99acb815bdfd97051de0b513aeb11dcad811723225ed2f1192cddab0ca",
      "client_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22",
      "proof_scope": "accepted-static-public-contract",
      "public_operation_count": 26,
      "sources": [
        {
          "name": "public-api-contract-v1.json",
          "sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
        },
        {
          "name": "openapi-contract-v1.md",
          "sha256": "eebcd42781235054b93f763d84cb0fbc27c6c5762515c2b4990c390accba8763"
        },
        {
          "name": "openapi.py",
          "sha256": "0e502577f8a9a347a3ba5a514294a336b06aea78cac41b9fa1e4871b69fbf4e8"
        },
        {
          "name": "agent-facts-contract-v1.json",
          "sha256": "856af0544f85dc29b915132a3c762698ae9162555b24b79cfabfec63b05bc43a"
        },
        {
          "name": "locale-routes.py",
          "sha256": "920d2b69bf735d7298eb24f06cf7bd4eb373b5f76639b61fb6e98e8f94bfec7a"
        },
        {
          "name": "approved-offer-copy-v1.json",
          "sha256": "03ba9f99acb815bdfd97051de0b513aeb11dcad811723225ed2f1192cddab0ca"
        },
        {
          "name": "offer-copy.py",
          "sha256": "fe062036873acf8abb23a182248ce508c3679979455dadc634dcd5063d60cb1f"
        }
      ]
    },
    "sdk_validation": {
      "status": "unknown"
    },
    "status": "documented"
  },
  "documentation": {
    "api_guide": {
      "status": "documented",
      "url": "https://ailoot.ai/openapi.md"
    },
    "entrypoints": {
      "docs": "https://ailoot.ai/docs/en/",
      "integrations": "https://ailoot.ai/integrations/en/",
      "models": "https://ailoot.ai/models/en/"
    },
    "licence": {
      "label": "Service offer and licence agreement",
      "url": "https://ailoot.ai/legal/offer?lang=en"
    },
    "locale": "en",
    "offer": {
      "label": "Service offer and licence agreement",
      "url": "https://ailoot.ai/legal/offer?lang=en"
    },
    "openapi": {
      "format": "3.1.1",
      "status": "documented",
      "url": "https://ailoot.ai/openapi.json"
    },
    "provenance": {
      "approved_offer_sha256": "03ba9f99acb815bdfd97051de0b513aeb11dcad811723225ed2f1192cddab0ca",
      "locale_routes_sha256": "920d2b69bf735d7298eb24f06cf7bd4eb373b5f76639b61fb6e98e8f94bfec7a"
    },
    "reseller_licence": {
      "label": "Request a reseller licence",
      "url": "mailto:support@ailoot.ai"
    },
    "support": {
      "url": "mailto:support@ailoot.ai"
    },
    "written_project_permission": {
      "url": "mailto:support@ailoot.ai"
    }
  },
  "integrations": [
    {
      "application": "Claude Code",
      "application_id": "claude-code",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use a URL without /v1: Claude Code adds /v1/messages itself. ANTHROPIC_AUTH_TOKEN is sent as Authorization: Bearer, ANTHROPIC_API_KEY as x-api-key; Ailoot accepts both. CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 loads our models into /model through /v1/models. For 400 errors about unknown fields, use CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Anthropic's documentation does not support using Claude Code with non-Claude models through a gateway, although our /v1/messages endpoint serves them; we recommend Claude models. Remote Control and voice input are unavailable when using a gateway.",
        "description": "Terminal agent · Anthropic Messages",
        "formats": [
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "8e0826bded736ad53724c3d9598bdf52ed29d5d4d44f8d6d1fe08d0d8e995b15",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/claude-code/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "8e0826bded736ad53724c3d9598bdf52ed29d5d4d44f8d6d1fe08d0d8e995b15",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenAI Codex CLI",
      "application_id": "openai-codex-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Codex uses only the OpenAI Responses API: the documentation lists only wire_api = \"responses\", so it needs our /v1/responses. Provider IDs openai, ollama, and lmstudio are reserved. Alternatively, use openai_base_url = \"https://api.ailoot.ai/v1\" with the built-in openai provider. Ailoot returns the model list in Codex manifest format through GET /v1/models with client_version. Choose a specific model whose catalog entry lists OpenAI Responses. In the 2026-09-30 snapshot, gemini-3.6-flash has OpenAI Chat, Anthropic Messages, and Gemini, but no Responses, so it is unsuitable for Codex. Check formats on the model card, not from the family name.",
        "description": "Terminal agent · OpenAI Responses",
        "formats": [
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "cb0bf0d325457098409abf06d50f673d5bce10d332e12f868fe24af376eda874",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openai-codex-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "cb0bf0d325457098409abf06d50f673d5bce10d332e12f868fe24af376eda874",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Hermes Agent",
      "application_id": "hermes-agent",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. transport: chat_completions (OpenAI Chat), anthropic_messages (Anthropic Messages), or codex_responses (OpenAI Responses). LLM_MODEL in .env is no longer used; OPENAI_BASE_URL applies only to the openai-api provider. For anthropic_messages, use a URL without /v1; the Anthropic SDK appends /v1/messages. Auxiliary tasks (image recognition, history compaction) use the same main model by default.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "388d167f22555b55a0bb6b49bd39d5f7d4ed68dfbe5eca51d500419d7f36905e",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/hermes-agent/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "388d167f22555b55a0bb6b49bd39d5f7d4ed68dfbe5eca51d500419d7f36905e",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenClaw",
      "application_id": "openclaw",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. api adapters include openai-completions (the default when baseUrl is set), openai-responses (only if the server supports /v1/responses, which Ailoot does), anthropic-messages, and google-generative-ai. OpenClaw’s anthropic-messages examples use baseUrl without /v1. OpenClaw can send images when the model’s input includes \"image\". The Claude examples keep text only: the 2026-09-30 catalog snapshot does not declare image input for these methods. Add \"image\" only for a specific model whose current catalog card declares image input in the selected API format. For example, gemini-3.6-flash declares image input for OpenAI Chat in that snapshot; actual support depends on the model card and format. The main configuration path follows common OpenClaw practice; the page reviewed also mentions ~/.openclaw/agents/<agentId>/agent/models.json.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "responses",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "9dff1541a90b80d9753ebcec23c24b813be55d76e2fe8ef33fc598e699e3a003",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openclaw/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "9dff1541a90b80d9753ebcec23c24b813be55d76e2fe8ef33fc598e699e3a003",
      "version_match": null,
      "versions": null
    },
    {
      "application": "opencode",
      "application_id": "opencode",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The @ai-sdk/openai-compatible package calls /v1/chat/completions. For models that require /v1/responses, opencode documentation specifies @ai-sdk/openai. A custom Anthropic-compatible provider with baseURL is not described in opencode’s documentation. Choose models whose current catalog entry lists OpenAI Chat. In the 2026-09-30 snapshot, gemini-3.6-flash has that format; check other Gemini models on their cards. This path does not use native Gemini format. A catalog method listing does not establish a live test of a specific client version.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "9745319e38f39e930301e15d198f6bd62c7f96d3d4cd70c3ddf65298f9eff930",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/opencode/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "9745319e38f39e930301e15d198f6bd62c7f96d3d4cd70c3ddf65298f9eff930",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Qwen Code",
      "application_id": "qwen-code",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Protocol types: openai (Chat Completions), anthropic, gemini, and vertex-ai. For openai, include /v1 in baseUrl. The documentation examples for anthropic and gemini do not include baseUrl, so we recommend the openai option. For the openai type, choose a model whose catalog entry lists OpenAI Chat; gemini-3.6-flash has that format. Other Gemini models may support different formats, so check the specific model card. The settings.json option reads the key from AILOOT_API_KEY through envKey. Set it with export AILOOT_API_KEY=sk-... or an AILOOT_API_KEY=sk-... line in ~/.qwen/.env; otherwise, Qwen Code starts with an empty key and receives 401.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "0808ab5d1b6f49c61f5591e2ac8c0b1c9ce2b99904cfb374a38a8963eb4fe860",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/qwen-code/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "0808ab5d1b6f49c61f5591e2ac8c0b1c9ce2b99904cfb374a38a8963eb4fe860",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Gemini CLI",
      "application_id": "gemini-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use an address without /v1beta: the SDK appends /v1beta/models/{model}:generateContent automatically. The address must use HTTPS. The key is sent in the x-goog-api-key header, which Ailoot accepts. Only models listed with the Gemini format in the catalog are suitable. Before running a request, check that the exact ID and this method are available to your key. Ailoot delivers paid Gemini responses in full after calculating the cost, not word by word, so text takes longer to appear for long responses.",
        "description": "Terminal agent · Gemini",
        "formats": [
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e1ae92dc0f04f87603251d7dde0de211ccd9c7398e619d212a608574d5acce30",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/gemini-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e1ae92dc0f04f87603251d7dde0de211ccd9c7398e619d212a608574d5acce30",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Kimi CLI",
      "application_id": "kimi-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Types: openai_legacy (Chat Completions, base_url with /v1), openai_responses (Responses, with /v1), anthropic (without /v1), gemini (base_url is Google's root URL; for us, https://api.ailoot.ai). SearchWeb works only with Moonshot's own platform; with a different API URL, FetchURL switches to local downloading.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "responses",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "1f0752ed0511755e7decd6d63c54ee7443f25d64c6fe428fcff6f3941f09b776",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/kimi-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "1f0752ed0511755e7decd6d63c54ee7443f25d64c6fe428fcff6f3941f09b776",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Crush",
      "application_id": "crush",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The openai-compat type uses the OpenAI Chat format and a URL with /v1. The anthropic type uses the Messages format and a URL without /v1: Crush passes it to anthropic-sdk-go, which appends /v1/messages. The example in the Crush README with /v1 would produce /v1/v1/messages and a 404 error. The key is sent in the x-api-key header, which Ailoot accepts. If the model list is empty, the openai-compat provider fetches it from /v1/models. crushrc runs as code: do not launch Crush in someone else's directory containing this file. In this example, Claude has supports-images = false: the 2026-09-30 catalog snapshot lists only text for the selected Messages format. If your version of Crush supports this flag, enable it only for a model whose current catalog card lists image input in the selected API format; the client flag alone does not add image support to a model.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f6f9869e19ac6e4205cbe6cd869eaa8851d7c48faa261b593d928e1bc1694691",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/crush/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f6f9869e19ac6e4205cbe6cd869eaa8851d7c48faa261b593d928e1bc1694691",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Aider",
      "application_id": "aider",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The openai/ prefix is required: it tells Aider (through LiteLLM) to send requests to the OpenAI-compatible /v1/chat/completions endpoint. For models Aider does not recognize, it will warn that the context window is unknown — this is not an error. This documentation page does not cover an Anthropic endpoint with a custom base URL.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "d43057e60b917b281aecd9eafb076b3c497adfce9060acafa194a8228fc3fe39",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/aider/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "d43057e60b917b281aecd9eafb076b3c497adfce9060acafa194a8228fc3fe39",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Goose",
      "application_id": "goose",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Custom provider engines: openai, anthropic, ollama. In the Goose example, base_url for engine openai includes the full path to /v1/chat/completions. For the built-in provider, OPENAI_HOST is the root URL without a path, and OPENAI_BASE_PATH is the path (v1/chat/completions by default). Goose ignores keys in config.yaml; use an environment variable or the keyring. The repository has moved to aaif-goose/goose.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "d4bf8c0da10a93e0d057f56762ab60b4e8f63a7ec150a2f6b3cfa9f629ead087",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/goose/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "d4bf8c0da10a93e0d057f56762ab60b4e8f63a7ec150a2f6b3cfa9f629ead087",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Factory Droid",
      "application_id": "factory-droid",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. provider: anthropic = Messages API (baseUrl as for Anthropic, without /v1), openai = Responses API (with /v1), generic-chat-completion-api = Chat Completions (with /v1). For anthropic, the key is sent in x-api-key by default (Ailoot accepts it); \"authMode\": \"bearer\" switches to Authorization. Keys remain local. Factory fully tests only the official Anthropic and OpenAI APIs.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f9ca4b0777dd8ecf658180b490cbb0ed53d98da7ed3b3fdcdecd5533608955a2",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/factory-droid/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f9ca4b0777dd8ecf658180b490cbb0ed53d98da7ed3b3fdcdecd5533608955a2",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Amp",
      "application_id": "amp",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Custom URL formats: chat-completions (<base>/chat/completions), responses (<base>/responses), anthropic-messages (<base>/v1/messages; /v1 is not duplicated), google-genai (<base>/models/<model>:streamGenerateContent). The key is sent as Authorization: Bearer. Mappings use canonical Amp IDs in the provider/model form; the arrow specifies the ID sent to us. Amp handles models not covered by the connection itself, using its own credits. The documentation requires the custom host to be accessible from Amp — our URL is public, so this requirement is met.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "responses",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "20349bdaa35b0966f501fd5ecb7cd0a7b9d237b26c3dc59a472bda0bf79de9d2",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/amp/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "20349bdaa35b0966f501fd5ecb7cd0a7b9d237b26c3dc59a472bda0bf79de9d2",
      "version_match": null,
      "versions": null
    },
    {
      "application": "AIChat",
      "application_id": "aichat",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. In AIChat's example configuration, api_base for claude includes /v1, while gemini uses /v1beta; use the same paths for Ailoot. The three clients provide access to all three Ailoot formats: OpenAI, Anthropic, and Gemini.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "ceecd3406bb1ecea9411f54b92fedb93842b10cb81bfb3fa64f85e9bf2f049a4",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/aichat/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "ceecd3406bb1ecea9411f54b92fedb93842b10cb81bfb3fa64f85e9bf2f049a4",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Continue CLI",
      "application_id": "continue-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. For OpenAI-compatible services, Continue uses provider: openai and an apiBase with /v1. The configuration format is shared by the extension and CLI; pass the file with the --config flag.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "7487182e12bd10a90ee6d7140157b0809d922852512f7d19b64a2c8c78c8406e",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/continue-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "7487182e12bd10a90ee6d7140157b0809d922852512f7d19b64a2c8c78c8406e",
      "version_match": null,
      "versions": null
    },
    {
      "application": "ForgeCode",
      "application_id": "forge",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Configuration through .env is marked as deprecated: on first launch, Forge migrates the variables to its file storage. The README does not list the exact labels in the provider login wizard.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "2104b1af9b2e98e2ece36498f6a57be8bfc269736d54b243a15be5e9d34b586f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/forge/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "2104b1af9b2e98e2ece36498f6a57be8bfc269736d54b243a15be5e9d34b586f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "GitHub Copilot CLI",
      "application_id": "github-copilot-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Types: openai (default, any OpenAI-compatible server), azure, anthropic. The model must support tool calling and streaming output. COPILOT_PROVIDER_WIRE_API selects the protocol, but the page does not list its values. Limits can be set with COPILOT_PROVIDER_MAX_PROMPT_TOKENS / MAX_OUTPUT_TOKENS.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "9c7313f19bf8b623316ed081d5d81d903ffabc6062a601a8980021f54fcb8ec7",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/github-copilot-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "9c7313f19bf8b623316ed081d5d81d903ffabc6062a601a8980021f54fcb8ec7",
      "version_match": null,
      "versions": null
    },
    {
      "application": "gptme",
      "application_id": "gptme",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Any OpenAI-compatible server; the key is looked up in api_key, then api_key_env, then <NAME>_API_KEY. List providers with gptme-util providers list.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e3b0b19b2ff14d55bba09ac8ac3bc4519f3cfcb74d020b1b0cc6d63a19aadc8f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/gptme/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e3b0b19b2ff14d55bba09ac8ac3bc4519f3cfcb74d020b1b0cc6d63a19aadc8f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Kilo Code CLI",
      "application_id": "kilo-code-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The Custom provider dialog lets you choose a protocol: OpenAI Compatible (Chat Completions), OpenAI Responses, or Anthropic Messages. {env:VAR} works only in the trusted global configuration (~/.config/kilo); the project-level kilo.json will not substitute a key from an environment variable.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "6339c0fb74fda38cfc033e6465e94a2e84d325db5644b6e9e2d293307126f5d2",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/kilo-code-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "6339c0fb74fda38cfc033e6465e94a2e84d325db5644b6e9e2d293307126f5d2",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LLM",
      "application_id": "llm-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Chat Completions is the default; responses: true switches the model to /responses. When api_base is set, the OpenAI key is not sent, so api_key_name is required. This is a CLI utility for making requests, not an agent.",
        "description": "Terminal agent · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "8cb224e7a62ec4875426877a35cfd413f7ecb04cd636b8d19703f43403cb22b7",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/llm-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "8cb224e7a62ec4875426877a35cfd413f7ecb04cd636b8d19703f43403cb22b7",
      "version_match": null,
      "versions": null
    },
    {
      "application": "mini-SWE-agent",
      "application_id": "mini-swe-agent",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Uses LiteLLM: model_kwargs are passed directly to litellm.completion. Without a price registry, LiteLLM reports an unknown cost; disable tracking with cost_tracking: \"ignore_errors\" or MSWEA_COST_TRACKING=ignore_errors. OPENAI_API_KEY is LiteLLM’s standard key variable, but the mini-SWE-agent page does not show it.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e62df48592df7eea39914c2163776404391965e49f49e45accf0ec08e898b927",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/mini-swe-agent/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e62df48592df7eea39914c2163776404391965e49f49e45accf0ec08e898b927",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenHands CLI",
      "application_id": "openhands-cli",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. OpenHands uses LiteLLM. For an OpenAI proxy, the documentation specifies a Custom Model such as openai/<model> and the proxy’s Base URL. Changes made through --override-with-envs are not saved. In the web interface: Settings → LLM → Advanced → Custom Model, Base URL, API Key.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "344dfe50a5fd1a47a4c5951bb60a226841ecc1f18ff723b1340431cc1e14d33d",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openhands-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "344dfe50a5fd1a47a4c5951bb60a226841ecc1f18ff723b1340431cc1e14d33d",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Pi",
      "application_id": "pi",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Pi documentation explicitly supports OpenAI-, Anthropic-, and Google-compatible endpoints through models.json; the example uses api: openai-completions. apiKey accepts $NAME/${NAME}, a literal value, or !command. The file is reread when /model opens.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f82fc6ddf030548118dfe65fa6e37ad03b581d4227ce07f4ac2f908c8c9f9c72",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/pi/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f82fc6ddf030548118dfe65fa6e37ad03b581d4227ce07f4ac2f908c8c9f9c72",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Plandex",
      "application_id": "plandex",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Custom providers work only in self-hosted Plandex. In the cloud, BYO keys are limited to built-in providers. All custom providers must be OpenAI-compatible (Chat Completions). Then add the model to a custom model pack.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "a31508008c64aeb2f3a7a9ac7804426a3ef44aea27da454c4f69cde6ac84476c",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/plandex/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "a31508008c64aeb2f3a7a9ac7804426a3ef44aea27da454c4f69cde6ac84476c",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Trae Agent",
      "application_id": "trae-agent",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use spaces only in YAML, not tabs. For Anthropic format, use provider: anthropic and ANTHROPIC_BASE_URL. The README does not specify whether anthropic expects /v1; use https://api.ailoot.ai.",
        "description": "Terminal agent · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "d3c870cf8aa784c24e889a38393c95f4544b6a498338c860d369a56e760e99a8",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/trae-agent/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "d3c870cf8aa784c24e889a38393c95f4544b6a498338c860d369a56e760e99a8",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Warp",
      "application_id": "warp",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. OpenAI Chat Completions only (POST /v1/chat/completions). Requests pass through Warp’s servers: the key is stored locally but sent to the Warp backend with every request. Auto mode and custom routers always use Warp credits; cloud agents do not use this endpoint. Available on Free and paid plans for individuals and teams of up to 10 people. Choose models whose current catalog entry lists OpenAI Chat. In the 2026-09-30 snapshot, gemini-3.6-flash has this format; check other Gemini models on their cards. This path does not use native Gemini format. A catalog method listing does not establish a live test of a specific client version.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "2bff1fad1ae0dc33e607a9d572a5d3c7a1963823b50f76e8bd10660195cc2c38",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/warp/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "2bff1fad1ae0dc33e607a9d572a5d3c7a1963823b50f76e8bd10660195cc2c38",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Cline",
      "application_id": "cline",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. OpenAI Compatible calls /v1/chat/completions, so the URL includes /v1. The Anthropic option calls /v1/messages and uses a URL without /v1, but its model list contains only Anthropic names; other Ailoot models are available through OpenAI Compatible. Agent mode requires a model that supports tool calling. Gemini 3.1 Pro models are not available through chat/completions (they support only the Gemini and Anthropic formats); use gemini-3.6-flash here.",
        "description": "Editor extension · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "23c5b3e9724e8b03bcb18f9d1953ca39e0f8e56fbb990755fb1187d17caafd8b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/cline/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "23c5b3e9724e8b03bcb18f9d1953ca39e0f8e56fbb990755fb1187d17caafd8b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Roo Code",
      "application_id": "roo-code",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Roo Code calls tools only in OpenAI format, so the model must support tools in /v1/chat/completions. The Anthropic option calls /v1/messages and uses a URL without /v1.",
        "description": "Editor extension · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "a33dd1f1936c7bea820a2677bf16a7f44dc0de7337835239a9e1c04c4c949b8b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/roo-code/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "a33dd1f1936c7bea820a2677bf16a7f44dc0de7337835239a9e1c04c4c949b8b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Kilo Code",
      "application_id": "kilo-code",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Kilo requests {Base URL}/models and displays the model list automatically; our GET /v1/models returns the full catalog. You can also specify the full .../v1/chat/completions URL. Custom headers are supported.",
        "description": "Editor extension · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "86b3a9de289e55de3d8b6a0d93e8cbb82277e5e3c50cfb7fd20adff2422371a7",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/kilo-code/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "86b3a9de289e55de3d8b6a0d93e8cbb82277e5e3c50cfb7fd20adff2422371a7",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Continue",
      "application_id": "continue",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. apiBase must end with /v1. For gpt-5/o-series names, Continue may automatically choose /v1/responses; our gpt-* models support both /v1/responses and /v1/chat/completions, while useResponsesApi: false forces chat/completions. useLegacyCompletionsEndpoint is not needed.",
        "description": "Editor extension · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "39c018def76ab0af5d6eb0f4df3af577f7a33a0fb32e304aa19a83a4dc1b1b37",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/continue/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "39c018def76ab0af5d6eb0f4df3af577f7a33a0fb32e304aa19a83a4dc1b1b37",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Zed",
      "application_id": "zed",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. openai_compatible uses a URL with /v1 and calls /v1/chat/completions; capabilities.chat_completions = false switches the model to /v1/responses. anthropic_compatible uses a URL without /v1 and calls /v1/messages; Zed sends x-api-key, which Ailoot accepts. images = false and parallel_tool_calls = false by default. Zed can send images, but enable images only for a specific model whose current catalog card declares image input in the selected API format. The GPT and Claude examples use images = false: the 2026-09-30 snapshot lists text only for them. For example, gemini-3.6-flash declares image input for OpenAI Chat in that snapshot; actual support depends on the model card and format. Reasoning models have a reasoning_effort field. The example’s max_tokens values represent context size; check exact limits in the model catalog.",
        "description": "Code editor · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e54b39e5ac6753dcc56ebfbdcadc365c123235bbc12aafb0eae1e764c394481b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/zed/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e54b39e5ac6753dcc56ebfbdcadc365c123235bbc12aafb0eae1e764c394481b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "VS Code + Copilot Chat",
      "application_id": "vscode-copilot-byok",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. url is the FULL endpoint path. apiType values: chat-completions, responses (url .../v1/responses), messages (url .../v1/messages). BYOK works without a Copilot plan or GitHub sign-in, but only for chat/agent; inline suggestions stay on Copilot. Organization admins (Business/Enterprise) can disable the BYOK policy. The token limits above are examples; use catalog values. These examples use vision = false: the 2026-09-30 catalog snapshot lists text only for GPT/OpenAI Chat and Claude/Anthropic Messages. If your VS Code version offers vision, enable it only for a model whose current catalog card declares image input in the selected API format. A client field does not establish image support for the selected model.",
        "description": "Editor extension · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "c1127d3d445d64a419e7659c71bce52bb497d5616ce0294bc8aefd2fee2cb321",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/vscode-copilot-byok/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "c1127d3d445d64a419e7659c71bce52bb497d5616ce0294bc8aefd2fee2cb321",
      "version_match": null,
      "versions": null
    },
    {
      "application": "JetBrains AI Assistant",
      "application_id": "jetbrains-ai-assistant",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Choose OpenAI-compatible and set URL to https://api.ailoot.ai/v1 with your API Key. Click Test Connection, then Apply, and select a model in AI Chat. Assign it in Models Assignment for IDE features. Enable Tool calling only when the chosen model supports tools; AI completion has separate settings.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "163f518e4c083a676128327313ca36078e3d7b245a5b77fc624068a992fa2f46",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/jetbrains-ai-assistant/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "163f518e4c083a676128327313ca36078e3d7b245a5b77fc624068a992fa2f46",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Xcode",
      "application_id": "xcode",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Apple requires the provider to support Chat Completions and respond at {URL}/v1/models and {URL}/v1/chat/completions. Ailoot accepts x-api-key and Authorization: Bearer. Reports suggest Xcode adds the Bearer prefix itself when Authorization is selected. Xcode agents are configured separately and are outside this guide.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f35e3d53200891470fe4ac28b5cc5637f639192d1ec1e3ee7797bebae4aea436",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/xcode/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f35e3d53200891470fe4ac28b5cc5637f639192d1ec1e3ee7797bebae4aea436",
      "version_match": null,
      "versions": null
    },
    {
      "application": "avante.nvim",
      "application_id": "avante-nvim",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. In the plugin's wiki, the OpenAI-compatible URL ends with /v1 (the plugin appends /chat/completions). The built-in claude provider uses a URL such as https://api.anthropic.com, so use a URL without /v1 for Ailoot. Custom providers without __inherited_from require a full URL and their own response parsing functions.",
        "description": "Neovim plugin · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "3a1b108d1c224bcda437688430d0b06483e97cf2cc475f32eaa8bb37a0cb07ee",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/avante-nvim/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "3a1b108d1c224bcda437688430d0b06483e97cf2cc475f32eaa8bb37a0cb07ee",
      "version_match": null,
      "versions": null
    },
    {
      "application": "codecompanion.nvim",
      "application_id": "codecompanion-nvim",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. openai_compatible separates the host (env.url, without /v1) from the path (env.chat_url). Values in env can be an environment variable name, cmd:..., file:..., or a Lua function. The anthropic adapter can similarly be extended with a custom url for /v1/messages.",
        "description": "Neovim plugin · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "76c0155734e7f4c4b0be3e3c1e41953b4888b86601f6c4b0ca819d4e051b25c7",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/codecompanion-nvim/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "76c0155734e7f4c4b0be3e3c1e41953b4888b86601f6c4b0ca819d4e051b25c7",
      "version_match": null,
      "versions": null
    },
    {
      "application": "gptel",
      "application_id": "gptel",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. :host is only the hostname (without https:// or a path); set the path in :endpoint. gptel-make-anthropic sends the x-api-key and anthropic-version headers, which Ailoot accepts.",
        "description": "Emacs package · OpenAI Chat, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "20f6e78e52e96f1639a121699798185d92e6a66507a9b0021dda851fce7b0f1a",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/gptel/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "20f6e78e52e96f1639a121699798185d92e6a66507a9b0021dda851fce7b0f1a",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Theia IDE",
      "application_id": "theia",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. url is the base URL ending in /v1. For models not from OpenAI, developerMessageSettings: \"system\" is the safe choice.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "91d3f5c7a48084f28f5fc82481561eb8b3bf4bac99d6c66c4616af2e5be2831b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/theia/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "91d3f5c7a48084f28f5fc82481561eb8b3bf4bac99d6c66c4616af2e5be2831b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Trae IDE",
      "application_id": "trae",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. With Full URL disabled, Trae appends the selected format’s path: include /v1 for OpenAI and omit it for Anthropic. With Full URL enabled, enter https://api.ailoot.ai/v1/chat/completions or https://api.ailoot.ai/v1/messages. Model Series adapts hints to the model family.",
        "description": "Code editor · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "061b70fdb061c8ca3ce7658f052e6b177fcbb5f64a8ee7c39af0cbaf3b801b84",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/trae/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "061b70fdb061c8ca3ce7658f052e6b177fcbb5f64a8ee7c39af0cbaf3b801b84",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Open WebUI",
      "application_id": "open-webui",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Uses OpenAI Chat Completions. The URL must include /v1 and have no trailing slash. The model list comes from /v1/models. For a large catalog (252 models), limiting Model IDs and enabling model-list caching is more convenient: Cache Base Model List / ENABLE_BASE_MODELS_CACHE=True. RAG embeddings use a separate RAG_OPENAI_API_BASE_URL.",
        "description": "Self-hosted web chat · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "3dab8096119e91f2572fc36ff01dd2572446dbdab1c450957a43926ae951e14f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/open-webui/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "3dab8096119e91f2572fc36ff01dd2572446dbdab1c450957a43926ae951e14f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LibreChat",
      "application_id": "librechat",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. A standard custom endpoint uses OpenAI Chat Completions (baseURL with /v1). provider: 'anthropic' enables the native /v1/messages client. The documentation's Anthropic example specifies baseURL without /v1 (https://api.anthropic.com), so use https://api.ailoot.ai for Ailoot. fetch: true retrieves the list from /v1/models.",
        "description": "Self-hosted web chat · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "1738f449fc7f0cdb8266f29cb442c62a93a97423d0cb8404a274e576d97c5232",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/librechat/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "1738f449fc7f0cdb8266f29cb442c62a93a97423d0cb8404a274e576d97c5232",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Cherry Studio",
      "application_id": "cherry-studio",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation confirms support for the OpenAI, Anthropic, OpenAI Responses, and Gemini protocols, and a preview of the final path below the field, but it does not describe the rules for appending /v1 — use the preview as your guide. All three of our formats (Chat Completions, Responses, Messages) are compatible.",
        "description": "Desktop app · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "7440a1ddbd2e945bac4836f62af61c56d9ce24e4dc7602ec19f7ed2dc0186b64",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/cherry-studio/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "7440a1ddbd2e945bac4836f62af61c56d9ce24e4dc7602ec19f7ed2dc0186b64",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Chatbox",
      "application_id": "chatbox",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation lists API Host without /v1 (example: https://api.openai.com), with /v1/chat/completions as the default path. There is also a Google Gemini compatible type, but it has not been tested with our /v1beta. JSON configuration import (type: 'openai', apiHost, apiPath) is available from 1.15.1 via chatbox://provider/import?config=<base64>. Vision is disabled for the GPT and Claude examples shown: the 2026-09-30 catalog snapshot lists only text for the OpenAI Chat format. If your Chatbox version offers vision, enable it only for a model whose current catalog card lists image input in the selected API format; a client's ability to attach an image does not prove that the model supports it.",
        "description": "Desktop and mobile · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "cd667fd469b4fb121f88889581f085c7ec77e20de40f8655742182f55c9c9145",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/chatbox/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "cd667fd469b4fb121f88889581f085c7ec77e20de40f8655742182f55c9c9145",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LobeChat",
      "application_id": "lobechat",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. OPENAI_PROXY_URL defaults to https://api.openai.com/v1, so include /v1. ANTHROPIC_PROXY_URL defaults to https://api.anthropic.com, without /v1. GOOGLE_PROXY_URL can in principle connect Gemini format through https://api.ailoot.ai, but we have not tested this option. Use server mode: requests sent directly from the browser may currently be rejected by Ailoot’s CORS rules.",
        "description": "Self-hosted web chat · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "67e04c265c9d395838e2980b81c571fccbd8ca381459cc575adc08bfdbbb163c",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/lobechat/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "67e04c265c9d395838e2980b81c571fccbd8ca381459cc575adc08bfdbbb163c",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Jan",
      "application_id": "jan",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Docs: for OpenAI-compatible providers, Base URL must include /v1 (otherwise you get 404); a trailing slash is removed. The Anthropic-mode example for LiteLLM omits /v1. Model capabilities (tools, vision) must be configured manually for custom providers. Backup keys are supported (retries only on 401/403/429).",
        "description": "Desktop application · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f1c607dea5905d2c15095b211b5096342bab9b95643c736929ece7cf1762aa3e",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/jan/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f1c607dea5905d2c15095b211b5096342bab9b95643c736929ece7cf1762aa3e",
      "version_match": null,
      "versions": null
    },
    {
      "application": "SillyTavern",
      "application_id": "sillytavern",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation says to add /v1 when troubleshooting a connection and NOT to add /chat/completions. Models are fetched if the server provides /v1/models, which Ailoot does.",
        "description": "Roleplay chat · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "bc7a4af7b88839f68ea0424f1303d8a5e0eb1b9550576bf89c2013b7e2853f7f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/sillytavern/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "bc7a4af7b88839f68ea0424f1303d8a5e0eb1b9550576bf89c2013b7e2853f7f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "AnythingLLM",
      "application_id": "anythingllm",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation labels this provider “for developers”. If needed, use GENERIC_OPEN_AI_MODEL_MAX_TOKEN_KEY='max_completion_tokens'. Embeddings have a separate generic-openai embedder (EMBEDDING_BASE_PATH + GENERIC_OPEN_AI_EMBEDDING_API_KEY) — the nemotron-3-embed model through /v1/embeddings.",
        "description": "Chat with documents · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "b3281daf5a157bda2f8802e60e66c2e919e7936f2afd3f1f97895cc60e32d0bd",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/anythingllm/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createEmbeddings",
          "path": "/v1/embeddings",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "b3281daf5a157bda2f8802e60e66c2e919e7936f2afd3f1f97895cc60e32d0bd",
      "version_match": null,
      "versions": null
    },
    {
      "application": "big-AGI",
      "application_id": "big-agi",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation describes these variables as overrides for the OpenAI and Anthropic backend host (for proxies and custom endpoints). It says “host”, so we use a URL without /v1, but the documentation does not specify the exact path format — check it on the first request.",
        "description": "Self-hosted web chat · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "9503545909150b294c7486c3034867919bb7274ef7dced56f66d60998a2bf5e9",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/big-agi/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "9503545909150b294c7486c3034867919bb7274ef7dced56f66d60998a2bf5e9",
      "version_match": null,
      "versions": null
    },
    {
      "application": "BoltAI",
      "application_id": "boltai",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. A full chat completions URL is required. To use it with AI Command, make this service the default. These instructions follow the BoltAI help pages; screens may differ in BoltAI 2.",
        "description": "Mac app · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "831f84c51afa9f5bd1177724930362cea702fe45c39e7eeef7a5029bdc3ae528",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/boltai/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "831f84c51afa9f5bd1177724930362cea702fe45c39e7eeef7a5029bdc3ae528",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Hugging Face Chat UI",
      "application_id": "hugging-face-chat-ui",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Chat UI works only with OpenAI-compatible APIs through OPENAI_BASE_URL and retrieves its model list from /models.",
        "description": "Self-hosted web chat · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "2e505583d61ecd67671f053b0f15d1a33f0c50faf7927c6e9b49cfcaa0d33c2b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/hugging-face-chat-ui/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "2e505583d61ecd67671f053b0f15d1a33f0c50faf7927c6e9b49cfcaa0d33c2b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Msty Studio",
      "application_id": "msty-studio",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation confirms a custom OpenAI-compatible provider but does not specify the URL format. /v1 is the standard OpenAI API root; if you receive 404, check the URL without /v1. A custom Anthropic-compatible endpoint is not described.",
        "description": "Desktop application · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "7d10103116adc7e4028832acab4a3d3fd4f95b27940836b5a1692a24c2c4ddcf",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/msty-studio/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "7d10103116adc7e4028832acab4a3d3fd4f95b27940836b5a1692a24c2c4ddcf",
      "version_match": null,
      "versions": null
    },
    {
      "application": "NextChat",
      "application_id": "nextchat",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use OpenAI Chat through the NextChat server for this setup. When deploying on Vercel or Docker, set BASE_URL=https://api.ailoot.ai without /v1, OPENAI_API_KEY, CUSTOM_MODELS and DEFAULT_MODEL. Redeploy the server after changing these variables.",
        "description": "Self-hosted web chat · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "b99b58259f7b711eadcdea9788fbd7497a2e75d8d5a851ea2a27c4e1ad67b686",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/nextchat/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "b99b58259f7b711eadcdea9788fbd7497a2e75d8d5a851ea2a27c4e1ad67b686",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Obsidian Copilot",
      "application_id": "obsidian-copilot",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The model list comes from /v1/models, and you can enter a model manually. If Test passes but Quick Chat does not send messages, turn on Enable CORS for the provider; the response will arrive in full without streaming. Keys are stored in Obsidian Keychain.",
        "description": "Obsidian plugin · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "a3afc832cc83b0f0b26a5bd010afe71520533fcfc3d50d5f290a722647099b92",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/obsidian-copilot/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "a3afc832cc83b0f0b26a5bd010afe71520533fcfc3d50d5f290a722647099b92",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Page Assist",
      "application_id": "page-assist",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The documentation confirms Custom with an API URL and key but does not specify the URL format. /v1 is the standard OpenAI API root. Automatic model discovery is guaranteed only for Ollama, LM Studio, and Llamafile; other providers require models to be added manually.",
        "description": "Browser extension · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "c071ada69997f6454f5b08237b3547d1369b55a2a6c2ce1abb4dfc856a4419fd",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/page-assist/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "c071ada69997f6454f5b08237b3547d1369b55a2a6c2ce1abb4dfc856a4419fd",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Raycast AI",
      "application_id": "raycast-ai",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. base_url is an OpenAI-compatible endpoint without the /chat/completions suffix. Raycast rereads the file without restarting. If abilities is not set, tools and vision are treated as unsupported. Models appear in Quick AI, AI Chat, and AI Commands. This example uses vision.supported = false: the 2026-09-30 catalog snapshot lists text only for Claude/OpenAI Chat. If your Raycast version supports this setting, enable vision only for a model whose current catalog card declares image input in OpenAI Chat format; the client flag alone does not prove API image support.",
        "description": "Launcher · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "b2724df59b927f56f769fd4a7b8733c8e022aaa929aeefa89891f0a23c6a80ee",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/raycast-ai/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "b2724df59b927f56f769fd4a7b8733c8e022aaa929aeefa89891f0a23c6a80ee",
      "version_match": null,
      "versions": null
    },
    {
      "application": "TypingMind",
      "application_id": "typingmind",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Enter Endpoint as the full path. The key is sent through a custom Authorization: Bearer sk-... header, which Ailoot accepts. TypingMind’s web version calls the API directly from the browser, and CORS may currently block these requests; the desktop version is more reliable. TypingMind’s Gemini type sends the key in apiKey, which Ailoot does not accept. Use OpenAI Chat Completions instead.",
        "description": "Web application · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "8af6f87a5368ca5c354c86f96757dd0953ef384a8ea8fc329e51a78337f3fcc9",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/typingmind/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "8af6f87a5368ca5c354c86f96757dd0953ef384a8ea8fc329e51a78337f3fcc9",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenAI SDK (Python)",
      "application_id": "openai-python-sdk",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Include /v1 in the URL: the SDK appends /chat/completions, /responses, /embeddings, /images/*, and /audio/*. Chat Completions and Responses work; Responses requires a model whose catalog entry lists that format. Streaming and tools use the standard formats. Ailoot errors are JSON with a Request ID and are caught as openai.APIStatusError.",
        "description": "SDK · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "5d2508fe74b08b9827f3c3d41ccc26a7b929c714d01920dfd6176c7048b3c0bb",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openai-python-sdk/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "5d2508fe74b08b9827f3c3d41ccc26a7b929c714d01920dfd6176c7048b3c0bb",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenAI SDK (Node.js)",
      "application_id": "openai-node-js-sdk",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The README shows baseURL. Reading OPENAI_BASE_URL is visible in the client source, src/client.ts; its default is https://api.openai.com/v1. Include /v1 in the Ailoot URL. Both chat.completions and responses are available.",
        "description": "SDK · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "ec895411845572e35863409c33004a0673f7996e52720e20820349eef886982d",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openai-node-js-sdk/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "ec895411845572e35863409c33004a0673f7996e52720e20820349eef886982d",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Anthropic SDK (Python)",
      "application_id": "anthropic-python-sdk",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use a URL WITHOUT /v1: the SDK adds /v1/messages itself. The gateway accepts the key in x-api-key (as sent by the SDK) and Authorization: Bearer. Streaming, tools, and /v1/messages/count_tokens work. Batch processing (Batches) and the Files API are not listed as supported in the Ailoot catalog.",
        "description": "SDK · Anthropic Messages",
        "formats": [
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "3e76339132f94788ecd46c30b2ef0dab27f2b90696a662e646a5d7994e137c4b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/anthropic-python-sdk/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "countMessageTokens",
          "path": "/v1/messages/count_tokens",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "3e76339132f94788ecd46c30b2ef0dab27f2b90696a662e646a5d7994e137c4b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Vercel AI SDK",
      "application_id": "vercel-ai-sdk",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Providers use different URLs: OpenAI-compatible and Anthropic use /v1 (Anthropic defaults to https://api.anthropic.com/v1); Google uses /v1beta (default https://generativelanguage.googleapis.com/v1beta). The @ai-sdk/openai provider defaults to the Responses API. For models without responses, use openai.chat(\"id\") or createOpenAICompatible.",
        "description": "SDK · OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "responses",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e166c633a70c59db856fdbf79b4bbcfcecd589f82f03d58273ef783723ea810f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/vercel-ai-sdk/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e166c633a70c59db856fdbf79b4bbcfcecd589f82f03d58273ef783723ea810f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LangChain",
      "application_id": "langchain",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. ChatOpenAI: use a URL with /v1. According to the documentation, ChatOpenAI supports only the official OpenAI specification: nonstandard fields such as reasoning_content from third-party models are not retained. For Claude, prefer ChatAnthropic: use a URL without /v1, as the SDK adds /v1/messages automatically. ChatAnthropic's base_url parameter and ANTHROPIC_API_URL/ANTHROPIC_BASE_URL environment variables are documented in the class documentation in the source code (langchain_anthropic/chat_models.py), but not on the integration page. The use_responses_api flag enables Responses mode in ChatOpenAI.",
        "description": "Framework · OpenAI Chat, OpenAI Responses, Anthropic Messages",
        "formats": [
          "chat",
          "responses",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "ffdfff6c329ef0516f76cda12b7e7ce34df6d2e546b1b5b91ae158dd37507ca9",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/langchain/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "ffdfff6c329ef0516f76cda12b7e7ce34df6d2e546b1b5b91ae158dd37507ca9",
      "version_match": null,
      "versions": null
    },
    {
      "application": "CrewAI",
      "application_id": "crewai",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The openai/ or anthropic/ prefix selects the provider in CrewAI; the request sends the id without the prefix. For OpenAI, the URL includes /v1; for Anthropic, it does not. The documentation also describes the custom_openai=True flag for an arbitrary OpenAI-compatible gateway. Anthropic requires max_tokens.",
        "description": "Agent framework · OpenAI Chat, Anthropic Messages",
        "formats": [
          "chat",
          "messages"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "28786b46604dbe0206132309d05243809bcfe9865c4a5239e910418ac8076fd1",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/crewai/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "28786b46604dbe0206132309d05243809bcfe9865c4a5239e910418ac8076fd1",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Google GenAI SDK (Python)",
      "application_id": "google-genai-python",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use a URL without /v1beta: the SDK builds /v1beta/models/{model}:generateContent. The key is sent in the x-goog-api-key header, which Ailoot accepts. Only models supporting the Gemini format are available. The documentation for the JavaScript version (@google/genai) does not describe a custom endpoint, so it is not included here.",
        "description": "SDK · Gemini",
        "formats": [
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "3fa7eec50f2c8083f6c02fa5003a0b6d3e764b148c3629834b2e0041871a8dc0",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/google-genai-python/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "3fa7eec50f2c8083f6c02fa5003a0b6d3e764b148c3629834b2e0041871a8dc0",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LiteLLM",
      "application_id": "litellm",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The openai/ prefix selects the OpenAI-compatible protocol; Ailoot receives the id without the prefix. LiteLLM adds /chat/completions and /embeddings automatically. According to the documentation, if you get a Not Found error, the URL should end with /v1.",
        "description": "SDK · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "450e27fe7ed1506d35159544f3b2821dbfd5447569e06358c4461924905f3b34",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/litellm/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "450e27fe7ed1506d35159544f3b2821dbfd5447569e06358c4461924905f3b34",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LiteLLM Proxy",
      "application_id": "litellm-proxy",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The proxy is useful if you want to issue your team internal keys backed by a single Ailoot key. Charges in Ailoot are attributed to the key specified in api_key. Use a URL with /v1.",
        "description": "Your own gateway · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "e0bd7b8fd8e2b63b2617fdd4aa1bc081d2b9261201f2f8dbf71d2abb359ed313",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/litellm-proxy/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "e0bd7b8fd8e2b63b2617fdd4aa1bc081d2b9261201f2f8dbf71d2abb359ed313",
      "version_match": null,
      "versions": null
    },
    {
      "application": "LlamaIndex",
      "application_id": "llamaindex",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use a URL with /v1. is_chat_model=True is required; otherwise, the class uses the legacy /completions endpoint. Set is_function_calling_model=True so agents can use tools. Set context_window according to the model card in the Ailoot catalog.",
        "description": "Framework · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "35c34470297921171f196afdd1558e88e98f05c7020bb02a3a123bd0f2288541",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/llamaindex/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "35c34470297921171f196afdd1558e88e98f05c7020bb02a3a123bd0f2288541",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Mastra",
      "application_id": "mastra",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Set url to the base URL with /v1, not the full /chat/completions path. Chat Completions is the default; api: \"responses\" switches to the Responses API. The id form \"provider/model\" sends the bare model ID to the gateway. The documentation shows apiKey in the model object in an example with headers; its use alongside url is not described separately.",
        "description": "Agent framework · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "c94a77fa8a3d6e928746ed79dfe3171c0f50264fdf16eec3454819d8d77fe87c",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/mastra/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "c94a77fa8a3d6e928746ed79dfe3171c0f50264fdf16eec3454819d8d77fe87c",
      "version_match": null,
      "versions": null
    },
    {
      "application": "OpenAI Agents SDK",
      "application_id": "openai-agents-sdk",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Use an address with /v1. Disable tracing with set_tracing_disabled(True): otherwise, the SDK will attempt to send traces to OpenAI without an OpenAI key. Chat Completions is available only if the model lists this method in the catalog and the method is available to your key; Responses (the SDK default) is available only for models that list the responses method in the catalog. OpenAI’s built-in tools (web search and files) are not guaranteed through a third-party gateway.",
        "description": "Agent framework · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "515b9b24b29be1aa0799d5f45bc927fa2a4c3822e5669b6317ed28911bb2c4ea",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/openai-agents-sdk/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "515b9b24b29be1aa0799d5f45bc927fa2a4c3822e5669b6317ed28911bb2c4ea",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Pydantic AI",
      "application_id": "pydantic-ai",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Include /v1 in the URL. The documentation defaults to OpenAIResponsesModel: use it only for models with the responses method; use OpenAIChatModel for the others.",
        "description": "Agent framework · OpenAI Chat, OpenAI Responses",
        "formats": [
          "chat",
          "responses"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "2740d4981db970e149f7ded30dec9586250a52e9946769d0845a7fd5055e61ab",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/pydantic-ai/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "2740d4981db970e149f7ded30dec9586250a52e9946769d0845a7fd5055e61ab",
      "version_match": null,
      "versions": null
    },
    {
      "application": "n8n",
      "application_id": "n8n",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/responses, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Credential checks call /models for OpenAI, /v1/models for Anthropic, and /v1beta/models for Gemini; Ailoot provides all three paths. The n8n documentation pages do not describe Base URL, but the field exists in the credentials themselves: OpenAiApi.credentials.ts and AnthropicApi.credentials.ts label it “Override the default base URL for the API”. On n8n Cloud, do not select “Use Gateway credits”, or requests will bypass Ailoot.",
        "description": "No-code automation · OpenAI Chat, OpenAI Responses, Anthropic Messages, Gemini",
        "formats": [
          "chat",
          "responses",
          "messages",
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "c1831c64fcd46ecc568a237d07318f0d7363938a57dc72cf9adc13f094dfa519",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/n8n/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createResponse",
          "path": "/v1/responses",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createMessage",
          "path": "/v1/messages",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "c1831c64fcd46ecc568a237d07318f0d7363938a57dc72cf9adc13f094dfa519",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Dify",
      "application_id": "dify",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Only the workspace owner and administrators can manage providers. According to the plugin README, the URL includes /v1 for LLMs; for embeddings, rerank, STT, and TTS, the plugin appends the API version, so use a URL without /v1 (otherwise the result will be /v1/v1). Add each Ailoot model as a separate entry; enable image input and streaming output in the model settings.",
        "description": "LLM application platform · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "570219623f5da0bbfb7fea79e7a863dd7bf109c77a26e9b2fdf0835bd455922a",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/dify/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "570219623f5da0bbfb7fea79e7a863dd7bf109c77a26e9b2fdf0835bd455922a",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Flowise",
      "application_id": "flowise",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. ChatOpenAI has a fixed model list, so use ChatOpenAI Custom for arbitrary Ailoot ids; it lets you enter the model name manually. Base Path includes /v1. For embeddings, use the OpenAI Embeddings Custom node.",
        "description": "Chain builder · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f465675b84db16ab14c0ef5224e839eff038a132fca0118dc5c6c7cb38510cf5",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/flowise/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f465675b84db16ab14c0ef5224e839eff038a132fca0118dc5c6c7cb38510cf5",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Home Assistant",
      "application_id": "home-assistant",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. This is a third-party component, not an official integration. Device control uses function calling (tools) in Chat Completions, so choose models that support tools. The official OpenAI Conversation integration does not support a custom endpoint.",
        "description": "Smart home · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "bd5d0a4649979e17bf38bc3003e73a7364ef801d41b24bb2bc6c3d07aa7de243",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/home-assistant/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "bd5d0a4649979e17bf38bc3003e73a7364ef801d41b24bb2bc6c3d07aa7de243",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Langflow",
      "application_id": "langflow",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Langflow tests the connection and fetches the model list from /v1/models. The models appear under Language Models and Embedding Models; you then need to enable the models you want manually. The provider is installed with langflow.",
        "description": "Chain builder · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "d9978783711670c62aa1c6f1833d0ca9b53f8b1914b179264f11f838b9b2006b",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/langflow/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "d9978783711670c62aa1c6f1833d0ca9b53f8b1914b179264f11f838b9b2006b",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Make",
      "application_id": "make",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. This is a general-purpose HTTP module, not a dedicated Ailoot provider: its documentation allows any HTTPS URL. Store the key in an API-key connection, as Make recommends, rather than passing it in headers. Make does not need streaming output; omit stream.",
        "description": "No-code automation · HTTP request",
        "formats": [
          "http"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "6d4330bb2c0a2ae2683613c43fe7768545fc61ec594430e32b1da22830608bb1",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/make/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "6d4330bb2c0a2ae2683613c43fe7768545fc61ec594430e32b1da22830608bb1",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Telegram bot",
      "application_id": "telegram-bot",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Telegram frameworks have no built-in AI layer: configure the Ailoot URL in the OpenAI SDK inside the bot. With a zero balance, Ailoot returns a clear 402 error with a Request ID; show it to the bot user instead of crashing.",
        "description": "Bots · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "220c0e83ac8aa53aa04b5e7cb07b3508c3c061b719f77f4924bbe9fda13bc070",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/telegram-bot/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "220c0e83ac8aa53aa04b5e7cb07b3508c3c061b719f77f4924bbe9fda13bc070",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Zapier",
      "application_id": "zapier",
      "compatibility_scope": {
        "conditions": "Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. This is a general-purpose HTTP request. Zapier has no ready-made provider with a base URL field. Custom Request sends Data unchanged without parsing it, so validate the JSON beforehand. Webhooks by Zapier is available on paid Zapier plans.",
        "description": "No-code automation · HTTP request",
        "formats": [
          "http"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "9a1ac5a413aabc7db22f6c4cc2b4117d9f20026433d94e8d078f98dc88d76b4f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/zapier/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "9a1ac5a413aabc7db22f6c4cc2b4117d9f20026433d94e8d078f98dc88d76b4f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Antigravity CLI",
      "application_id": "antigravity-cli",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The protocol is native Gemini REST (streamGenerateContent, key in X-Goog-Api-Key), using the https://api.ailoot.ai/v1beta/... path. For each question, agy sends two requests: the conversation title and the response itself. The agent reserves substantially more for each step than a regular chat, so keep extra funds in your balance. This card is in the “Under review” section: the configuration is based on the documentation, and a live client run through Ailoot has not yet been performed. If modelProvider = gemini and GEMINI_API_KEY is empty, the CLI will not start.",
        "description": "Terminal agent · Gemini",
        "formats": [
          "gemini"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "f32fcddeb168fd9c1900c85941ca124c7bae24bcec9dea0899516b277d6693ff",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/antigravity-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "generateContent",
          "path": "/v1beta/models/{model}:generateContent",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "f32fcddeb168fd9c1900c85941ca124c7bae24bcec9dea0899516b277d6693ff",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Cline CLI",
      "application_id": "cline-cli",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The Base URL / API Key / Model ID fields are described in Cline's documentation for OpenAI Compatible. The CLI documentation does not list the exact labels in the cline auth wizard, so check the screen.",
        "description": "Terminal agent · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "cb77a70fedbe61f2c7ccb72e4cc335dde9bb5aabc7719304740b6d52ced1bde2",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/cline-cli/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "cb77a70fedbe61f2c7ccb72e4cc335dde9bb5aabc7719304740b6d52ced1bde2",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Copilot for JetBrains",
      "application_id": "copilot-jetbrains-byok",
      "compatibility_scope": {
        "alternative_guide_url": "https://ailoot.ai/docs/en/integrations/jetbrains-ai-assistant/",
        "conditions": "JetBrains AI Assistant GitHub confirms custom endpoint support. Its official screenshot shows Provider Name, API Key and API Type: Chat Completions, but no endpoint URL example. A ready Ailoot configuration is therefore not provided here. JetBrains AI Assistant is the documented alternative in this IDE. Ask the official plugin support team to clarify the endpoint URL requirements.",
        "configuration_runnable": false,
        "connection_state": "documentation-only",
        "description": "Editor extension · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "4180a0ad5560db2b0417029cef23b4255a2631ee05e049f3b7686cc0f7704fd9",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/copilot-jetbrains-byok/",
      "methods": [],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "4180a0ad5560db2b0417029cef23b4255a2631ee05e049f3b7686cc0f7704fd9",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Cursor",
      "application_id": "cursor",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. Cursor's current official documentation does not describe a custom endpoint: it lists only OpenAI/Anthropic/Google/Azure/Bedrock keys, states that custom keys work only in chat (Tab continues to use Cursor models), and says that all requests go through Cursor's servers (the endpoint must be public; api.ailoot.ai is public). The URL override toggle exists in the interface, but Cursor forum users report issues: it applies to all models, Agent mode may not use a custom key, and the field does not accept input in some 3.15.x builds.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "6d9432b2188d6823ed09097e461095f9365788ec9d697cabc28f765d6ee4ba7f",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/cursor/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "6d9432b2188d6823ed09097e461095f9365788ec9d697cabc28f765d6ee4ba7f",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Obsidian Text Generator",
      "application_id": "obsidian-text-generator",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The plugin documentation mentions a Custom provider but does not describe the URL field or its format. These settings are based on the plugin interface; check your settings window.",
        "description": "Obsidian plugin · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "fdf7234bc51eab45998c4b79014bb433bb22ebe315d11f18ed51f7531c570ffa",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/obsidian-text-generator/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "fdf7234bc51eab45998c4b79014bb433bb22ebe315d11f18ed51f7531c570ffa",
      "version_match": null,
      "versions": null
    },
    {
      "application": "PearAI",
      "application_id": "pearai",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The official PearAI documentation could not be checked because the documentation site was unavailable, and the repository has not been updated for a long time. The configuration follows Continue’s example; check it in the application.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "0591616fe480e8b54671709cb5c6409597e4f221bb5ade64ed9869d40234c65a",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/pearai/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "0591616fe480e8b54671709cb5c6409597e4f221bb5ade64ed9869d40234c65a",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Visual Studio 2026",
      "application_id": "visual-studio-2026",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. The Visual Studio blog (29.09.2026) announced custom URLs for OpenAI and Ollama in VS 2026 Stable. The documentation still describes only OpenAI/Anthropic/Google keys without a URL field, so field names and URL format remain unconfirmed. Chat only; unavailable on Copilot Business/Enterprise plans.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "affb88f415ad5340f06b5e92f5684c00d6387fd61429c1535676e58fd53db161",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/visual-studio-2026/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "affb88f415ad5340f06b5e92f5684c00d6387fd61429c1535676e58fd53db161",
      "version_match": null,
      "versions": null
    },
    {
      "application": "Void",
      "application_id": "void",
      "compatibility_scope": {
        "conditions": "Under review. The configuration is based on the application's documentation, but some details remain unconfirmed. Compare it with the settings screen and contact support if anything does not match. Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, then use that ID in the configuration. For agents, also check tool support and the features required by your client version. These settings come from Void’s source code, not its user documentation. The Void repository is archived, and the editor is no longer maintained; this is useful only for existing users.",
        "description": "Code editor · OpenAI Chat",
        "formats": [
          "chat"
        ],
        "kind": "documented-subset",
        "runtime_validation": null
      },
      "evidence": {
        "catalogue_sha256": "27174ac49c7576fe4702e430105b1f03222a9e3a6f4070449e7e75e0dd232e37",
        "catalogue_url": "https://ailoot.ai/integrations/en/",
        "guide_sha256": "d633b1be128874d41fd40fde0f1bbd747c2a0250f7e4408ac24667c02d5915d2",
        "proof_scope": "accepted-static-integration-content",
        "public_api_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
      },
      "guide_url": "https://ailoot.ai/docs/en/integrations/void/",
      "methods": [
        {
          "http_method": "GET",
          "operation_id": "listModels",
          "path": "/v1/models",
          "status": "documented-in-guide"
        },
        {
          "http_method": "POST",
          "operation_id": "createChatCompletion",
          "path": "/v1/chat/completions",
          "status": "documented-in-guide"
        }
      ],
      "schema": "ailoot-integration-facts-v1",
      "source_revision": "d633b1be128874d41fd40fde0f1bbd747c2a0250f7e4408ac24667c02d5915d2",
      "version_match": null,
      "versions": null
    }
  ],
  "models": [],
  "page": {
    "description": "Find clients and SDKs that accept an Ailoot key. Copy the setup instructions for the API URL and key into your chosen tool.",
    "family": "integrations",
    "locale": "en",
    "title": "Connect an AI API to agents, editors and chats — Ailoot",
    "url": "https://ailoot.ai/integrations/en/"
  },
  "product": {
    "commercial": {
      "authority": "owner_approved_business_input",
      "commercial_use_in_customer_product": true,
      "official_offer_licence_agreement": true,
      "permission_contact": "mailto:support@ailoot.ai",
      "promo_discount_max_percent": 50,
      "reseller_licence_on_request": true,
      "subscription_effect": "reduces_effective_token_cost",
      "use_cases": [
        "customer_products",
        "agents",
        "applications",
        "automations"
      ],
      "written_project_permission_on_request": true
    },
    "company": {
      "authority": "owner_approved_business_input",
      "claims": [
        "established operating experience",
        "large client base",
        "stable service",
        "ongoing KPI control"
      ],
      "scale": {
        "clients": "millions of customers",
        "currency": null,
        "monthly_sales": "monthly sales in the billions",
        "scope": "The company and its project portfolio"
      },
      "source": "https://ailoot.ai/ru/",
      "source_language": "ru"
    },
    "identity": {
      "id": "semen-router",
      "url": "https://ailoot.ai/"
    },
    "name": "Ailoot",
    "provenance": {
      "approved_offer_sha256": "03ba9f99acb815bdfd97051de0b513aeb11dcad811723225ed2f1192cddab0ca",
      "client_contract_sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22",
      "proof_scope": "accepted-static-public-contract",
      "public_operation_count": 26,
      "sources": [
        {
          "name": "public-api-contract-v1.json",
          "sha256": "73c014cafc05d781ab92ee7cb6a5546a07dca7c1066228824cb404e7f623df22"
        },
        {
          "name": "openapi-contract-v1.md",
          "sha256": "eebcd42781235054b93f763d84cb0fbc27c6c5762515c2b4990c390accba8763"
        },
        {
          "name": "openapi.py",
          "sha256": "0e502577f8a9a347a3ba5a514294a336b06aea78cac41b9fa1e4871b69fbf4e8"
        },
        {
          "name": "agent-facts-contract-v1.json",
          "sha256": "856af0544f85dc29b915132a3c762698ae9162555b24b79cfabfec63b05bc43a"
        },
        {
          "name": "locale-routes.py",
          "sha256": "920d2b69bf735d7298eb24f06cf7bd4eb373b5f76639b61fb6e98e8f94bfec7a"
        },
        {
          "name": "approved-offer-copy-v1.json",
          "sha256": "03ba9f99acb815bdfd97051de0b513aeb11dcad811723225ed2f1192cddab0ca"
        },
        {
          "name": "offer-copy.py",
          "sha256": "fe062036873acf8abb23a182248ce508c3679979455dadc634dcd5063d60cb1f"
        }
      ]
    },
    "public_urls": {
      "api_guide": "https://ailoot.ai/openapi.md",
      "entrypoints": {
        "docs": "https://ailoot.ai/docs/en/",
        "integrations": "https://ailoot.ai/integrations/en/",
        "models": "https://ailoot.ai/models/en/"
      },
      "offer": "https://ailoot.ai/legal/offer?lang=en",
      "openapi": "https://ailoot.ai/openapi.json",
      "page": "https://ailoot.ai/integrations/en/",
      "support": "mailto:support@ailoot.ai"
    },
    "schema": "ailoot-product-facts-v1",
    "source_revision": "85cfbc9b120ef411f85241ed855c7fb31dd298a4134ae436d60c9003b26b2f1f",
    "supported_access_modes": [
      {
        "id": "models",
        "label": "Model discovery",
        "operations": [
          {
            "http_method": "GET",
            "operation_id": "listModels",
            "path": "/v1/models",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "listGeminiModels",
            "path": "/v1beta/models",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "chat",
        "label": "OpenAI Chat Completions",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createChatCompletion",
            "path": "/v1/chat/completions",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "responses",
        "label": "OpenAI Responses",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createResponse",
            "path": "/v1/responses",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "messages",
        "label": "Anthropic Messages",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createMessage",
            "path": "/v1/messages",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "gemini",
        "label": "Gemini generateContent",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "generateContent",
            "path": "/v1beta/models/{model}:generateContent",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "generateContentCompatibility",
            "path": "/antigravity/v1beta/models/{model}:generateContent",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "streamGenerateContent",
            "path": "/v1beta/models/{model}:streamGenerateContent",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "embeddings",
        "label": "Text embeddings",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createEmbeddings",
            "path": "/v1/embeddings",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "images",
        "label": "OpenAI Images",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createImage",
            "path": "/v1/images/generations",
            "status": "documented"
          },
          {
            "http_method": "POST",
            "operation_id": "editImage",
            "path": "/v1/images/edits",
            "status": "documented"
          },
          {
            "description": "Save task_id and poll_url. Streaming is rejected. A task has processing/completed/failed status and an expires_at field.",
            "http_method": "POST",
            "operation_id": "createImageTask",
            "path": "/v1/images/generations/async",
            "status": "documented"
          },
          {
            "description": "Save task_id and poll_url. Streaming is rejected. A task has processing/completed/failed status and an expires_at field.",
            "http_method": "POST",
            "operation_id": "createImageEditTask",
            "path": "/v1/images/edits/async",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getImageTask",
            "path": "/v1/images/tasks/{task_id}",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "speech",
        "label": "Speech audio",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createSpeech",
            "path": "/v1/audio/speech",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "transcriptions",
        "label": "Audio transcription",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createTranscription",
            "path": "/v1/audio/transcriptions",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "videos",
        "label": "Video generation and retrieval",
        "operations": [
          {
            "description": "Save the returned task identifier. Poll status and download content; do not repeat creation after a timeout or unknown result. Required media parameters differ by model; this documented example is not a parameter guarantee for every video model.",
            "http_method": "POST",
            "operation_id": "createVideo",
            "path": "/v1/videos/generations",
            "status": "documented"
          },
          {
            "description": "Save the returned task identifier. Poll status and download content; do not repeat creation after a timeout or unknown result. Required media parameters differ by model; this documented example is not a parameter guarantee for every video model.",
            "http_method": "POST",
            "operation_id": "createVideoCompatible",
            "path": "/v1/videos",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideo",
            "path": "/v1/videos/{request_id}",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoContent",
            "path": "/v1/videos/{request_id}/content",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoGeneration",
            "path": "/v1/videos/generations/{request_id}",
            "status": "documented"
          },
          {
            "http_method": "GET",
            "operation_id": "getVideoGenerationContent",
            "path": "/v1/videos/generations/{request_id}/content",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "music",
        "label": "Music generation",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createMusic",
            "path": "/v1/music/generations",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "systemone",
        "label": "System One decisions",
        "operations": [
          {
            "http_method": "POST",
            "operation_id": "createSystemOne",
            "path": "/v1/systemone",
            "status": "documented"
          }
        ],
        "transport": "https"
      },
      {
        "id": "realtime",
        "label": "Realtime voice WebSocket",
        "operations": [
          {
            "http_method": "GET",
            "operation_id": "openRealtimeSession",
            "path": "/v1/realtime",
            "status": "documented"
          }
        ],
        "transport": "websocket"
      }
    ]
  },
  "schema": "ailoot-public-facts-v1",
  "sourceRevision": "85cfbc9b120ef411f85241ed855c7fb31dd298a4134ae436d60c9003b26b2f1f"
}
