The Google Search Console API provides programmatic access to your search performance data, allowing you to build automated reports, custom dashboards, and integrate SEO metrics into your business intelligence tools. This guide covers everything from setup to advanced use cases.
What is the Search Console API?
The Google Search Console API (officially the Search Console URL Inspection API and Search Analytics API) allows developers to programmatically access the same data available in the Search Console web interface. Instead of logging in and manually exporting reports, you can write code to fetch data automatically.
Key benefits include:
- Automation: Schedule data pulls without manual intervention
- Integration: Combine GSC data with other data sources
- Customization: Build reports tailored to your specific needs
- Scale: Process data for multiple properties efficiently
- Historical data: Access up to 16 months of search analytics data
API Capabilities
The Search Console API provides several endpoints for different types of data:
Search Analytics API
Access performance data including:
- Clicks, impressions, CTR, and position
- Data by query, page, country, device
- Search appearance (rich results, AMP, etc.)
- Date ranges up to 16 months
URL Inspection API
Programmatically inspect URLs:
- Check indexing status
- View crawl details
- Identify mobile usability issues
- Check rich result status
Sitemaps API
Manage sitemaps programmatically:
- List submitted sitemaps
- Submit new sitemaps
- Delete sitemaps
- Check sitemap status
| API | Primary Use | Data Type |
|---|---|---|
| Search Analytics | Performance reporting | Metrics & dimensions |
| URL Inspection | Indexing diagnostics | Per-URL status |
| Sitemaps | Sitemap management | Sitemap status |
Getting Started
Follow these steps to start using the Search Console API:
Step 1: Create a Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select an existing one
- Note your project ID for later use
Step 2: Enable the API
- Navigate to "APIs & Services" > "Library"
- Search for "Google Search Console API"
- Click "Enable"
Step 3: Create Credentials
Choose the appropriate credential type:
- OAuth 2.0: For applications that access user data with consent
- Service Account: For server-to-server automation
Authentication Setup
Service Account Setup
For automated workflows, create a service account:
- In Cloud Console, go to "IAM & Admin" > "Service Accounts"
- Click "Create Service Account"
- Name your service account and grant appropriate roles
- Create and download a JSON key file
- Add the service account email to your Search Console property as a user
Adding Service Account to Search Console
- Open Google Search Console
- Select your property
- Go to Settings > Users and permissions
- Add the service account email address
- Grant "Full" or "Restricted" access as needed
Sample Authentication Code (Python)
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Path to your service account key file
KEY_FILE = 'service-account-key.json'
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
# Authenticate
credentials = service_account.Credentials.from_service_account_file(
KEY_FILE, scopes=SCOPES
)
# Build the service
service = build('searchconsole', 'v1', credentials=credentials)
Making API Requests
Search Analytics Query
The Search Analytics API uses a query-based approach. Here's an example request:
request = {
'startDate': '2026-01-01',
'endDate': '2026-03-01',
'dimensions': ['query', 'page'],
'rowLimit': 1000,
'dimensionFilterGroups': [{
'filters': [{
'dimension': 'country',
'expression': 'usa'
}]
}]
}
response = service.searchanalytics().query(
siteUrl='https://yoursite.com',
body=request
).execute()
Available Dimensions
query- Search queriespage- Page URLscountry- User countrydevice- Device typedate- DatesearchAppearance- Search feature
Available Metrics
clicks- Total clicksimpressions- Total impressionsctr- Click-through rateposition- Average position
URL Inspection Request
request = {
'inspectionUrl': 'https://yoursite.com/page',
'siteUrl': 'https://yoursite.com'
}
response = service.urlInspection().index().inspect(
body=request
).execute()
# Access inspection results
index_status = response['inspectionResult']['indexStatusResult']
print(f"Indexed: {index_status['coverageState']}")
Skip the Coding - Automate Instantly
Don't want to build your own API integration? RSS AutoIndex handles all the complexity, automatically submitting your content using multiple APIs including Google's Indexing API.
Start AutomatingPractical Use Cases
1. Automated Weekly Reports
Build a script that runs weekly to generate performance reports:
- Pull top queries and pages by clicks
- Compare week-over-week performance
- Identify trending or declining keywords
- Send via email or Slack
2. Custom SEO Dashboards
Integrate GSC data into business intelligence tools:
- Google Data Studio / Looker Studio
- Tableau or Power BI
- Custom web dashboards
- Combined with Google Analytics data
3. Rank Tracking
Monitor keyword positions over time:
- Daily position tracking for target keywords
- Alerts for significant ranking changes
- Historical ranking trends
4. Content Performance Analysis
Analyze content at scale:
- Identify underperforming pages
- Find content optimization opportunities
- Track content freshness impact
5. Technical SEO Monitoring
Automated indexing health checks:
- Monitor critical page indexing status
- Alert on indexing issues
- Track coverage trends
Sample: Weekly Traffic Summary
def get_weekly_summary(service, site_url):
from datetime import datetime, timedelta
end_date = datetime.now() - timedelta(days=3) # Data delay
start_date = end_date - timedelta(days=7)
request = {
'startDate': start_date.strftime('%Y-%m-%d'),
'endDate': end_date.strftime('%Y-%m-%d'),
'dimensions': ['query'],
'rowLimit': 10
}
response = service.searchanalytics().query(
siteUrl=site_url,
body=request
).execute()
print("Top 10 Queries This Week:")
for row in response.get('rows', []):
print(f" {row['keys'][0]}: {row['clicks']} clicks")
Best Practices
- Respect rate limits: Stay within quota limits to avoid errors
- Account for data delay: GSC data has a 2-3 day delay
- Batch requests: Combine multiple queries when possible
- Handle pagination: Use row limits and startRow for large datasets
- Cache responses: Store data locally to reduce API calls
- Error handling: Implement retry logic for transient failures
- Secure credentials: Never commit API keys to version control
Error Handling Example
import time
from googleapiclient.errors import HttpError
def query_with_retry(service, site_url, request, max_retries=3):
for attempt in range(max_retries):
try:
return service.searchanalytics().query(
siteUrl=site_url,
body=request
).execute()
except HttpError as e:
if e.resp.status in [429, 500, 503]:
wait_time = (2 ** attempt) * 10 # Exponential backoff
time.sleep(wait_time)
else:
raise
raise Exception("Max retries exceeded")
Limitations and Quotas
Be aware of these API limitations:
| Limit Type | Value |
|---|---|
| Queries per day | 25,000 |
| Queries per minute | 1,200 |
| Max rows per response | 25,000 |
| Data freshness | 2-3 day delay |
| Historical data | 16 months |
| URL Inspection | 2,000 per day per property |
Data Sampling
For high-traffic sites, data may be sampled. To improve accuracy:
- Use shorter date ranges
- Filter by specific dimensions
- Query specific pages rather than entire site
Our automatic indexing service saves you time while improving your SEO visibility.
Conclusion
The Google Search Console API is a powerful tool for SEO automation. Whether you're building custom reports, integrating with dashboards, or monitoring site health, the API provides the data you need programmatically.
Key takeaways:
- Set up proper authentication using service accounts for automation
- Understand available endpoints: Search Analytics, URL Inspection, Sitemaps
- Build practical solutions: automated reports, dashboards, monitoring
- Follow best practices for rate limits and error handling
- Account for the 2-3 day data delay in your workflows
Let Us Handle the Technical Work
RSS AutoIndex uses the Google APIs to automatically submit your content for indexing. No coding required - just connect your RSS feed and we do the rest.
Try Free Now