# CleanedWeb documentation

Build a REST API from a website. Review the records, validate the contract, and bring structured data into your application.

<div class="docs-start"><div><span class="docs-eyebrow">START BUILDING</span><h2>Your first API, from source to response.</h2><p>Choose a collection, check its fields, and make a bounded request with the connection details in your workspace.</p><div class="docs-actions"><a class="docs-primary" href="/docs/quickstart/">Follow the quickstart <span aria-hidden="true">→</span></a><a href="/docs/run-api/">API reference <span aria-hidden="true">↗</span></a></div></div><ol class="start-sequence" aria-label="API creation steps"><li><span>01</span><a href="/docs/choosing-a-source/">Choose your source</a></li><li><span>02</span><a href="/docs/schemas/">Review the records</a></li><li><span>03</span><a href="/docs/build-validation/">Validate and connect</a></li></ol></div>

## Start where you are

<div class="docs-cards"><a href="/docs/choosing-a-source/"><span class="card-symbol" aria-hidden="true">↗</span><strong>I have a website URL</strong><p>Define one collection and the fields your application needs.</p><span class="card-link">Choose a source →</span></a><a href="/docs/quickstart/"><span class="card-symbol" aria-hidden="true">↗</span><strong>I have a saved API</strong><p>Use its connection details to request and verify your first records.</p><span class="card-link">Make a request →</span></a><a href="/docs/migration-guide/"><span class="card-symbol" aria-hidden="true">↗</span><strong>I'm moving an existing pipeline</strong><p>Compare the output, map your fields, and switch collection over.</p><span class="card-link">Plan your migration →</span></a><a href="/docs/production-checklist/"><span class="card-symbol" aria-hidden="true">↗</span><strong>I'm preparing for production</strong><p>Check access, limits, storage, monitoring, and recovery.</p><span class="card-link">Review the checklist →</span></a></div>

## Connect your application

Use standard HTTP from your server. Start with a small collection request and inspect its records together with the execution summary.

<div class="language-links"><a href="/docs/quickstart/"><code>$_</code><span>cURL</span><span aria-hidden="true">→</span></a><a href="/docs/javascript/"><code>JS</code><span>JavaScript</span><span aria-hidden="true">→</span></a><a href="/docs/python/"><code>PY</code><span>Python</span><span aria-hidden="true">→</span></a></div>

## Explore the documentation

<div class="docs-topics"><a href="/docs/concepts/"><strong>Understand the model</strong><span>Sources, records, contracts, and versions.</span><span aria-hidden="true">→</span></a><a href="/docs/run-api/"><strong>Work with the API</strong><span>Request fields, credentials, idempotency, and output.</span><span aria-hidden="true">→</span></a><a href="/docs/storing-results/"><strong>Build a data pipeline</strong><span>Storage, deduplication, and scheduled collection.</span><span aria-hidden="true">→</span></a><a href="/docs/monitoring/"><strong>Operate with confidence</strong><span>Run history, partial results, and source changes.</span><span aria-hidden="true">→</span></a><a href="/docs/billing/"><strong>Manage access and usage</strong><span>Prepaid Units, credentials, and security.</span><span aria-hidden="true">→</span></a></div>

## Need a hand?

Use [troubleshooting](/docs/troubleshooting/) to diagnose an issue, check [source status](/status/) for monitored coverage, or [contact support](/docs/support/) with your source and run reference.
