Public tools API
Scan a page, fetch its source, or download a single-page export from your own scripts.
Discovery and access
Base URL: https://api.kodexport.com. The operations below do not require an API key.
Download the OpenAPI 3.1 specification or discover the API through
the RFC 9727 API catalog.
This reference covers the free public tools and health endpoint.
auth.md documents agent access and the absence of a registration requirement.
Agents can discover reusable instructions through the skills index.
Pass the source URL in the url query parameter. URL-encode it so its own query
parameters stay intact. Sources must be public HTTP or HTTPS URLs, without embedded
credentials, on ports 80 or 443. Private and loopback addresses are rejected, including
redirect targets. Requests fetch source text without executing JavaScript.
Scan a supported page
GET /scan?url=… detects Framer, Bubble, WordPress, Wix, or Webflow and returns JSON.
curl --get 'https://api.kodexport.com/scan' --data-urlencode 'url=https://your-site.framer.website/'
The response includes status, platform, url,
domain, title (which can be null), ready,
stats, integrations, and warnings.
Stats report HTML bytes, asset count, internal link count, and distinct external script
hostnames. ready means the scan found no warnings; it does not guarantee a complete migration.
Fetch source text
GET /fetch?url=… downloads HTML or other supported text from any public site.
XML, JSON, plain text, and SVG are accepted; binary resources are rejected.
curl --get 'https://api.kodexport.com/fetch' --data-urlencode 'url=https://example.com/' --output page.html
The response is a text/html attachment. X-Source-Content-Type
preserves the upstream media type, and X-Source-Bytes reports the UTF-8 size.
X-Thin-Shell: true flags responses under 2 KiB that may be placeholders for a
client-rendered page. The source body limit is 8 MiB.
Export a single page
GET /export?url=… returns an application/zip attachment for a supported
Framer, Bubble, WordPress, Wix, or Webflow page. The ZIP includes index.html
and downloaded assets in _assets/.
curl --get 'https://api.kodexport.com/export' --data-urlencode 'url=https://your-site.framer.website/' --output page.zip
Exports download up to 500 assets within a 24 MiB asset budget. Individual assets over
10 MiB are skipped; the source HTML limit is 8 MiB. Only downloaded assets get local paths.
Skipped assets keep their remote URLs. Read X-Asset-Count and
X-Skipped-Asset-Count to check coverage. Backend logic, logins, and runtime
workflows require separate migration work.
Limits and errors
- Scan: 60 requests per IP and 20 per IP/domain pair per 24-hour window.
- Fetch: 1,000 requests per IP per 24-hour window.
- Single-page export: 25 requests per IP and 10 per IP/domain pair per 24-hour window.
A 429 response includes Retry-After: 86400. Error bodies are plain
text: 400 for invalid input, 422 for unsupported or empty page
content, and 502 when source retrieval fails. Fetch can also return
413 for a source over the size limit or 415 for an unsupported
media type. See the specification for each operation's responses.
Health and other services
GET /health returns
{"status":"ok","service":"kodexport-api"} when the API is responding.
It does not test downstream payment, storage, or browser services.
For agent-assisted migration, see the MCP setup guide. The MCP server card advertises the hosted endpoint and server identity. For full-site exports and guided migration, see pricing.