DataForSEO
Connect DataForSEO to pull SERP results, keyword data, backlinks, on-page audits, and domain and content analytics.
You paste two values into PopMCP: the API login and the auto-generated API password shown on the DataForSEO API Access page. The API password is not the password you sign in to the dashboard with.
- Setup time
- 3 min
- Auth
- API credentials
- API base URL
- https://api.dataforseo.com/v3
- Rate limits
- 2,000 requests per minute overall, with at most 30 simultaneous requests to database-backed APIs such as Labs, Backlinks, OnPage, Content Analysis and Trends. Some endpoints are far tighter, for example live Google Ads at 12 per minute.
Before you begin
- A DataForSEO account. Registration is free, the sandbox is free, and live endpoints draw on your balance
- Permission to view the API password. Restricted sub-accounts see "You do not have permission to get API password" in place of the value
- If the account uses the IP Access whitelist on the API Settings page, PopMCP's outbound IPs must be added or every call is rejected
Get your credentials
Sign in to the DataForSEO dashboard
Go to app.dataforseo.com and sign in. Register first if you do not have an account.
Open API Access
Click API Access in the left menu, under the APIs block.
API Access
Credentials and IP restrictions for this account.
- API login
- you@example.com
- API password
- a7f2****9c14
- Base64 (login:password)
- eW91QGV4****bGU1NA==
The API login is usually your account email. The password is generated by DataForSEO.
Copy the API login and API password
Click Click to Copy next to the credentials. If the password is hidden because registration was more than 24 hours ago, click Send by e-mail instead.
API Access
Reset API password issues a new one and invalidates the old password everywhere it is already in use.
Check the IP Access whitelist is not blocking PopMCP
Click API Settings in the left menu and open the IP Access section. Leave the list empty to accept requests from anywhere, or click Add IP and add PopMCP's egress addresses.
API Settings
IP access, spending limits and custom settings.
| IP address | Label | Added | Status |
|---|---|---|---|
| 203.0.113.24 | Office egressAdded by owner | Mar 4, 2026 | Active |
An empty IP Access list means no restriction.
Paste both values into PopMCP
Fill API Login and API Password in PopMCP, then click Connect.
Connect in PopMCP
Open your workspace, choose DataForSEO in the marketplace, and fill in the connect dialog:
| Field | What to enter |
|---|---|
| API Logintext | Your DataForSEO API login, shown on app.dataforseo.com/api-access (usually your account email). Sent as the username half of an Authorization: Basic header. |
| API Passwordsecret | The separate auto-generated API password on the same API Access page, NOT your dashboard login password. Sent as the password half of the Basic header, stored encrypted, used server-side only.Encrypted with AES-256-GCM on save and never shown again. |
PopMCP verifies the credential against DataForSEO immediately. On success the connection flips to Verified and its MCP tools are provisioned.
Verify it worked
PopMCP shows DataForSEO as Connected and a first call, for example a SERP or Labs request, returns a task with status_code 20000 and your remaining balance rather than an authentication error.
Troubleshooting
40101 Authentication failed
Why: The dashboard sign-in password was pasted instead of the auto-generated API password.
Fix: Copy the API password field on app.dataforseo.com/api-access. If it is no longer shown, use Send by e-mail or Reset API password, then reconnect.
Correct credentials are still rejected
Why: The account's IP Access whitelist is populated and does not include PopMCP's outbound IP.
Fix: Add the IP under IP Access on the API Settings page, or clear the list to remove the restriction.
The API password field is blank or greyed out
Why: More than 24 hours have passed since registration, or the signed-in user is a restricted sub-account.
Fix: Click Send by e-mail, or sign in as the account owner. Restricted users see a permission message in place of the value.
Payment-required or insufficient-funds errors
Why: Live endpoints are billed per call and the account balance has run out.
Fix: Top up under Payments, or point the connector at the free sandbox while testing.
Sporadic failures under load
Why: The 2,000 requests per minute ceiling or the 30-simultaneous-request cap on database-backed APIs was hit.
Fix: Batch up to 100 tasks per task_post request and back off on retries. Contact DataForSEO support for a higher limit.