There is a Python client to call DataForSeo API.
DataForSEO API uses REST technology for interchanging data between your application and our service. The data exchange is made through the widely used HTTP protocol, which allows applying our API to almost all programming languages.
Client contains 12 sections (aka API):
- Serp (source docs | api docs)
- KeywordsData (source docs | api docs)
- DomainAnalytics (source docs | api docs)
- DataforseoLabs (source docs | api docs)
- Backlinks (source docs | api docs)
- OnPage (source docs | api docs)
- ContentAnalysis (source docs | api docs)
- ContentGeneration (source docs | api docs)
- Merchant (source docs | api docs)
- AppData (source docs | api docs)
- BusinessData (source docs | api docs)
- Appendix (source docs | api docs)
API Contains 2 types of requests:
- Live (Simple HTTP request/response message)
- Task-Based (Where you need to send a 'Task' entity to execute, waiting until the 'Task' status is ready and getting the 'Task' result in a special endpoint. Usually, it represents in 3 endpoints 'TaskPost', 'TaskReady' and 'TaskGet')
For more details - please follow here
Our API description is based on openAPI syntax in YAML format. The YAML file attached to the project here
The documentation for code objects, formatted in Markdown (.md) is available here. Offical documentation for DataForSeo API is avaliable here.
Code generated with using openapi generator cli
pip install dataforseo-client
Example of live request
from __future__ import print_function
import time
import dataforseo_client
from dataforseo_client.rest import ApiException
from pprint import pprint
import asyncio
# Configure HTTP basic authorization: basicAuth
configuration = dataforseo_client.Configuration()
configuration.username = 'USERNAME'
configuration.password = 'PASSWORD'
with dataforseo_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
serp_api = dataforseo_client.SerpApi(api_client)
try:
api_response = serp_api.google_organic_live_advanced([dataforseo_client.SerpTaskRequestInfo(
language_name="English",
location_name="United States",
keyword="albert einstein"
)])
pprint(api_response)
except ApiException as e:
print("Exception: %s\n" % e)
Example of Task-Based request
from __future__ import print_function
import time
import dataforseo_client
from dataforseo_client.rest import ApiException
from pprint import pprint
import asyncio
# Configure HTTP basic authorization: basicAuth
configuration = dataforseo_client.Configuration()
configuration.username = 'USERNAME'
configuration.password = 'PASSWORD'
def GoogleOrganicTaskReady(id):
result = serp_api.google_organic_tasks_ready()
return any(any(xx.id == id for xx in x.result) for x in result.tasks)
with dataforseo_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
serp_api = dataforseo_client.SerpApi(api_client)
try:
task_post = serp_api.google_organic_task_post([dataforseo_client.SerpTaskRequestInfo(
language_name="English",
location_name="United States",
keyword="albert einstein"
)])
task_id = task_post.tasks[0].id
start_time = time.time()
while GoogleOrganicTaskReady(task_id) and (time.time() - start_time) < 60:
asyncio.sleep(1)
api_response = serp_api.google_organic_task_get_advanced(id=task_id)
pprint(api_response)
except ApiException as e:
print("Exception: %s\n" % e)