Cloudflare Trace
App · Utilities · 4 actions
Trace a request through Cloudflare's network with its free, keyless trace endpoint: get the public IP address and country Lodol calls out from, the Cloudflare data center that answers, and the HTTP and TLS versions and time Cloudflare saw. Check whether any website is served through Cloudflare and which data center answers for it, and look up Cloudflare's data centers with their city, country, region and current status from its status page. No account or API key required.
Actions
| Action | What it does |
|---|---|
| Check a site for Cloudflare | Check whether a website is served through Cloudflare by asking it for Cloudflare's trace page, which only sites on Cloudflare have. |
| Get a data center | Look up one of Cloudflare's data centers by its three-letter code, such as the one a trace or a site check names, and get its city, country, region and current status from Cloudflare's status page. |
| List data centers | List Cloudflare's data centers, more than 300 around the world, with their city, country, region and current status from Cloudflare's status page, in order of city. |
| Run a trace | Trace a request from Lodol to Cloudflare's network and get what Cloudflare saw: the public IP address it came from and that address's country, the Cloudflare data center that answered, the HTTP and TLS versions and key exchange used, and the time. |
Check a site for Cloudflare
Check whether a website is served through Cloudflare by asking it for Cloudflare's trace page, which only sites on Cloudflare have. Returns which data center answered, the Ray ID and Server header, and the trace itself when the site shows it. A site that refuses its trace is still recognised by Cloudflare's headers, and redirects are followed, so a domain that forwards to its www address is checked there. No API key required.
Inputs
- Site
sitetextRequired - The website to check: its domain, such as example.com, or any address on it, such as https://www.example.com/pricing. Only its host is used, over https unless the address starts http://.
Outputs
data_centertext- The code of the Cloudflare data center that answered, e.g. 'SJC', or null when the site is not on Cloudflare.
detected_bytext- 'trace' when the site answered with Cloudflare's trace, 'headers' when it refused or replaced the trace but answered with Cloudflare's CF-RAY or Server header, or null when it is not on Cloudflare.
hosttext- The host that gave the answer, after any redirects, e.g. 'www.canva.com'.
on_cloudflaretrue/false- Whether the host that answered is served through Cloudflare.
ray_idtext- Cloudflare's Ray ID for the request, e.g. 'a426a631ca79e418-SJC', which Cloudflare support asks for; null when the site is not on Cloudflare.
redirectedtrue/false- Whether the site redirected the check to another address.
servertext- The answer's Server header, e.g. 'cloudflare', 'CloudFront' or 'Vercel', which often names who serves a site that is not on Cloudflare; null when there is none.
sitetext- The site's host as given, in lower case, e.g. 'canva.com'.
status_codenumber- The HTTP status of the answer, e.g. 200, or 403 when the site refuses its trace.
traceobject- The trace the site answered with, in the same fields as Run a trace, or null when it did not answer with one.
Example output
{
"data_center": "SJC",
"detected_by": "trace",
"host": "example.com",
"on_cloudflare": true,
"ray_id": "a426c7c389f30c97-SJC",
"redirected": false,
"server": "cloudflare",
"site": "example.com",
"status_code": 200,
"trace": {
"browser_isolation": "off",
"country": "US",
"data_center": "SJC",
"fields": {
"colo": "SJC",
"fl": "1232f86",
"gateway": "off",
"h": "example.com",
"http": "http/1.1",
"ip": "203.0.113.7",
"kex": "X25519MLKEM768",
"loc": "US",
"rbi": "off",
"sliver": "050-tier1",
"sni": "plaintext",
"tls": "TLSv1.3",
"ts": "1790640789.000",
"uag": "LodolCloudflareTraceIntegration/1.0 (+https://www.lodol.ai; contact: support@skipflow.ai)",
"visit_scheme": "https",
"warp": "off"
},
"gateway": "off",
"host": "example.com",
"http_version": "http/1.1",
"ip": "203.0.113.7",
"ip_version": 4,
"key_exchange": "X25519MLKEM768",
"scheme": "https",
"server_instance": "1232f86",
"sliver": "050-tier1",
"sni": "plaintext",
"time": "2026-09-29T00:13:09Z",
"timestamp": 1790640789,
"tls_version": "TLSv1.3",
"user_agent": "LodolCloudflareTraceIntegration/1.0 (+https://www.lodol.ai; contact: support@skipflow.ai)",
"warp": "off"
}
}Get a data center
Look up one of Cloudflare's data centers by its three-letter code, such as the one a trace or a site check names, and get its city, country, region and current status from Cloudflare's status page. No API key required.
Inputs
- Data center
data_centertextRequired - The data center's three-letter code, such as SJC for San Jose or FRA for Frankfurt, as the data center field of a trace or a site check gives it.
Outputs
data_centerobject- A Cloudflare data center, as its status page lists it.
Example output
{
"data_center": {
"city": "San Jose",
"code": "SJC",
"country": "United States",
"country_code": "US",
"name": "San Jose, CA, United States",
"region": "North America",
"state": "CA",
"status": "operational",
"updated_at": "2026-02-10T19:37:00.000Z"
}
}List data centers
List Cloudflare's data centers, more than 300 around the world, with their city, country, region and current status from Cloudflare's status page, in order of city. Optionally only one region or country, those whose name contains some text, or only those operational or not. No API key required.
Inputs
- Region
regiontext - Only data centers in this region, as Cloudflare's status page groups them.One of:
africa,asia,europe,latin_america(Latin America & the Caribbean),middle_east(Middle East),north_america(North America),oceania. - Country
countrytext - Only data centers in this country: its two-letter code, such as DE, or its name as Cloudflare writes it, such as Germany. Hong Kong and Macau go by name or code; Taipei and Kaohsiung City are TW, and Ramallah is PS.
- Status
statustext - Only data centers with this status now. Anything but operational finds those under maintenance or with problems.One of:
operational,not_operational(Anything but operational),under_maintenance(Under maintenance),degraded_performance(Degraded performance),partial_outage(Partial outage),major_outage(Major outage). - Search
searchtext - Only data centers whose city, state, country or code contains this, ignoring case and accents, such as frankfurt or sao paulo.
Outputs
countnumber- How many data centers match.
data_centerslist- The data centers that match, in order of city. Empty when none do.
Example output
{
"count": 6,
"data_centers": [
{
"city": "Berlin",
"code": "TXL",
"country": "Germany",
"country_code": "DE",
"name": "Berlin, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-07-02T12:26:12.000Z"
},
{
"city": "D\u00fcsseldorf",
"code": "DUS",
"country": "Germany",
"country_code": "DE",
"name": "D\u00fcsseldorf, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-03-25T03:39:53.000Z"
},
{
"city": "Frankfurt",
"code": "FRA",
"country": "Germany",
"country_code": "DE",
"name": "Frankfurt, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-01-14T23:53:53.000Z"
},
{
"city": "Hamburg",
"code": "HAM",
"country": "Germany",
"country_code": "DE",
"name": "Hamburg, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-08-26T15:50:27.000Z"
},
{
"city": "Munich",
"code": "MUC",
"country": "Germany",
"country_code": "DE",
"name": "Munich, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-03-10T02:19:35.000Z"
},
{
"city": "Stuttgart",
"code": "STR",
"country": "Germany",
"country_code": "DE",
"name": "Stuttgart, Germany",
"region": "Europe",
"state": null,
"status": "operational",
"updated_at": "2026-09-18T03:46:36.000Z"
}
]
}Run a trace
Trace a request from Lodol to Cloudflare's network and get what Cloudflare saw: the public IP address it came from and that address's country, the Cloudflare data center that answered, the HTTP and TLS versions and key exchange used, and the time. Useful for finding the address to allow in a firewall. Choose IPv4, IPv6 or either. No API key required.
Inputs
- IP version
ip_versiontext - Which kind of address to trace from: IPv4 (the default), IPv6, or either, as the network prefers. IPv6 fails when Lodol's servers have no IPv6 route.One of:
ipv4,ipv6,either(Either, as the network prefers). Default:ipv4.
Outputs
browser_isolationtext- 'on' when the request came from Cloudflare Browser Isolation, otherwise 'off'.
countrytext- The two-letter code of the country Cloudflare places that address in, e.g. 'US'.
data_centertext- The three-letter code of the Cloudflare data center that answered, e.g. 'SJC'. Get a data center takes it.
fieldsobject- Every line of the trace as Cloudflare sent it, under Cloudflare's own short names (fl, h, ip, ts, colo, loc, kex and so on), including any Cloudflare adds later.
gatewaytext- 'on' when the request came through Cloudflare Gateway, otherwise 'off'.
hosttext- The host name the request asked for, e.g. '1.1.1.1'.
http_versiontext- The HTTP version used: 'http/1.1', 'http/2' or 'http/3'.
iptext- The public IP address the request came from, e.g. '203.0.113.7'.
ip_versionnumber- 4 or 6: which kind of address that is.
key_exchangetext- How the TLS keys were agreed, e.g. 'X25519MLKEM768', which resists quantum computers, or 'X25519'; 'none' over plain http.
schemetext- 'https' or 'http'.
server_instancetext- Which Cloudflare server answered, e.g. '464f191'.
slivertext- Which of Cloudflare's gradual release groups served the request, e.g. '010-tier1', or 'none'.
snitext- How the host name was sent when connecting: 'plaintext', 'encrypted', or 'off' when none was sent, as when asking an IP address.
timetext- When Cloudflare answered, as an ISO 8601 time in UTC, e.g. '2026-09-28T23:53:58Z'.
timestampnumber- When Cloudflare answered, in whole seconds since 1970.
tls_versiontext- The TLS version used, e.g. 'TLSv1.3', or 'off' over plain http.
user_agenttext- The User-Agent the request sent.
warptext- 'on' or 'plus' when the request came through Cloudflare WARP, otherwise 'off'.
Example output
{
"browser_isolation": "off",
"country": "US",
"data_center": "SJC",
"fields": {
"colo": "SJC",
"fl": "466f114",
"gateway": "off",
"h": "1.1.1.1",
"http": "http/1.1",
"ip": "203.0.113.7",
"kex": "X25519MLKEM768",
"loc": "US",
"rbi": "off",
"sliver": "none",
"sni": "off",
"tls": "TLSv1.3",
"ts": "1790640788.000",
"uag": "LodolCloudflareTraceIntegration/1.0 (+https://www.lodol.ai; contact: support@skipflow.ai)",
"visit_scheme": "https",
"warp": "off"
},
"gateway": "off",
"host": "1.1.1.1",
"http_version": "http/1.1",
"ip": "203.0.113.7",
"ip_version": 4,
"key_exchange": "X25519MLKEM768",
"scheme": "https",
"server_instance": "466f114",
"sliver": "none",
"sni": "off",
"time": "2026-09-29T00:13:08Z",
"timestamp": 1790640788,
"tls_version": "TLSv1.3",
"user_agent": "LodolCloudflareTraceIntegration/1.0 (+https://www.lodol.ai; contact: support@skipflow.ai)",
"warp": "off"
}