Capabilities
Inspect your account's live API contract and limits.
/functions/v1/api-capabilitiesGET /functions/v1/api-capabilities returns the current field catalog, access controls, rate limits, and export options for the authenticated key. This response is the source of truth when account configuration differs from the examples in these guides.
The outer response contains capabilities for the account and keyCapabilities for the current API key. Read keyCapabilities.tools.<tool>.allowed, requiredScopes, and missingScopes separately from account access. Each filter's matching.defaultCondition and executable ruleSchema reflect the same defaults as the UI; an omitted matchAll inherits that default, while explicit boolean true/false overrides it.
curl -X GET "https://ttzqldekaizydrdmirpn.supabase.co/functions/v1/api-capabilities?search_type=all&option_sample_limit=6" \
-H "x-searchleads-api-key: sl_live_your_full_api_key_here"Read access.visibleSearchTypes before offering people or company search. Use filtersBySearchType to build filters, rateLimits for backoff, and exports for supported formats, field keys, size limits, and job limits. The response also reports the lifetime of a search ID used for exports.
Each filter contract includes its fieldPath, title, searchType, uiType, include and exclude limits, option mode, option sample, acceptedValueType, acceptedValueTypeV2, valueShape, acceptsCustomValues, and allowedValueBehavior. Treat the legacy selected_option_labels token as a contract hint: submit an exact current options[].label for catalog-backed fields. Existing options[].id values remain accepted. Use option discovery when you need current values or pagination.
The JSON response wraps the contract as { "success": true, "capabilities": { ... } }. Read capabilities.filtersBySearchType.people and .company separately: the same field can have different limits or permissions in each type. sendIn selects filters or textFilters; exclusions use excludedFilters. exampleValue is a correctly shaped starting value, units describes range boundaries, and ruleSchema lists supported matching controls. A null example means you must discover a value first. uiType describes the application widget and must not be used to infer the API input shape.
GET /functions/v1/public-api-capabilities requires no key and returns a public snapshot. It cannot establish your account's permissions. The agent JSON contract and complete text guide are public documentation snapshots; always refresh authenticated capabilities before executing a campaign.
search reports maximum page size and response versions. exports.fieldsBySearchType reports every available column, while bulkDefaultFieldsBySearchType reports built-in Bulk Export selections. The live filter reference and export column tables render these contracts in a readable form.
For API search and option discovery, rateLimits.perDay.unlimited is true and its limit/current/remaining values are null; there is no daily request cap. Continue to obey rateLimits.perMinute. Export create and status requests have no customer request quotas: exports.createRateLimits and exports.statusRateLimits report unlimited: true and null period limits. exports.maxConcurrentJobs, credit billing and export size limits still apply.