API Documentation
- 1. Introduction
- 2. Authentication
- 3. Quick Start
- 4. Base URL
- 5. Response Format
- 6. Pagination, Filtering & Sorting
- 7. API Reference
- 7.1 Websites
- 7.2 URLs
- 7.3 Sitemaps
- 7.4 Indexation
- 7.5 URL Data (PageSpeed)
- 7.6 Prompt Analysis
- 7.7 Models
- 7.8 Blog Posts
- 7.9 Reports
- 7.10 Settings
- 7.11 Custom Dashboards
- 7.12 Tools
- 7.13 Google User Profile
- 8. Rate Limits
- 9. Error Responses
- 10. Changelog
1. Introduction
The Better Search Console API gives you full programmatic access to manage your websites, URLs, sitemaps, indexation queues, prompt analyses, reports, and settings — everything you can do in the web interface.
The API is organized around REST principles. It uses standard HTTP methods, returns JSON responses, and uses token-based authentication.
Key features
- Read all your SEO data (URLs, sitemaps, indexation status, PageSpeed)
- Queue URLs for Google and Bing indexation
- Manage sitemaps (add, process, delete)
- Run AI prompt analyses
- Generate reports, sitemaps, and robots.txt
- Configure website settings programmatically
2. Authentication
All API requests require a token passed via the X-API-TOKEN HTTP header.
Generating a Token
- Log into Better Search Console
- Go to Settings
- Click Generate API Token
- Copy the 64-character token
Using the Token
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" https://www.better-search-console.com/api/websites
3. Quick Start
Here's how to get started in 3 steps:
Step 1: Get your websites
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/websites
Step 2: List URLs for a website
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
"https://www.better-search-console.com/api/urls?website.id=1"
Step 3: Submit a URL for Google indexation
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/new-page"}' \
https://www.better-search-console.com/api/indexation/google
4. Base URL
All API endpoints are relative to:
https://www.better-search-console.com/api
Example: to list websites, send a GET request to https://www.better-search-console.com/api/websites
5. Response Format
Read endpoints (GET) return JSON-LD format via API Platform:
{
"@context": "/api/contexts/Website",
"@id": "/api/websites",
"@type": "hydra:Collection",
"hydra:totalItems": 2,
"hydra:member": [ ... ]
}
Write endpoints (POST/PUT/DELETE) return standard JSON:
{"message": "Added to Google queue", "url": "https://example.com/page"}
6. Pagination, Filtering & Sorting
Pagination
Collections return 30 items per page. Use the page parameter:
GET /api/urls?page=2
The response includes navigation links:
"hydra:view": {
"hydra:first": "/api/urls?page=1",
"hydra:last": "/api/urls?page=6",
"hydra:next": "/api/urls?page=3"
}
Filtering
Use query parameters to filter results. Filter strategies:
| Strategy | Description | Example |
|---|---|---|
exact | Exact match | ?website.id=1 |
partial | Contains (LIKE %value%) | ?url=blog |
Combine multiple filters:
GET /api/urls?website.id=1&coverageState=indexed&url=blog&page=1
7. API Reference
7.1 Websites
/api/websites — List all your websites/api/websites/{id} — Get a single websiteResponse fields
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier |
name | string | Display name |
url | string | Website URL or sc-domain property |
description | string | Description |
category | string | Category |
autoIndexing | boolean | Auto-indexing enabled (premium) |
autoSitemapRefresh | boolean | Auto sitemap refresh (premium) |
AutoUpdateStatus | boolean | Auto status update (premium) |
recapEmail | boolean | Recap email enabled |
indexationRequestToday | integer | Indexation requests used today |
checkStatusRequestToday | integer | Status checks used today |
Example
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/websites
Response 200
{
"@context": "/api/contexts/Website",
"@id": "/api/websites",
"@type": "hydra:Collection",
"hydra:totalItems": 2,
"hydra:member": [
{
"@id": "/api/websites/1",
"@type": "Website",
"id": 1,
"name": "My Blog",
"url": "sc-domain:example.com",
"description": "Personal blog about SEO",
"category": "blog",
"autoIndexing": true,
"autoSitemapRefresh": true,
"AutoUpdateStatus": false,
"recapEmail": true,
"indexationRequestToday": 3,
"checkStatusRequestToday": 12
}
]
}
7.2 URLs
/api/urls — List URLs/api/urls/{id} — Get a single URL/api/urls/{id} — Delete a URL/api/urls/delete/bulk — Bulk delete URLsFilters
| Parameter | Strategy | Example |
|---|---|---|
website.id | exact | ?website.id=1 |
sitemap.id | exact | ?sitemap.id=5 |
url | partial | ?url=blog |
coverageState | partial | ?coverageState=indexed |
coverageStateSlug | exact | ?coverageStateSlug=submitted-and-indexed |
indexingState | partial | ?indexingState=submitted |
List URLs
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
"https://www.better-search-console.com/api/urls?website.id=1&coverageState=indexed&page=1"
Response 200
{
"@context": "/api/contexts/Url",
"@id": "/api/urls",
"@type": "hydra:Collection",
"hydra:totalItems": 156,
"hydra:member": [
{
"@id": "/api/urls/42",
"@type": "Url",
"id": 42,
"url": "https://example.com/blog/seo-tips",
"sitemap": {"@id": "/api/sitemaps/3", "id": 3, "url": "https://example.com/sitemap.xml"},
"website": {"@id": "/api/websites/1", "id": 1, "name": "My Blog", "url": "sc-domain:example.com"},
"bingStatus": 1,
"coverageState": "Submitted and indexed",
"coverageStateSlug": "submitted-and-indexed",
"crawledAs": "Googlebot smartphone",
"googleCanonical": "https://example.com/blog/seo-tips",
"indexingState": "Indexing allowed",
"lastCrawlTime": "2025-06-15 08:30",
"pageFetchState": "Successful",
"robotsTxtState": "Allowed",
"userCanonical": "https://example.com/blog/seo-tips",
"lastCheck": "2025-06-20 14:00",
"lastIndexingRequest": "2025-06-10 09:00",
"lastIndexingRequestBing": "2025-06-10 09:05",
"addedToQueueForBing": null,
"addedToQueueForGoogle": null,
"addedToQueueForIndexationCheck": null,
"mustBeIndexed": true
}
],
"hydra:view": {
"hydra:first": "/api/urls?page=1",
"hydra:last": "/api/urls?page=6",
"hydra:next": "/api/urls?page=2"
}
}
Delete a URL
curl -X DELETE -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/urls/42
Response 200
{"message": "URL deleted"}
Bulk delete URLs
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "urls": ["https://example.com/old-1", "https://example.com/old-2"]}' \
https://www.better-search-console.com/api/urls/delete/bulk
Response 200
{"message": "URLs deleted", "deleted_count": 2, "not_found_count": 0}
7.3 Sitemaps
/api/sitemaps — List sitemaps/api/sitemaps/{id} — Get a single sitemap/api/sitemaps/add — Add a new sitemap/api/sitemaps/{id}/process — Process (extract URLs)/api/sitemaps/process-all — Process all sitemaps/api/sitemaps/{id} — Delete a sitemapFilters: website.id (exact), url (partial)
List sitemaps
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
"https://www.better-search-console.com/api/sitemaps?website.id=1"
Response 200
{
"@context": "/api/contexts/Sitemap",
"@id": "/api/sitemaps",
"@type": "hydra:Collection",
"hydra:totalItems": 3,
"hydra:member": [
{
"@id": "/api/sitemaps/1",
"@type": "Sitemap",
"id": 1,
"url": "https://example.com/sitemap.xml",
"lastmod": "2025-06-20",
"website": {"@id": "/api/websites/1", "id": 1, "name": "My Blog", "url": "sc-domain:example.com"},
"lastRead": "2025-06-21 10:00"
}
]
}
Add a sitemap
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "url": "https://example.com/sitemap-blog.xml"}' \
https://www.better-search-console.com/api/sitemaps/add
Response 201
{"message": "Sitemap added successfully", "url": "https://example.com/sitemap-blog.xml"}
Process a sitemap
curl -X POST -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/sitemaps/1/process
Response 200
{"message": "Sitemap processed", "urls_found": 47}
Process all sitemaps
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1}' \
https://www.better-search-console.com/api/sitemaps/process-all
Response 200
{"message": "3 sitemap(s) processed", "processed": 3, "errors": []}
Delete a sitemap
curl -X DELETE -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/sitemaps/1
Response 200
{"message": "Sitemap deleted"}
7.4 Indexation
Queue URLs for Google/Bing indexation or status checks. Subject to daily rate limits.
/api/indexation/google — Queue for Google/api/indexation/bing — Queue for Bing/api/indexation/bulk — Bulk queue Google/Bing/api/indexation/check — Check indexation status/api/indexation/check/bulk — Bulk check status/api/indexation/disable/bulk — Disable & remove/api/indexation/reenable/bulk — Re-enable indexation/api/indexation/coverage-state — Update coverage stateQueue for Google
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/my-page"}' \
https://www.better-search-console.com/api/indexation/google
Response 200
{"message": "Added to Google queue", "url": "https://example.com/my-page"}
Queue for Bing
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/my-page"}' \
https://www.better-search-console.com/api/indexation/bing
Response 200
{"message": "Added to Bing queue", "url": "https://example.com/my-page"}
Bulk queue (Google + Bing)
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "urls": ["https://example.com/page-1", "https://example.com/page-2"], "google": true, "bing": true}' \
https://www.better-search-console.com/api/indexation/bulk
Response 200
{"message": "Bulk queue processed", "success_count": 2, "error_count": 0}
Check indexation status
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/my-page"}' \
https://www.better-search-console.com/api/indexation/check
Response 200
{"message": "Added to indexation check queue", "url": "https://example.com/my-page"}
Bulk check status
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "urls": ["https://example.com/page-1", "https://example.com/page-2"]}' \
https://www.better-search-console.com/api/indexation/check/bulk
Response 200
{"message": "Bulk check queue processed", "success_count": 2, "error_count": 0}
Disable & queue for removal
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "urls": ["https://example.com/old-page"]}' \
https://www.better-search-console.com/api/indexation/disable/bulk
Response 200
{"message": "URLs marked for removal", "success_count": 1, "error_count": 0}
Re-enable indexation
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "urls": ["https://example.com/old-page"]}' \
https://www.better-search-console.com/api/indexation/reenable/bulk
Response 200
{"message": "Indexation re-enabled", "success_count": 1, "error_count": 0}
Update coverage state
curl -X PUT \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/my-page", "state": "Submitted and indexed"}' \
https://www.better-search-console.com/api/indexation/coverage-state
Response 200
{"message": "Coverage state updated", "url": "https://example.com/my-page", "state": "Submitted and indexed"}
Response 403 (limit reached)
{"error": "Daily indexation limit reached", "limit_reached": true}
7.5 URL Data (PageSpeed)
/api/url_data — List URL data/api/url_data/{id} — Get specific URL dataFilters: url.id (exact)
Example
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
"https://www.better-search-console.com/api/url_data?url.id=42"
Response 200
{
"@context": "/api/contexts/UrlData",
"@id": "/api/url_data",
"@type": "hydra:Collection",
"hydra:totalItems": 1,
"hydra:member": [
{
"@id": "/api/url_data/15",
"@type": "UrlData",
"id": 15,
"pageSpeedJson": {
"performance": 92,
"accessibility": 98,
"best_practices": 95,
"seo": 100,
"lcp": 1.2,
"fid": 12,
"cls": 0.05
},
"lastUpdate": "2025-06-18T14:30:00+00:00"
}
]
}
7.6 Prompt Analysis
/api/prompt_analyses — List analyses/api/prompt_analyses/{id} — Get a single analysis/api/prompt-analyses/create — Create analysis/api/prompt-analyses/{id}/keywords — Update keywordsFilters: website.id (exact)
List analyses
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
"https://www.better-search-console.com/api/prompt_analyses?website.id=1"
Response 200
{
"@context": "/api/contexts/PromptAnalysis",
"@id": "/api/prompt_analyses",
"@type": "hydra:Collection",
"hydra:totalItems": 5,
"hydra:member": [
{
"@id": "/api/prompt_analyses/1",
"@type": "PromptAnalysis",
"id": 1,
"prompt": "What are the best SEO tools?",
"date": "2025-06-15T10:00:00+00:00",
"models": ["gpt-4", "claude-3-opus", "gemini-pro"],
"modelResponses": "{\"gpt-4\": \"Here are the best...\", \"claude-3-opus\": \"For SEO...\"}",
"targetedKeywords": ["SEO tools", "keyword research"]
}
]
}
Create analysis
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "prompt": "Best SEO tools for e-commerce", "models": ["gpt-4", "claude-3-opus"], "targeted_keywords": ["SEO", "e-commerce"]}' \
https://www.better-search-console.com/api/prompt-analyses/create
Response 201
{"message": "Prompt analysis created", "id": 12}
Update keywords
curl -X PUT \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"targeted_keywords": ["SEO", "tools", "ranking", "traffic"]}' \
https://www.better-search-console.com/api/prompt-analyses/12/keywords
Response 200
{"message": "Keywords updated", "id": 12}
7.7 Models
/api/models — List available AI models/api/models/{id} — Get a modelExample
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/models
Response 200
{
"@context": "/api/contexts/Models",
"@id": "/api/models",
"@type": "hydra:Collection",
"hydra:totalItems": 3,
"hydra:member": [
{"@id": "/api/models/1", "@type": "Models", "id": 1, "name": "gpt-4", "price": 0.03},
{"@id": "/api/models/2", "@type": "Models", "id": 2, "name": "claude-3-opus", "price": 0.025},
{"@id": "/api/models/3", "@type": "Models", "id": 3, "name": "gemini-pro", "price": 0.01}
]
}
7.8 Blog Posts
/api/blog_posts — List blog posts/api/blog_posts/{id} — Get a postExample
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/blog_posts
Response 200
{
"@context": "/api/contexts/BlogPost",
"@id": "/api/blog_posts",
"@type": "hydra:Collection",
"hydra:totalItems": 1,
"hydra:member": [
{
"@id": "/api/blog_posts/1",
"@type": "BlogPost",
"id": 1,
"title": "How to improve your SEO in 2025",
"content": "<p>Here are the top strategies...</p>",
"createdAt": "2025-05-10T12:00:00+00:00",
"slug": "how-to-improve-your-seo-in-2025",
"image": "/uploads/blog/seo-2025.jpg",
"metaTitle": "Improve SEO 2025",
"metaDescription": "Learn the best strategies...",
"ogTitle": "How to improve your SEO in 2025",
"ogDescription": "Complete guide for SEO",
"keywords": "SEO, 2025, Google",
"articleSection": "SEO"
}
]
}
7.9 Reports
/api/reports/generate — Generate PDF report (premium only)Example
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "start_date": "2025-01-01", "end_date": "2025-01-31"}' \
-o report-january.pdf \
https://www.better-search-console.com/api/reports/generate
Response 200
Binary PDF file (Content-Type: application/pdf). Use -o filename.pdf to save.
Response 403
{"error": "Report generation requires a premium subscription"}
7.10 Settings
/api/settings/website/{id} — Update settings/api/settings/website/{id}/service-account — Upload service account/api/settings/website/{id}/service-account — Delete service account/api/settings/website/{id}/bing-key — Set Bing API keyUpdate website settings
Only pass the fields you want to change.
curl -X PUT \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"autoIndexing": true, "autoSitemapRefresh": true, "autoUpdateStatus": false, "recapEmail": true}' \
https://www.better-search-console.com/api/settings/website/1
Response 200
{"message": "Website settings updated"}
autoIndexing, autoSitemapRefresh, and autoUpdateStatus can only be enabled with Starter/Pro/Master.
Upload Google service account
Send as multipart/form-data with a json_key file field.
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-F "json_key=@/path/to/service-account.json" \
https://www.better-search-console.com/api/settings/website/1/service-account
Response 200
{"message": "Service account uploaded"}
Delete service account
curl -X DELETE -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/settings/website/1/service-account
Response 200
{"message": "Service account deleted"}
Set Bing API key
curl -X PUT \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"bing_api_key": "your-32-char-bing-api-key-here"}' \
https://www.better-search-console.com/api/settings/website/1/bing-key
Response 200
{"message": "Bing API key updated"}
7.11 Custom Dashboards
/api/dashboards — Create dashboard (max 3)/api/dashboards/{id} — Update dashboard/api/dashboards/{id} — Delete dashboard/api/dashboards/{id}/widgets — Save widgetsCreate dashboard
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_id": 1, "name": "SEO Overview"}' \
https://www.better-search-console.com/api/dashboards
Response 201
{"message": "Dashboard created", "id": 5}
Update dashboard
curl -X PUT \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"name": "Main Dashboard", "is_default": true}' \
https://www.better-search-console.com/api/dashboards/5
Response 200
{"message": "Dashboard updated"}
Delete dashboard
curl -X DELETE -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/dashboards/5
Response 200
{"message": "Dashboard deleted"}
Save widgets
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"widgets": [{"type": "chart", "title": "Indexed Pages", "span": 2, "config": {"metric": "indexed_count"}}, {"type": "counter", "title": "Total URLs", "span": 1, "config": {}}]}' \
https://www.better-search-console.com/api/dashboards/5/widgets
Response 200
{"message": "Widgets saved", "count": 2}
7.12 Tools
/api/tools/generate-sitemap — Generate sitemap XML/api/tools/generate-robots — Generate robots.txtGenerate sitemap
Crawls a website and generates sitemap XML.
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"website_url": "https://example.com", "max_urls": 100}' \
https://www.better-search-console.com/api/tools/generate-sitemap
Response 200
{
"sitemap_xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url><loc>https://example.com/</loc></url>\n <url><loc>https://example.com/about</loc></url>\n</urlset>"
}
Generate robots.txt
curl -X POST \
-H "X-API-TOKEN: YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{"user_agents": [{"name": "*", "disallow": ["/admin", "/private"], "allow": ["/public"], "crawl_delay": 1}, {"name": "Googlebot", "disallow": [], "allow": ["/"]}], "sitemaps": ["https://example.com/sitemap.xml"]}' \
https://www.better-search-console.com/api/tools/generate-robots
Response 200
{
"robots_txt": "User-agent: *\nDisallow: /admin\nDisallow: /private\nAllow: /public\nCrawl-delay: 1\n\nUser-agent: Googlebot\nAllow: /\n\nSitemap: https://example.com/sitemap.xml"
}
7.13 Google User Profile
/api/google_users — Get your profile/api/google_users/{id} — Get by ID (own only)Example
curl -H "X-API-TOKEN: YOUR_TOKEN_HERE" \
https://www.better-search-console.com/api/google_users
Response 200
{
"@context": "/api/contexts/GoogleUser",
"@id": "/api/google_users",
"@type": "hydra:Collection",
"hydra:totalItems": 1,
"hydra:member": [
{
"@id": "/api/google_users/7",
"@type": "GoogleUser",
"id": 7,
"nickname": "John",
"subscriptionType": "pro",
"newsletterEmail": true,
"hasPreviouslyBeenPremium": false
}
]
}
8. Rate Limits
Indexation and verification endpoints share daily limits with the web interface:
| Plan | Indexation Requests/day | Status Checks/day |
|---|---|---|
| Free | 10 | 50 |
| Starter | 100 | 200 |
| Pro | 200 | 500 |
| Master | Unlimited | Unlimited |
When you hit the limit, endpoints return HTTP 403 with:
{"error": "Daily indexation limit reached", "limit_reached": true}
Limits reset daily at midnight UTC. The current usage is visible via the /api/websites endpoint (indexationRequestToday and checkStatusRequestToday fields).
9. Error Responses
| Code | Meaning | Example body |
|---|---|---|
400 | Bad request (missing or invalid parameters) | {"error": "Missing \"url\" parameter"} |
401 | Missing or invalid API token | {"error": "Invalid or missing API token"} |
403 | Not authorized, premium required, or limit reached | {"error": "Daily indexation limit reached", "limit_reached": true} |
404 | Resource not found or access denied | {"error": "URL not found or access denied"} |
409 | Conflict (duplicate resource) | {"error": "This sitemap already exists"} |
422 | Validation failed | {"error": "Sitemap is not accessible (HTTP 404)"} |
500 | Internal server error | {"error": "Error processing sitemap: ..."} |
10. Changelog
v1.0.0 — July 2026
- Initial API release
- Read endpoints: Websites, URLs, Sitemaps, URL Data, Prompt Analyses, Models, Blog Posts, Google User
- Write endpoints: Indexation (Google/Bing/bulk/check), Sitemap management, URL deletion, Prompt Analysis creation, Settings, Custom Dashboards, Reports, Tools
- Token-based authentication via
X-API-TOKENheader - Rate limits enforced per subscription plan
- User data isolation (all data scoped to authenticated user)
