find_providers
Paginated, sortable list of providers — filter by text, tag, artifact type, industry, region, rating band, access model (pricing/onboarding/try_now/public), or DIRECTION (accepts_writes/min_acting — whether the surface takes a write or only emits). tags filters on what the COMPANY does (its own top-level classification), not on what its endpoints touch; for a resource-level term use find_apis?tags=, or api_tags= here to find companies whose APIs merely touch it. Use apis_io_search first for a cross-type overview.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text over name + description. | |
| area | No | ||
| band | No | Rating bands: exemplar, strong, developing, thin, minimal. | |
| page | No | ||
| sort | No | Order results. Default: relevance with a query, composite (quality) when browsing. `demand` = Fortune-1000 adoption, scoped to the query. | |
| tags | No | Tag slugs. On PROVIDERS this is identity — what the company says it does, from its own apis.yml. A resource or operation term (webhook, saml, order, oai-pmh) will correctly match no provider; use find_apis?tags= for those, or find_providers?api_tags= to reach companies whose APIs merely touch it. | |
| view | No | summary (default) returns lean discovery records + *_count for dropped sections; full returns the whole record (use get_api / get_provider for one entity). | summary |
| facet | No | Quality facet to threshold on: discoverability, contract_quality, governance, operational_transparency, developer_ergonomics, commercial_clarity. Needs min_facet. | |
| limit | No | ||
| match | No | any | |
| trend | No | up | down | flat — direction of the composite since the previous scoring pass. | |
| fields | No | Return exactly these top-level keys (overrides view). | |
| public | No | Only providers callable publicly with no signup (onboarding=open). (providers only) | |
| region | No | ||
| context | No | Optional: why you are asking. One sentence — the task you are trying to complete, or what you expect to get back. Never included in the answer and never used to rank; it is read only when a result turns out to be wrong, which is when knowing the intent is what makes the report actionable. | |
| country | No | Providers whose derived country membership includes these slugs (e.g. united-kingdom). Membership is partial — a count is a floor. | |
| pricing | No | Access model — pricing: free, freemium, free-trial, paid, enterprise. (providers only) | |
| resolve | No | When `q` exactly names a tag, apis.io uses it: on PROVIDERS a resource tag (order, webhook, image) replaces the text search with the companies that classify themselves there — 2,182 text matches for "order" become the 92 that claim it; on APIS the tag's members are ADDED to the text matches, never swapped for them. Market tags (payments) and tags almost no company claims are reported and not applied. Set `off` for pure text. The resolution is always echoed as `resolved_tag`. | on |
| try_now | No | Only providers a developer can start using at no cost right now (free/trial + self-serve/open). (providers only) | |
| api_tags | No | Providers that publish an API, spec or OPERATION carrying these tags, without claiming it as their business. The complement of `tags`, and disjoint from it. | |
| industry | No | ||
| max_score | No | Only providers at or below this composite. Pair with min_score for a band-free range. | |
| min_facet | No | Minimum score on `facet`. Without `facet` this does nothing. | |
| min_score | No | ||
| providers | No | ||
| min_acting | No | Minimum number of acting (non-read) operations. Use to require real write depth rather than a single write endpoint. | |
| onboarding | No | Access model — how to start: open (no key), self-serve, approval. (providers only) | |
| size_basis | No | Which rung produced the band: sec-edgar | companies-house | wikidata | editorial | derived | inferred | unknown. Ask for the filed ones when you need a defensible number. Understanding plan. | |
| size_status | No | probed | unprobed. USE size_status=probed when filtering for small companies: without it, "not enterprise" sweeps in every provider we have not looked at yet and counts them as small. Absence of a band is not a measurement. Understanding plan. | |
| revenue_band | No | Revenue band(s): <$1M | $1-10M | $10-100M | $100M-1B | $1B+. Estimates; filed where size_basis is sec-edgar or companies-house. Understanding plan. | |
| accepts_writes | No | true = the provider has operations that ACT (create/update/send), so you can push something to it; false = measured and read-only. Use this when the question is "where can I publish/send/post to" — text search cannot tell direction, and without it a query about syndicating content returns RSS feeds and read-only APIs. Providers with no agentic-access reading are excluded either way: absent is unmeasured, not zero. | |
| artifact_types | No | ||
| employees_band | No | Company size band(s), comma-separated: 1-10 | 11-50 | 51-200 | 201-1000 | 1001-5000 | 5000+ | 1000+ (the last is the open-ended band the inferred rung emits when it can tell "big" but not how big). ESTIMATES from free public sources — Wikidata, SEC EDGAR, the provider's own About page, our own signals — never a headcount. Understanding plan. |