# GET /api/v1/_meta/tools

**Resource:** [Evie (In-App Agent)](./evie.md)  
**Scopes:** _none_  
**Write operation:** no

Return the list of CRM tools available to the authenticated API key holder. Each tool entry includes: name (snake_case), description, input_schema (JSON Schema), preferred_model (haiku|sonnet), api_path, required_scopes, is_write, and portal_path. Tools are filtered by the caller scopes - a tp_live_* key with only contacts:read will see only read-scoped contact tools. Used internally by Evie to populate her tool catalog at chat-open; also useful for building your own agent on top of the TrustPager API.

## Response example

```json
{
  "data": {
    "tools": [
      {
        "name": "list_opportunities",
        "description": "List open, won, or lost opportunities. Filter by pipeline, stage, contact, or company. Returns paginated results with cursor.",
        "input_schema": {
          "type": "object",
          "properties": {
            "pipeline_id": { "type": "string", "description": "Filter by pipeline UUID" },
            "status": { "type": "string", "enum": ["open","won","lost"] },
            "limit": { "type": "number", "description": "Items per page (max 100)" }
          }
        },
        "preferred_model": "haiku",
        "api_path": "GET /opportunities",
        "required_scopes": ["opportunities:read"],
        "is_write": false,
        "portal_path": "/crm/opportunities"
      }
    ],
    "count": 54
  }
}
```

## Notes

- The tool catalog is scope-filtered: only tools whose required_scopes are satisfied by the caller token are returned.
- preferred_model indicates which AI model tier is recommended for this tool call. haiku is fast and cheap for read/simple ops; sonnet for subjective or complex output.
- This endpoint is GET-only, free (no credit cost), and idempotent.

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`