> ## 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 tools, monitor types, and plays

> One ranked search across everything Deepline can run, deploy, or explain. Each result carries a kind: tool, monitor_type, prebuilt_play, or custom_play. The workspace’s own (custom) plays are ranked with a small boost. Ranking uses a third-party AI relevance model, which is sent only each custom play’s name and description; play code, inputs, and run data are never shared with it.

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/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/search:
    get:
      tags:
        - Tools
      summary: Search tools, monitor types, and plays
      description: >-
        One ranked search across everything Deepline can run, deploy, or
        explain. Each result carries a kind: tool, monitor_type, prebuilt_play,
        or custom_play. The workspace’s own (custom) plays are ranked with a
        small boost. Ranking uses a third-party AI relevance model, which is
        sent only each custom play’s name and description; play code, inputs,
        and run data are never shared with it.
      operationId: search
      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: types
          in: query
          required: false
          description: >-
            Comma-separated kinds to search: tools, monitors, prebuilts, custom,
            or plays (prebuilts and custom). Omit to search everything.
          schema:
            type: string
        - name: exclude
          in: query
          required: false
          description: >-
            Comma-separated kinds to leave out, using the same names as types.
            Applied after types.
          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 results 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:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        kind:
                          enum:
                            - tool
                            - monitor_type
                            - prebuilt_play
                            - custom_play
                        displayName:
                          type: string
                        description:
                          type: string
                      required:
                        - id
                        - kind
                  kinds:
                    type: array
                    items:
                      type: string
                  search_ref:
                    type: string
                  count:
                    type: number
                  total:
                    type: number
                  offset:
                    type: number
                  limit:
                    type: number
                  next_offset:
                    type: number
                  total_is_exact:
                    type: boolean
                  may_have_more:
                    type: boolean
                  truncated:
                    type: boolean
                  query:
                    type: string
                  categories:
                    type: array
                    items:
                      type: string
                  search_terms:
                    type: array
                    items:
                      type: string
                required:
                  - results
                  - kinds
        '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:
    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
  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.