API Reference
The Cloudenci API gives you programmatic access to real-time SERP data, structured page analysis and Googlebot rendering. All endpoints return JSON and use standard HTTP semantics.
The API is versioned under /v1. Future breaking changes will increment the version prefix.
Authentication
Authenticate by passing your API key in the Authorization header as a Bearer token. You can find and rotate your API keys in the dashboard.
Authorization: Bearer cld_sk_your_api_key_here
Quickstart
Make your first API call to retrieve live SERP data:
curl "https://api.cloudenci.com/v1/serp?keyword=best+vpn&country=US" \
-H "Authorization: Bearer YOUR_API_KEY"
Errors
Cloudenci uses standard HTTP status codes. Error responses include a machine-readable code and a human-readable message.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 429 | Rate limit exceeded |
| 500 | Internal error — we've been notified automatically |
/v1/serp
Returns structured search result data for a given keyword and country. Results include organic listings, paid ads, featured snippets and rich results where present.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| keyword | string | Yes | The search query to retrieve results for. |
| country | string | No | ISO 3166-1 alpha-2 country code. Default: US |
| results | integer | No | Number of results to return (10–100). Default: 10 |
| language | string | No | ISO 639-1 language code. Default: en |
Request
/v1/serp
curl "https://api.cloudenci.com/v1/serp?keyword=headless+cms&country=US&results=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"keyword": "headless cms",
"country": "US",
"language": "en",
"fetched_at": "2025-03-14T09:22:18Z",
"total_results_estimate": 2140000000,
"results": [
{
"position": 1,
"type": "organic",
"title": "Contentful — The Leading Headless CMS Platform",
"url": "https://www.contentful.com",
"domain": "contentful.com",
"snippet": "The leading headless CMS platform. Deliver content across...",
"domain_authority": 93
}
]
}
/v1/page-analysis
Extracts the full structure of any URL — headings, meta tags, schema markup, internal links, word count and content metadata.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | The fully-qualified URL to analyze (must include https://). |
| include_links | boolean | No | Include internal and external link list. Default: false |
Request
/v1/page-analysis
curl "https://api.cloudenci.com/v1/page-analysis?url=https://contentful.com&include_links=true" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"url": "https://contentful.com",
"fetched_at": "2025-03-14T09:22:18Z",
"title": "The Leading Headless CMS Platform | Contentful",
"meta_description": "Contentful is the leading headless CMS...",
"word_count": 2840,
"headings": [
{ "level": "h1", "text": "The Leading Headless CMS Platform" },
{ "level": "h2", "text": "API-first content infrastructure" }
],
"schema_types": ["Organization", "SoftwareApplication"],
"canonical": "https://www.contentful.com/"
}
/v1/googlebot-fetch
Renders any URL using a headless Chromium browser with the Googlebot Smartphone user agent. Returns the fully rendered HTML, resource load data and indexability status.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | The fully-qualified URL to render. |
| screenshot | boolean | No | Include a base64-encoded screenshot. Default: false |
Request
/v1/googlebot-fetch
curl "https://api.cloudenci.com/v1/googlebot-fetch?url=https://nextjs.org" \
-H "Authorization: Bearer YOUR_API_KEY"
Response
{
"url": "https://nextjs.org",
"fetched_at": "2025-03-14T09:24:11Z",
"indexable": true,
"noindex": false,
"raw_html_size_bytes": 12700,
"rendered_html_size_bytes": 96200,
"render_time_ms": 1842,
"js_rendered": true,
"resources_blocked": [],
"rendered_html": "<!DOCTYPE html>..."
}
Node.js SDK
Official SDKs are in development and will be available at early access launch. For now, use the REST API directly with any HTTP client.
const response = await fetch(
`https://api.cloudenci.com/v1/serp?keyword=best+vpn&country=US`,
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
);
const data = await response.json();
Python SDK
import requests
response = requests.get(
"https://api.cloudenci.com/v1/serp",
params={"keyword": "best vpn", "country": "US"},
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()