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

# Search callable provider tools

> Searches the tool catalog by intent and returns ranked typed tool candidates.

Authentication: workspace API key in `Authorization: Bearer <key>`.

## Errors

| Status | Meaning |
| - | - |
| 400 | The request conflicts with current state or a retained request identity. |
| 401 | The request conflicts with current state or a retained request identity. |
| 500 | The request conflicts with current state or a retained request identity. |


## OpenAPI

````yaml openapi.json GET /api/v2/tools/search
openapi: 3.1.1
info:
  title: Deepline API
  version: v2
  description: >-
    Discover typed GTM tools and callable Plays, then execute a tool or start
    and inspect a durable Deepline Play run. Use the MCP endpoint when your
    client supports Model Context Protocol.
  contact:
    name: Deepline support
    email: team@deepline.com
    url: https://deepline.com/contact
servers:
  - url: https://code.deepline.com
    description: Deepline production runtime API
security: []
tags:
  - name: Health
    description: Availability checks.
  - name: Billing
    description: Safe recovery of existing purchase intent.
  - name: Tools
    description: Discover and execute typed provider tools.
  - name: Plays
    description: Discover, start, and inspect durable Play runs.
externalDocs:
  description: API reference
  url: https://deepline.com/docs/api-reference
paths:
  /api/v2/tools/search:
    get:
      tags:
        - Tools
      summary: Search callable provider tools
      description: >-
        Searches the tool catalog by intent and returns ranked typed tool
        candidates.
      operationId: searchTools
      parameters:
        - name: q
          in: query
          required: false
          description: >-
            The task or capability to search for. Omit when filtering only by
            categories or search_terms.
          schema:
            type: string
        - name: categories
          in: query
          required: false
          description: Comma-separated tool categories to filter.
          schema:
            type: string
        - name: search_terms
          in: query
          required: false
          description: >-
            Comma-separated capability terms to rank and filter by, including
            when q is empty.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: Maximum ranked tools to return.
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 20
        - name: offset
          in: query
          required: false
          description: Zero-based offset into the ranked result set.
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: task
          in: query
          required: false
          description: >-
            Optional. What the caller is trying to accomplish, in one sentence:
            the input it has and the result it needs, not a restatement of q.
            Used to rank candidates; up to 300 characters are used.
          schema:
            type: string
      responses:
        '200':
          description: A successful Runtime API response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolSearch'
        '400':
          description: >-
            The request conflicts with current state or a retained request
            identity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Unauthorized
        '401':
          description: >-
            The request conflicts with current state or a retained request
            identity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Unauthorized
        '500':
          description: >-
            The request conflicts with current state or a retained request
            identity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error: Unauthorized
      security:
        - bearerAuth: []
components:
  schemas:
    ToolSearch:
      type: object
      properties:
        tools:
          type: array
          items:
            $ref: '#/components/schemas/SearchTool'
      additionalProperties: true
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          oneOf:
            - type: string
              description: Route-specific error message.
            - type: object
              properties:
                code:
                  type: string
                message:
                  type: string
                resolution:
                  type: string
              additionalProperties: true
    SearchTool:
      type: object
      required:
        - toolId
        - provider
        - operation
        - description
      properties:
        toolId:
          type: string
        provider:
          type: string
        operation:
          type: string
        description:
          type: string
        inputFields:
          type: array
          items:
            type: string
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Deepline workspace API key
      description: >-
        Create a workspace API key in the Deepline dashboard before calling
        authenticated endpoints.

````

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