Tool Endpoints
POST
POST /api/v1/tools/create_reminder
Creates a reminder with optional estimate/details.
Request body
{
"title": "Check model output quality",
"remind_at": "2026-04-24T17:00:00Z",
"importance": "high",
"time_estimate_minutes": 20,
"details": "Compare responses across 3 model configs."
}
Required: title, remind_at
Optional: importance (low, normal, high),
time_estimate_minutes, details
cURL
curl -X POST "$BASE_URL/api/v1/tools/create_reminder" \
-H "Authorization: Bearer $TOOL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Check model output quality",
"remind_at": "2026-04-24T17:00:00Z",
"importance": "high",
"time_estimate_minutes": 20,
"details": "Compare responses across 3 model configs."
}'
Response (201)
{
"id": 42,
"title": "Check model output quality",
"remind_at": "2026-04-24T17:00:00.000Z",
"dismissed_at": null,
"importance": "high",
"time_estimate_minutes": 20,
"created_at": "2026-04-23T18:10:42.321Z",
"updated_at": "2026-04-23T18:10:42.321Z",
"details": "Compare responses across 3 model configs.",
"details_html": "<div class=\"trix-content\">...</div>",
"due": false,
"active": true
}
POST /api/v1/tools/get_weather
Resolves a location then returns a compact NWS forecast payload (US coverage).
Request body
{ "address": "Los Angeles, CA 90008" }
{ "zip": "90008" }
Provide at least one of address or zip.
cURL
curl -X POST "$BASE_URL/api/v1/tools/get_weather" \
-H "Authorization: Bearer $TOOL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "zip": "90008" }'
Response (200)
{
"location": {
"query": "90008",
"resolved_address": "Los Angeles, CA, United States",
"lat": 34.0116,
"lng": -118.3411,
"office": "LOX",
"grid_x": 151,
"grid_y": 44,
"forecast_zone": "https://api.weather.gov/zones/forecast/CAZ368",
"time_zone": "America/Los_Angeles"
},
"updated_at": "2026-04-23T17:50:00+00:00",
"periods": [
{
"name": "Today",
"start": "2026-04-23T09:00:00-07:00",
"end": "2026-04-23T18:00:00-07:00",
"is_daytime": true,
"temperature": 74,
"temperature_unit": "F",
"wind": "5 to 10 mph W",
"short_forecast": "Sunny",
"detailed_forecast": "...",
"precipitation_probability": 0
}
]
}
POST /api/v1/tools/scrape_url
Fetches and cleans page content for LLM consumption. Includes SSRF and size guards.
Request body
{
"url": "https://llmtest.tools/docs",
"selector": "main",
"max_chars": 4000
}
Required: url
Optional: selector, max_chars (default 8000)
cURL
curl -X POST "$BASE_URL/api/v1/tools/scrape_url" \
-H "Authorization: Bearer $TOOL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://llmtest.tools/docs",
"selector": "main",
"max_chars": 4000
}'
Response (200)
{
"url": "https://llmtest.tools/docs",
"final_url": "https://llmtest.tools/docs",
"status": 200,
"content_type": "text/html; charset=UTF-8",
"title": "API Documentation",
"description": "Summary text...",
"canonical": "https://llmtest.tools/docs",
"headings": [
{ "level": 1, "text": "Main heading" },
{ "level": 2, "text": "Section heading" }
],
"links": [
{ "text": "View all tool calls", "href": "https://llmtest.tools/tool_invocations" }
],
"text": "Cleaned article content..."
}
Reminder Endpoints
GET + POST
GET /api/v1/reminders
Lists reminders with filtering and limit controls.
Query params
filter=active|due|dismissed|all
limit=1..500 (default: 100)
cURL
curl -H "Authorization: Bearer $TOOL_API_TOKEN" \
"$BASE_URL/api/v1/reminders?filter=active&limit=20"
Response (200)
{
"reminders": [
{
"id": 42,
"title": "Check model output quality",
"remind_at": "2026-04-24T17:00:00.000Z",
"dismissed_at": null,
"importance": "high",
"time_estimate_minutes": 20,
"details": "Compare responses across 3 model configs.",
"details_html": "<div class=\"trix-content\">...</div>",
"due": false,
"active": true
}
],
"count": 1
}
GET /api/v1/reminders/:id
Returns one reminder record.
curl -H "Authorization: Bearer $TOOL_API_TOKEN" \
"$BASE_URL/api/v1/reminders/42"
POST /api/v1/reminders/:id/snooze
Moves remind_at forward. Defaults to 60 minutes if minutes is missing or invalid.
curl -X POST "$BASE_URL/api/v1/reminders/42/snooze" \
-H "Authorization: Bearer $TOOL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "minutes": 30 }'
POST /api/v1/reminders/:id/dismiss
Soft-deletes a reminder by setting dismissed_at.
curl -X POST "$BASE_URL/api/v1/reminders/42/dismiss" \
-H "Authorization: Bearer $TOOL_API_TOKEN"