Skip to main content
GET
/
v1
/
providers
/
{provider}
/
capabilities
cURL
curl --request GET \
  --url https://api.surnex.io/v1/providers/{provider}/capabilities \
  --header 'Authorization: Bearer <token>'
{
  "provider": "dataforseo",
  "provider_metadata": {
    "provider_id": "dataforseo",
    "brand_name": "DataForSEO",
    "status": "active",
    "limits": {
      "max_targets_per_request": 10,
      "max_search_limit": 1000,
      "max_search_offset": 9000,
      "max_evidence_rows_per_request": 10,
      "max_provider_requests_per_snapshot": 8
    },
    "rate_limits": {
      "requests_per_second": 2,
      "requests_per_minute": 120,
      "burst": 8
    },
    "throttling": {
      "max_concurrency": 4,
      "queue_depth": 16,
      "cooldown_seconds": 1
    },
    "cost_hints": {
      "estimated_usd_per_execution": 0.01,
      "estimated_usd_per_1000_requests": 2,
      "currency": "USD",
      "notes": "Execution cost varies by endpoint; use provider_calls for attribution."
    },
    "supported_features": [
      "catalog",
      "search",
      "executions",
      "llm_mentions",
      "top_domains",
      "top_pages",
      "batch_search"
    ],
    "plan_tiers": [
      {
        "name": "starter",
        "requests_per_minute": 120,
        "requests_per_hour": 1800,
        "monthly_request_limit": 500000,
        "notes": "Default starter-capability throttles for conservative onboarding."
      }
    ]
  },
  "capabilities": {
    "generated_at": "2026-02-24T00:00:00Z",
    "discovery_context": {
      "requested_discovery": false,
      "force_refresh_requested": false,
      "source": "none",
      "discovered_at": null,
      "cache_key": "dataforseo:catalog:discovered:v1",
      "cache_ttl_seconds": 900,
      "cache_available": false,
      "cache_hit": false,
      "provider_calls": 0
    },
    "services": [
      {
        "service": "serp",
        "category": "serp",
        "title": "SERP API",
        "description": "Search engine results across web and vertical engines",
        "discovery_source": "static",
        "operation_count": 4,
        "discovered_operations": 0,
        "static_operations": 4,
        "by_discovery_source": {
          "static": 4,
          "discovered": 0
        },
        "by_method": {
          "GET": 0,
          "POST": 4
        },
        "by_mode": {
          "live": 1,
          "task_post": 2,
          "task_get": 1,
          "tasks_ready": 0,
          "tasks_fixed": 0
        },
        "sample_operations": [
          "/serp/google/organic/live",
          "/serp/google/organic/task_post",
          "/serp/google/organic/task_get"
        ]
      }
    ],
    "total_services": 1,
    "limit": 100,
    "offset": 0,
    "returned": 1,
    "has_more": false,
    "next_offset": null,
    "supports_custom_paths": true,
    "supports_any_dataforseo_path": true,
    "totals": {
      "total_services": 1,
      "total_operations": 4,
      "by_discovery_source": {
        "static": 1,
        "discovered": 0,
        "mixed": 1
      },
      "by_operation_discovery_source": {
        "static": 4,
        "discovered": 0
      },
      "by_method": {
        "GET": 0,
        "POST": 4
      },
      "by_mode": {
        "live": 1,
        "task_post": 2,
        "task_get": 1,
        "tasks_ready": 0,
        "tasks_fixed": 0
      }
    }
  }
}

Authorizations

Authorization
string
header
required

Authorization: Bearer sk_...

Path Parameters

provider
string
required
Minimum string length: 1

Query Parameters

service
string
Minimum string length: 1
discover
discovery_source
enum<string>
Available options:
static,
discovered,
mixed
Required string length: 1 - 128
category
string

Service category used for grouping and filtering

Minimum string length: 1
refresh_discovery
method
enum<string>

HTTPMethod

Available options:
GET,
POST
mode
enum<string>

DataForSeoOperationMode

Available options:
live,
task_post,
task_get,
tasks_ready,
tasks_fixed
limit
integer
default:100
Required range: x <= 250
offset
integer | null
default:0
Required range: x >= 0
group_by
enum<string>

Optional grouping key for response sections. When set, services are bucketed into groups without removing services. Service keys are alphabetical; discovery source keys are static, discovered, then mixed when present.

Available options:
service,
discovery_source

Response

Provider capabilities summary for Surnex onboarding and UI planning.

SurnexProviderCapabilitiesResponse

provider
string
required
Minimum string length: 1
capabilities
object
required
provider_metadata
object