# listof.tools Tools with input definitions and tested examples. No account or API key required. API guide: https://listof.tools/api Tool list (JSON): https://listof.tools/api/operations API schema (OpenAPI): https://listof.tools/openapi.json Tool definition schema: https://listof.tools/api/tool-schema Add a tool: https://listof.tools/add POST /api/submissions with a definition, example and response check to request publication. Submissions are reviewed before example testing; track progress at /api/submissions/{id}. Search the list using q, category, provider or endpoint. Provider and endpoint filters are exact matches; get their values from /api/providers and /api/endpoints. endpointGroup combines the HTTP method and provider URL path, excluding preset query parameters. Several tools can share an endpoint with different inputs or result views. Tool definitions include providerPage and endpointPage browse links. Get a definition at /api/operations/{id}. Run a listed tool with GET /api/run/{id} and its input query parameters. The server handles provider headers and read-only POST bodies where needed. API execution returns the full provider output; focused result tables are a website presentation. Feedback: GET /api/feedback/{id} returns unverified counts. POST the same URL with JSON {"signal":"worked","value":true,"clientId":"your-random-client-id"}. Signals: worked (the tool worked for you), useful (looks useful), trusted (you trust this provider). Reuse a randomly generated clientId of 16–80 letters, numbers, underscores or hyphens. Do not use personal identifiers. Send value:false to undo. Repeated identical feedback from the same client counts once. Send worked only after observing a successful result; do not invent experiences or trust claims. Counts are anonymous opinions, not proof of correctness, reliability or safety. Feedback is rate-limited. Do not send private data to tools. Sharing comparisons: POST /api/run/compare-link-previews with application/json {"urls":["https://example.org/","https://example.net/"],"view":"slack"}. Use 2–100 public HTTP(S) URLs of up to 2,048 characters each. Views: all, details, images, favicon, imessage, bluesky, discord, facebook, linkedin, slack, telegram, whatsapp, x. Input bodies are limited to 220 KiB, results to 256 KiB. Large comparisons may need the direct unfurls.to human link. No forced refresh or gallery submission is performed. Preserve per-site errors; platform cards are estimates and image availability is not verified. Read the OpenAPI POST operation for its array input schema. Browser compatibility: /api/compatibility/mdn?feature=api.AbortController and /api/compatibility/caniuse?feature=css-subgrid query versioned snapshots hosted by listof.tools, not live provider APIs. Responses include provider, version, dataDate or fetchedAt, total, returned and up to five original source records in results[].data. Exact feature keys take priority over name matches. Preserve all partial support, removed versions, flags, prefixes and notes; do not turn unknown data into a yes/no answer. MDN support arrays represent alternative support statements. Can I use status codes and notes retain their original meanings. Web Platform Status tools query its live API. Baseline describes its core browser set, not every older browser version. Proxy limits: shared global and provider-host minute/day ceilings apply to all callers together, in addition to per-IP limits. Respect HTTP 429 Retry-After and retryAt. Daily ceilings reset at 00:00 UTC. HTTP 503 can mean a paused provider or unavailable accounting; do not retry in a tight loop. See the API guide for current launch allowances.