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

# List supported models

> Returns all models supported for tasks.
Use this endpoint to discover available models and their capabilities.




## OpenAPI

````yaml /openapi/neo.public.openapi.json get /api/v1/models
openapi: 3.1.0
info:
  contact:
    name: ProjectDiscovery
    url: https://neo.projectdiscovery.io
  description: Neo API Server - Security agent orchestration platform
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Neo API
  version: 1.0.0
servers:
  - description: Production
    url: https://neo.api.projectdiscovery.io
  - description: Development
    url: https://neo.api.dev.projectdiscovery.io
  - description: Local development
    url: http://localhost:8080
security: []
tags:
  - description: Task execution and management
    name: Tasks
  - description: Agent listing and management
    name: Agents
  - description: Public agent directory
    name: Agent Directory
  - description: User file storage management
    name: Files
  - description: User working memory management
    name: Memory
  - description: Scheduled and recurring task management
    name: Schedules
  - description: Knowledge base and semantic search
    name: Knowledge
  - description: Encrypted user credentials and API keys
    name: Secrets
  - description: Neo API key management for programmatic access
    name: API Keys
  - description: User profile and account information
    name: User
  - description: Task and LLM usage tracking
    name: Usage
  - description: Bring Your Own Key provider management
    name: BYOK
  - description: Connect personal AI provider accounts and select them as a model source
    name: AI Connections
  - description: Model discovery and capabilities
    name: Models
  - description: Third-party integrations
    name: Integrations
  - description: Skill knowledge documents for agent prompts
    name: Skills
  - description: User-authored tools and toolkit management
    name: Dynamic Tools
  - description: Team management and member invitations
    name: Teams
  - description: Prompt library management and discovery
    name: Prompts
  - description: Slack bot integration for workspace installation and OAuth
    name: Slack
  - description: GitHub integration for PR reviews and repository management
    name: GitHub
  - description: Vulnerability issue tracking and management
    name: Issues
  - description: Subscription billing and plans
    name: Billing
  - description: Project management and member assignments
    name: Projects
  - description: SSH key pair generation and management for remote server access
    name: SSH Keys
  - description: Codebase structural analysis and mapping
    name: Codemaps
  - description: AI-generated codebase documentation and security analysis
    name: CodeWiki
  - description: Captured HTTP traffic query and replay
    name: Network Events
  - description: User and team API activity metadata
    name: Audit Logs
  - description: Vulnerability triage for HackerOne, GitHub, and Security Inbox
    name: Triage
paths:
  /api/v1/models:
    get:
      tags:
        - Models
      summary: List supported models
      description: |
        Returns all models supported for tasks.
        Use this endpoint to discover available models and their capabilities.
      operationId: get-v1-models
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelsResponse'
          description: List of supported models
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal server error
      security:
        - BearerAuth: []
        - ApiKeyAuth: []
components:
  schemas:
    ModelsResponse:
      properties:
        model_source:
          description: >
            The model source the list belongs to. Present when the deployment
            lists

            provider-reported models for non-Neo accounts.
          enum:
            - neo
            - byok
            - ai_connections
          type: string
        models:
          description: >
            List of models the caller can select. For the `neo` model source
            this is Neo's

            catalog. For `byok` and `ai_connections` it is the set of models the
            account's own

            provider credentials can reach; each `id` is the provider's exact
            model ID and

            Neo premium gating does not apply.
          items:
            $ref: '#/components/schemas/ModelInfo'
          type: array
      required:
        - models
      type: object
    ErrorResponse:
      properties:
        code:
          description: >
            Stable machine-readable error code — branch on this rather than

            matching the human `error`/`message` strings. `access_restricted`

            (HTTP 403) denies hosted Neo access under the access policy. On team

            invitations, param=email identifies a restricted recipient rather

            than the caller; show the error without redirecting the caller.
            Domain codes include

            `user_spending_cap_reached`, `project_spending_cap_reached`, and

            `insufficient_neo_credits`; Free/usage codes include

            `free_grant_challenge_required`, `free_usage_exhausted`,

            `free_task_budget_exhausted`, `model_not_available_on_free`,

            `sandbox_not_available_on_free` (cloud sandbox surfaces are not

            available on the Free plan; task files remain available from the

            task), `free_cannot_continue_managed_task` (a task that ran on the

            standard cloud sandbox cannot be continued on the Free plan; start

            a new task), `free_origin_not_supported` (integration-originated

            tasks are not available on the Free plan),

            `weekly_usage_limit_reached`, `billing_period_usage_limit_reached`,

            `topup_required`, `subscription_required`, and

            `isolated_workspace_purged`. Otherwise it mirrors the error kind

            (e.g. `forbidden`, `invalid_request`, `not_exists`,
            `already_exists`).
          example: user_spending_cap_reached
          type: string
        error:
          example: Bad request
          type: string
        error_id:
          description: Correlation id for a specific error instance, when present.
          type: string
        kind:
          description: Coarse error category (e.g. "forbidden request", "invalid request").
          example: forbidden request
          type: string
        message:
          description: |
            Human-readable detail (the kind prefixed to the error). For display,
            not for branching.
          type: string
        param:
          description: >-
            Field rejected by the policy; email for a restricted invite
            recipient.
          type: string
        turnstile_site_key:
          description: |
            Public Cloudflare Turnstile site key returned only with
            `free_grant_challenge_required`, so the client can complete the
            invisible verification before retrying the request.
          type: string
      required:
        - error
      type: object
    ModelInfo:
      properties:
        context_window:
          description: Maximum context window size in tokens
          type: integer
        credential_ref:
          description: >-
            The credential that serves this row on the byok source: a provider
            key ID or a custom endpoint ID. Pass it back as the task's
            `credential_ref` to run the model on that credential. Omitted on the
            Neo model source.
          type: string
        cyber_verified:
          description: >-
            Whether the model runs under a model provider's cyber verification
            grant (Anthropic's Cyber Verification Program), which relaxes the
            safeguards that block dual-use security work such as exploit
            development and penetration testing. Set only on the neo source,
            from Neo's grants with its model providers; a request that fails
            over to another route does not carry the grant. Omitted on byok and
            AI connections, where the grant belongs to the key's own
            organization.
          type: boolean
        data_regions:
          description: >-
            Regions the model's processing stays inside. On the neo source this
            is always us, under Neo's contracts with its model providers. On
            byok, only OpenRouter and Vercel AI Gateway report it, and a model
            outside every region is routed globally. Omitted when unknown.
          items:
            enum:
              - eu
              - us
            type: string
            x-enum-varnames:
              - ModelInfoDataRegionsEu
              - ModelInfoDataRegionsUs
          type: array
        default_reasoning_effort:
          description: Reasoning effort Neo applies when the request omits an override.
          enum:
            - none
            - minimal
            - low
            - medium
            - high
            - xhigh
            - max
          type: string
          x-enum-varnames:
            - ModelInfoDefaultReasoningEffortNone
            - ModelInfoDefaultReasoningEffortMinimal
            - ModelInfoDefaultReasoningEffortLow
            - ModelInfoDefaultReasoningEffortMedium
            - ModelInfoDefaultReasoningEffortHigh
            - ModelInfoDefaultReasoningEffortXhigh
            - ModelInfoDefaultReasoningEffortMax
        default_speed:
          description: Speed Neo applies when the request omits an override.
          enum:
            - standard
            - fast
          type: string
          x-enum-varnames:
            - ModelInfoDefaultSpeedStandard
            - ModelInfoDefaultSpeedFast
        description:
          description: Short description of the model's strengths
          type: string
        details:
          description: Model capability ratings and specialty info
          properties:
            cyber_security:
              description: Cyber-security capability rating (1-10)
              type: integer
            reasoning:
              description: Reasoning capability rating (1-10)
              type: integer
            specialty:
              description: Detailed description of the model's specialty
              type: string
            speed:
              description: Response speed rating (1-10)
              type: integer
          type: object
        id:
          description: |
            Model identifier (e.g., "sonnet-4.6"). Unique among the Neo and
            fixed-provider rows, but not across custom endpoints: two endpoints
            that serve one model ID are two rows with the same `id` and
            different `credential_ref` values.
          type: string
        is_premium:
          description: Whether the model requires premium/enterprise access
          type: boolean
        logo:
          description: Logo URL (string) or light/dark variant object
          oneOf:
            - type: string
            - properties:
                dark:
                  type: string
                light:
                  type: string
              required:
                - light
                - dark
              type: object
        max_output_tokens:
          description: Maximum output tokens
          type: integer
        name:
          description: Human-readable model name (e.g., "Claude Sonnet 4.6")
          type: string
        provider:
          description: >-
            Model provider (e.g., "anthropic", "openai", "google"), or "custom"
            for a custom OpenAI-compatible endpoint (its name is in
            `provider_label`).
          type: string
        provider_label:
          description: >-
            The provider as the user knows it: the product name of a fixed
            provider, or the name the user gave a custom endpoint. Omitted on
            the Neo model source.
          type: string
        reasoning_can_disable:
          description: >-
            Whether reasoning can be switched off for this model. False means it
            always reasons. Omitted when unknown.
          type: boolean
        reasoning_efforts:
          description: >-
            Exact reasoning effort overrides accepted for this Neo model. An
            empty array means the model uses its pinned/default reasoning
            behavior and accepts no override.
          items:
            enum:
              - none
              - minimal
              - low
              - medium
              - high
              - xhigh
              - max
            type: string
            x-enum-varnames:
              - ModelInfoReasoningEffortsNone
              - ModelInfoReasoningEffortsMinimal
              - ModelInfoReasoningEffortsLow
              - ModelInfoReasoningEffortsMedium
              - ModelInfoReasoningEffortsHigh
              - ModelInfoReasoningEffortsXhigh
              - ModelInfoReasoningEffortsMax
          type: array
        reasoning_style:
          description: >-
            How the model takes a reasoning option. Omitted when the provider
            did not say.
          enum:
            - adaptive
            - effort
            - max_tokens
          type: string
          x-enum-varnames:
            - ModelInfoReasoningStyleAdaptive
            - ModelInfoReasoningStyleEffort
            - ModelInfoReasoningStyleMaxTokens
        supported_input_modalities:
          description: >-
            Input types the provider reports for the model. Omitted when
            unknown.
          items:
            type: string
          type: array
        supported_output_modalities:
          description: >-
            Output types the provider reports for the model. Omitted when
            unknown.
          items:
            type: string
          type: array
        supports_reasoning:
          description: Whether the model supports reasoning/chain-of-thought
          type: boolean
        supports_speed:
          description: >-
            Whether the model accepts an explicit standard or fast speed
            selection.
          type: boolean
        supports_structured_output:
          description: >-
            Whether the provider reports that the model can return structured
            (JSON schema) output. Omitted when unknown.
          type: boolean
        supports_tools:
          description: >-
            Whether the provider reports that the model can call tools. Omitted
            when unknown.
          type: boolean
        zdr_available:
          description: >-
            Whether zero data retention is available. On the neo source it is
            always true and applies to every request, under Neo's contracts with
            its model providers. On byok, true means at least one route offers
            it; only OpenRouter and Vercel AI Gateway report it. Omitted when
            unknown.
          type: boolean
      required:
        - id
        - name
        - provider
        - context_window
        - supports_reasoning
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT authentication token
      scheme: bearer
      type: http
    ApiKeyAuth:
      description: Neo API key (neo_sk_* prefix)
      in: header
      name: X-Api-Key
      type: apiKey

````

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