Search Specs
search_specsSearches specs by words and filters by category, channel, provider, country, currency, status or capability type. Returns the matching providers, each with its countries, currencies, sandbox flag, docs URL and the matching capabilities (name, type, status, example_prompt) — no endpoints, schemas, gotchas or canonical_example source. Use get_spec with the exact capability name to retrieve the full payload. A capability with "variants" has several request/response shapes (e.g. one per payment method or corridor): pass the ones you need to get_spec "variant" to receive only those.
Each result includes a "status" field:
"verified": tested against the provider's API, in "sandbox" or "production" (verified_in / verification.environment)
"deprecated": the provider is retiring it — get_spec says what replaces it
anything else (e.g. "ready", "unverified"): written from the provider's documentation, NOT tested against the live API — may contain errors
Always check the status field. If status is not "verified", inform the user that the spec is experimental and may contain errors.
Args:
query (string?): Words, e.g. "wave", "mobile money senegal", "send sms", "kyc", "XOF". Every word must match somewhere: provider name or slug, capability, description, example_prompt, countries (code or English/French name), currencies, channels (a few synonyms: momo, otp, kyc, payout…). Providers the query names come first.
category (string?): Filter by category, e.g. "payment", "communications" (SMS, WhatsApp, USSD, voice and email providers — "sms" is accepted as a legacy alias), "identity" (KYC, document verification, AML), "logistics" (delivery and courier providers). The registry adds categories over time: list_providers shows every category that exists
channel ("sms"|"whatsapp"|"ussd"|"voice"|"email"?): Only providers that offer this channel
provider (string?): Provider slug e.g. "paycard"
country_code (string?): ISO 3166-1 alpha-2 e.g. "GN"
currency (string?): ISO 4217 e.g. "XOF"
status ("verified"|"ready"|"unverified"?): e.g. "verified" for specs tested against the provider's API
capability_type ("synchronous"|"asynchronous"|"webhook"|"sdk"?): Filter by capability type
Returns: { providers: ProviderMatch[], note?: string, hint?: string, unverified_count: number, warning?: string } note is present when example_prompt was left out to keep a wide result readable. hint is present when nothing matched: widen the search before telling the user a provider is unavailable. unverified_count counts matching capabilities whose status is not "verified"; warning is present only when it is > 0.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Words, e.g. "mobile money senegal" — every word must match | |
| status | No | ||
| channel | No | ||
| category | No | ||
| currency | No | ISO 4217 e.g. "XOF" | |
| provider | No | Provider slug e.g. "paycard" | |
| country_code | No | ISO 3166-1 alpha-2 e.g. "GN" | |
| capability_type | No |