sieve turns any website into a clean, structured table. Describe what you want in plain language; the scraping agent collects it and delivers CSV/JSON you can download or poll over the API. Get started in a few minutes:
Sign up at scrape.usesieve.com with Google or an email + password (you'll verify your email at first login).
The free plan includes 100 credits per month — enough to try real extractions before you ever talk to us. Paid plans start at $25/month.
In the app, open Settings → API keys and click Generate key. The key (it starts with dc_sk_) is shown once — copy it somewhere safe. Send it on every request:
import requests
BASE_URL = "https://scrape.usesieve.com"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}Describe what you want and (optionally) which pages to visit. The request returns immediately with a session id:
start = requests.post(f"{BASE_URL}/api/scrapes", headers=headers, json={
"instruction": "Extract store name, address, phone, and hours",
"target_urls": ["https://example.com/stores"],
})
start.raise_for_status()
session_id = start.json()["session_id"]Poll the session until status is "done", then read the summary and download the output files:
import time
while True:
result = requests.get(f"{BASE_URL}/api/scrapes/{session_id}", headers=headers).json()
if result["status"] == "done":
break
time.sleep(5)
print(result["summary"])
for f in result["files"]: # each: { name, size, ext, url }
print(f["name"], BASE_URL + f["url"])