DataForSEO spend tracking
How DataForSEO pricing works and how to track spend
DataForSEO operates on a strict pay-as-you-go model with no subscriptions or recurring fees, requiring a minimum account top-up of $50 before you can run production tasks. New accounts get a $1 trial credit to test calls in the dashboard playground or through integrations, and your deposited funds never expire.
You pay only for the requests you send, but tracking costs means keeping tabs on queue modes, varying per-task fees, and account balances. Here is how their pricing works, how to test endpoints without burning cash, and how to query your live balance via their free user data endpoint.
The pay-as-you-go model and funding your balance
DataForSEO doesn't charge monthly platform fees or lock you into recurring commitments. You put cash down first, and your API requests consume that balance as you run them. The minimum top-up is $50, which sits in your balance until you use it because deposited funds don't expire, and if you're building a side project or an internal utility that only runs crawls once a quarter, you won't see maintenance charges quietly draining your account between runs.
What about trying it before dropping fifty bucks? New signups get a $1 trial credit. That doesn't sound like much, but it's enough to run test queries inside the Playground section of your DataForSEO Dashboard. You can also hook that trial credit into an AI tool via MCP, or run it through ready-made templates and integrations for Postman, n8n, and Google Sheets.
If you don't even want to spend the trial dollar while wiring up your network client, use the DataForSEO Sandbox instead. The sandbox returns static samples. It provides sample responses for integration testing without billing your account balance, giving you a safe way to verify JSON parsing before touching live endpoints.
When you need to reload funds, the dashboard takes credit cards, debit cards, PayPal, and Amazon Pay. You get an invoice for every transaction right away. If you run higher volume and load $5,000 or more at once, bank wire transfers and ACH payments become available too.
API request modes and pricing structures
Every API in their catalog bills a little differently, and the final cost of an individual call hinges on the specific endpoint, the request parameters you set, and whether you run in Standard or Live mode.
Standard mode API requests are processed in a queue and generally cost less, but results take longer to become available, whereas Live requests execute immediately through a single POST request to deliver data faster at a higher cost. If your backend is running an offline pipeline or populating a database overnight, stick to Standard mode tasks.
Billing units shift too. Depending on the endpoint, pricing may be based on tasks, returned results, rows, pages, or other usage units.
| API | Billing Model | Base Rate |
|---|---|---|
| SERP API | Per SERP | From $0.0006 / SERP |
| Keywords Data API | Per task | From $0.0012 / task |
| On-Page API | Per page | From $0.00015 / page |
| Labs API | Per task + per item | $0.012 / task + $0.00012 / item |
| Domain Analytics API | Per task | From $0.012 / task |
| AI Optimization API | Multiple billing models | Varies |
| Business Data API | Task + item based pricing | Varies |
| App Data API | Task or result based pricing | Varies |
| Merchant API | Varies by endpoint | Varies |
| Reviews API | Varies by source | Varies |
Keep in mind that legacy subscription models are gone. The old Backlinks API and LLM Mentions API subscription formats were removed, so everything now settles directly against your account balance.
Setting daily spending limits in the dashboard
If a rogue loop starts firing requests, an unmonitored account balance can evaporate in minutes. DataForSEO includes native spending guardrails in the Account Dashboard to prevent this, and setting them up matters.
You can track your API usage and costs right in the dashboard, and you can set daily spending limits for your entire account or drill down to individual APIs and endpoints. If you only want your staging environment to touch the SERP API up to $5 a day while allowing your crawler up to $20 on the On-Page API, you can define those boundaries directly in the dashboard UI.
The dashboard also lets you configure automatic balance top-ups. It's convenient if you can't afford downtime when your balance runs low, but tread carefully. If you turn on auto top-ups without setting strict daily spending limits, an unhandled retry storm will happily charge your credit card multiple times over a weekend.
Checking your balance with the User Data API
You don't need to log into the web dashboard just to verify what you have left in your account. DataForSEO provides an appendix endpoint that reports your real-time balance and usage statistics programmatically. The call is free.
Authentication uses HTTP Basic authentication with your API credentials, which means you need to pull your API login and the separate API password directly from the API Access page (https://app.dataforseo.com/api-access) inside your account rather than using your web dashboard password.
Here is how to fetch your account details using curl:
login="login"
password="password"
cred="$(printf ${login}:${password} | base64)"
curl --location --request GET "https://api.dataforseo.com/v3/appendix/user_data" \
--header "Authorization: Basic ${cred}"Calling GET https://api.dataforseo.com/v3/appendix/user_data returns JSON-encoded data detailing your spending, rates, and limits:
money.balance: A float showing the amount of money left in your account balance in USD.money.total: A float showing the total amount of money deposited to your account.cost: A float at the top level and task level showing the task cost in USD (0.0 for this endpoint).money.limitsandmoney.statistics: Spending limits and statistics grouped by$type_of_grouping, which acceptsdayorminute. Thevaluefield shows the period inyyyy-MM-ddformat for days andyyyy-MM-dd HH:mmfor minutes.rates.limitsandrates.statistics: Rate limits and call statistics for API calls per period, grouped bydayorminute.price: An object breaking down pricing by$api_name,$func_type,$func_name, and$priority(priority_normalorpriority_high). Thecost_typefield indicates whether you are chargedper_result(for every row in the result array) orper_request(for a GET or POST request), paired with thecostin USD as a float.
Note that pricing data returned in this endpoint is limited to the basic cost of an API call, the cost of additional paid parameters is excluded. Also, fields like backlinks_subscription_expiry_date and llm_mentions_subscription_expiry_date are deprecated and return null or stale dates because those subscription formats were eliminated.
Tracking DataForSEO spend alongside your other bills
When you run an app with multiple external services, checking individual dashboards gets old fast. Costbrake watches what you spend across 23 cloud, AI, and SaaS providers - including DataForSEO, AWS, Google Cloud, Cloudflare, OpenAI, Anthropic, and ElevenLabs - to keep your infrastructure costs visible in one feed.
For DataForSEO, Costbrake calculates your spend as total deposits minus your remaining balance, so new top-ups don't mask what you actually burned. Spend between checks is spread evenly over those hours, and on the first check, today's spend so far is spread over today's hours as an initial estimate.
There are a few integration quirks to keep in mind. DataForSEO has no read-only credentials, so the API password you copy from the API Access page can run paid API calls too. So protect it accordingly. Costbrake calls from Cloudflare without fixed IP addresses, so limiting DataForSEO API access to allowed IP addresses will block the balance checks.
There is no killswitch. While Costbrake offers opt-in, reversible brakes for 18 other providers that an admin can click and confirm to pause, stop, cap, or disable resources, DataForSEO has no brakes in Costbrake. Daily spending limits can only be set in DataForSEO's dashboard.
Costbrake runs checks hourly on the Free plan ($0 for 2 connections, 1 seat, and 3 budgets) and every 5 minutes on Pro ($12 a month for 10 connections, 3 seats, Slack, Discord, webhooks, and brakes). Spike alerts fire whenever an hour costs more than 3x your 7-day baseline and at least $5 more than usual, alongside budget alerts at 50%, 80%, and 100%. You can connect your credentials manually in the app or run agent setup with your AI coding tool to hook it up.
Questions and answers
Is DataForSEO pay as you go?
Yes. DataForSEO uses a pay-as-you-go pricing model with no recurring subscriptions or platform fees. You add funds to your account balance and draw down against that balance as you make API requests.
What is the minimum deposit for DataForSEO?
The minimum account top-up is $50. This amount is added to your account balance and used to pay for API requests you make.
Do deposited funds in DataForSEO expire?
No. Funds added to your DataForSEO account do not expire. Any unused balance remains available for future API requests.
Can I test DataForSEO APIs for free?
New accounts receive a $1 trial credit that works in the dashboard Playground, via MCP in an AI tool, or through integrations like Postman, n8n, and Google Sheets. You can also test your API integration for free using the DataForSEO Sandbox, which returns sample responses without charging your account balance.
How do I check my DataForSEO balance programmatically?
You can call the free user data endpoint at GET https://api.dataforseo.com/v3/appendix/user_data using HTTP Basic authentication with your API credentials. The response returns your remaining balance in USD under result[0].money.balance.
Sources
Updated