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

# Search enabled executable tools

> REST counterpart to MCP search_apis. Searches only enabled tools in the authenticated principal's live, tenant-filtered catalog and returns compact execution contracts. Results honor tenant enablement, key endpoint allowlists, agent-connection scopes, and end-user policies. Use POST /credits/catalog/search for a management search that also includes disabled endpoints. This operation does not call a provider or burn credits.



## OpenAPI

````yaml /api-reference/openapi.json post /credits/tools/search
openapi: 3.1.0
info:
  title: Locus Pro API
  description: >-
    Production is live at https://api.paywithlocus.com/api. Stage remains
    available for evaluation and integration testing at
    https://api.stage.paywithlocus.com/api; credentials, balances, and tenant
    data are isolated by environment. Embedded prepaid credits over the Locus
    pay-per-use catalog. Money and top-up amounts use exact decimal strings (up
    to 6dp). Every burn requires an Idempotency-Key header. Management routes
    accept a tenant secret key or authorized dashboard session as shown per
    operation. Widget routes accept an end-user JWT alone; when a publishable
    key is present it must belong to the JWT's tenant. MCP uses OAuth 2.1
    Authorization Code with PKCE by default and also accepts the explicitly
    documented tenant secret key, end-user JWT, or scoped agent connection
    compatibility credentials. Burns accept the execution credentials shown per
    operation. Publishable keys never authorize management or burns by
    themselves.
  version: 0.6.0
servers:
  - url: https://api.paywithlocus.com/api
    description: Production
  - url: https://api.stage.paywithlocus.com/api
    description: Stage — evaluation and integration testing
security:
  - secretKey: []
tags:
  - name: Authentication
    description: Email-verified self-serve account creation and dashboard identity
  - name: Tenants
    description: Tenant profile, keys, and settings (dashboard session or secret key)
  - name: Workspace members
    description: Invite-only human workspace membership and role administration
  - name: Catalog
    description: Enable/disable APIs and set markups
  - name: Custom APIs
    description: >-
      Available when enabled for the workspace. Enterprise BYOK providers and
      schema-backed custom actions
  - name: End users
    description: End-user accounts, tokens, and allocations
  - name: Top-ups
    description: Locus-hosted checkout top-ups and quotes
  - name: Ledger
    description: Burn/top-up history and earnings
  - name: Webhooks
    description: Signed events, delivery inspection, and replay
  - name: Burn
    description: Metered pay-per-use calls
  - name: Travel routing
    description: >-
      Available when enabled for the workspace. Multi-provider flight search,
      no-dispatch planning, and feedback
  - name: MCP
    description: Stateless Streamable HTTP transport and MCP tool-result contracts
  - name: Okibi Identity
    description: >-
      Available when enabled for the workspace. Okibi identity verification and
      scoped native CLI credential bootstrap
  - name: Widget
    description: End-user JWT surface; a matching publishable key is optional
  - name: Agent-native onboarding
    description: >-
      Self-registration, human Stripe funding handoff, and restricted account
      setup for headless agents
  - name: Agent connections
    description: Scoped, expiring, revocable credentials for agent execution
  - name: Capability routing
    description: Outcome-level web search and research across eligible catalog providers
paths:
  /credits/tools/search:
    post:
      tags:
        - Catalog
      summary: Search enabled executable tools
      description: >-
        REST counterpart to MCP search_apis. Searches only enabled tools in the
        authenticated principal's live, tenant-filtered catalog and returns
        compact execution contracts. Results honor tenant enablement, key
        endpoint allowlists, agent-connection scopes, and end-user policies. Use
        POST /credits/catalog/search for a management search that also includes
        disabled endpoints. This operation does not call a provider or burn
        credits.
      parameters:
        - $ref: '#/components/parameters/SessionBindingHeader'
        - name: X-Locus-End-User
          in: header
          required: false
          schema:
            $ref: '#/components/schemas/ExternalUserId'
          description: Optional end-user identity for a tenant secret key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - query
              properties:
                query:
                  type: string
                  minLength: 1
                  maxLength: 256
                  description: >-
                    Trimmed natural-language capability, provider, or tool
                    query.
                limit:
                  type: integer
                  minimum: 1
                  maximum: 20
                  default: 10
              additionalProperties: false
      responses:
        '200':
          description: Ranked enabled tool contracts
          headers:
            Cache-Control:
              schema:
                type: string
                const: private, no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolSearchResponse'
        '400':
          description: Body must contain only a valid query and optional limit
        '401':
          description: Missing or invalid execution credential
        '500':
          description: Tool search failed
      security:
        - secretKey: []
        - sandboxKey: []
        - endUserToken: []
        - agentConnection: []
components:
  parameters:
    SessionBindingHeader:
      name: X-Locus-Session-Id
      in: header
      required: false
      schema:
        type: string
        minLength: 16
        maxLength: 128
        pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{15,127}$
      description: >-
        Required only when the end-user JWT carries sid. Send the original
        high-entropy session value; sid is its SHA-256 fingerprint. Ignored for
        secret-key authentication.
  schemas:
    ExternalUserId:
      type: string
      minLength: 1
      maxLength: 200
      pattern: ^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,199}$
      description: >-
        Case-sensitive immutable ID in the tenant namespace. Prefer an
        identity-provider subject, not an email address.
    ToolSearchResponse:
      type: object
      required:
        - success
        - query
        - count
        - results
      properties:
        success:
          const: true
        query:
          type: string
        count:
          type: integer
          minimum: 0
          maximum: 20
        results:
          type: array
          maxItems: 20
          items:
            $ref: '#/components/schemas/ToolSearchMatch'
        note:
          type: string
          description: Present when no enabled tool matched.
      additionalProperties: false
    ToolSearchMatch:
      type: object
      required:
        - slug
        - tool
        - provider
        - endpoint
        - title
        - description
        - method
        - path
        - inputSchema
        - exampleArguments
      properties:
        slug:
          type: string
        tool:
          type: string
        provider:
          type: string
        endpoint:
          type: string
        title:
          type: string
        description:
          type: string
        category:
          type: string
        credits:
          $ref: '#/components/schemas/DecimalString'
        variableCost:
          const: true
        method:
          type: string
          const: POST
        path:
          type: string
          pattern: ^/api/wrapped/credits/
        inputSchema:
          type: object
          additionalProperties: true
        exampleArguments:
          type: object
          additionalProperties: true
      additionalProperties: false
    DecimalString:
      type: string
      pattern: ^\d+(?:\.\d{1,6})?$
      description: >-
        Non-negative exact decimal string with at most six fractional digits.
        Endpoint-specific positivity and amount limits still apply.
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: Tenant secret key (lcr_…). Server-side only.
    sandboxKey:
      type: http
      scheme: bearer
      description: >-
        Sandbox key (lcrsb_…). Metered calls are simulated: no credits move, no
        providers are called. No management access. Simulation is served from
        fixtures for the hosted provider catalog; external-rail providers are
        not registered with the sandbox interceptor and answer 404.
    endUserToken:
      type: http
      scheme: bearer
      description: >-
        60-3600 second end-user JWT minted via /credits/end-users/{id}/token. If
        the JWT has sid, send the original session value in X-Locus-Session-Id;
        sid contains only its SHA-256 fingerprint. Bearer tokens are replayable
        until expiry; use short TTLs, optional session binding, and
        Idempotency-Key on operations.
    agentConnection:
      type: http
      scheme: bearer
      description: >-
        Scoped lcac_ credential. Tenant-managed Agent Connections authorize only
        their bound MCP and wrapped execution surfaces. A bootstrap connection
        for a self-registered agent additionally authorizes the explicit
        /credits/agent/* self-service routes for its own account; neither form
        authorizes general tenant management.

````