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

# Create Tool

> Create a new tool (function, webhook, or API integration). Requires API key authentication via Authorization: Bearer or X-API-Key header.



## OpenAPI

````yaml POST /tool
openapi: 3.1.0
info:
  title: Stride Agents API
  description: >

    Build and deploy AI voice agents that can make and receive phone calls with
    natural conversation.


    ## Authentication


    All endpoints require an API key passed via the `Authorization` header:


    ```

    Authorization: Bearer sk_your_api_key

    ```


    ## Resources


    - **Agents** — Create and configure AI voice agents

    - **Calls** — Initiate, monitor, and manage voice calls

    - **Phone Numbers** — Manage phone numbers and routing

    - **Tools** — Define function calling tools for agents

    - **Knowledge Bases** — Upload documents for RAG-powered conversations

    - **Voices** — Browse available TTS voices
  version: 1.0.0
servers:
  - url: /v1
security: []
paths:
  /tool:
    post:
      tags:
        - Tools
      summary: Create a tool
      description: >-
        Create a new tool (function, webhook, or API integration). Requires API
        key authentication via Authorization: Bearer or X-API-Key header.
      operationId: create_tool_tool_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateToolRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    CreateToolRequest:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
          description: Tool name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Human-readable description of what the tool does
        type:
          type: string
          title: Type
          description: 'Tool type: function, webhook, api'
        tool_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Type
          description: More specific sub-type of the tool
        configuration:
          additionalProperties: true
          type: object
          title: Configuration
          description: Tool-specific configuration payload (JSON)
        is_active:
          type: boolean
          title: Is Active
          description: Whether the tool is active
          default: true
      type: object
      required:
        - name
        - type
      title: CreateToolRequest
      description: Request body for creating a new tool.
    ToolResponse:
      properties:
        id:
          type: string
          title: Id
        user_id:
          anyOf:
            - type: string
            - type: 'null'
          title: User Id
        org_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Org Id
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        type:
          type: string
          title: Type
        tool_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Type
        configuration:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Configuration
        is_active:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Active
          default: true
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Updated At
      type: object
      required:
        - id
        - name
        - type
      title: ToolResponse
      description: Full tool record returned by the API.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer

````