01Create an account
Head to app.hypedata.io/signup and sign up with email, Google, or GitHub. New workspaces ship with 1,000 free credits — enough to scrape ~1,000 typical pages or ~250 JavaScript-rendered ones. No credit card is required until you exceed the free tier.
Workspaces are billable units. You can create as many projects as you like inside a workspace, each with its own API key and metered credit pool.
If you're evaluating Hypedata for a company, sign up with your work email and invite teammates from Settings → Members — that way usage rolls up cleanly to one bill.
02Get your API key
Open app.hypedata.io/keys and click Create key. Pick the project, give the key a memorable label (local-dev, prod-eu, nightly-job), and copy the secret. You'll only see it once.
Keys look like this:
hd_live_8K2nB7q4XwY1pVzR9tL6mDfC0sJaE3gH
The hd_live_ prefix marks a production key billed against real credits. Test keys (hd_test_…) hit the same API but charge nothing and return synthetic data — useful for CI.
Store the key in an environment variable (HYPEDATA_API_KEY) or a secret manager. Hypedata scans GitHub, GitLab, and npm for leaked keys every 15 minutes and auto-revokes any it finds — but the safest leak is the one that never happened.
03Your first scrape
Open a terminal and run this. The url parameter is the page you want fetched; everything else is sensible defaults.
curl https://api.hypedata.io/v1/scrape \ -H "Authorization: Bearer $HYPEDATA_API_KEY" \ -G --data-urlencode "url=https://example.com"
GET /v1/scrape?url=https%3A%2F%2Fexample.com HTTP/1.1 Host: api.hypedata.io Authorization: Bearer hd_live_… Accept: application/json
You'll get back a JSON envelope:
{
"status": "ok",
"url": "https://example.com",
"final_url": "https://example.com/",
"http_status": 200,
"html": "<!doctype html><html>…</html>",
"meta": {
"latency_ms": 184,
"proxy": "residential.us-east",
"credits_used": 1,
"render": false
}
}That's it. The page came back through a residential US proxy, no JavaScript rendering, one credit charged.
04Install an SDK
Pick your language. All SDKs read HYPEDATA_API_KEY from the environment by default.
# npm npm install @hypedata/sdk # pnpm pnpm add @hypedata/sdk # bun bun add @hypedata/sdk
pip install hypedata
# or
uv add hypedata
poetry add hypedata
go get hypedata.io/sdk@latest
gem install hypedata # Gemfile gem "hypedata", "~> 2.3"
composer require hypedata/sdk
cargo add hypedata
05Same call, real SDK
The same scrape, idiomatic in your language. Error handling, retries, and types are already wired up.
import { Hypedata } from "@hypedata/sdk"; const hd = new Hypedata(); // reads HYPEDATA_API_KEY const page = await hd.scrape({ url: "https://example.com", }); console.log(page.html.slice(0, 200));
from hypedata import Hypedata hd = Hypedata() # reads HYPEDATA_API_KEY page = hd.scrape(url="https://example.com") print(page.html[:200])
package main import ( "context" "fmt" "hypedata.io/sdk" ) func main() { hd := hypedata.New() // reads HYPEDATA_API_KEY page, err := hd.Scrape(context.Background(), &hypedata.ScrapeReq{ URL: "https://example.com", }) if err != nil { panic(err) } fmt.Println(page.HTML[:200]) }
require "hypedata" hd = Hypedata::Client.new # reads HYPEDATA_API_KEY page = hd.scrape(url: "https://example.com") puts page.html[0, 200]
06Get structured JSON, not HTML
Raw HTML is rarely what you actually want. Add an extract schema and Hypedata's AI parser returns validated JSON instead. No selectors. No XPath. No maintenance when the site redesigns.
const product = await hd.scrape({ url: "https://shop.example.com/p/alpha-coat", render: true, extract: { name: "string · product name", price: "number · in the listed currency", currency: "string · ISO 4217", in_stock: "boolean", images: "array of absolute URLs", }, }); console.log(product.data); // { name: "Alpha Coat", price: 219, currency: "EUR", in_stock: true, images: [...] }
product = hd.scrape( url="https://shop.example.com/p/alpha-coat", render=True, extract={ "name": "string · product name", "price": "number · in the listed currency", "currency": "string · ISO 4217", "in_stock": "boolean", "images": "array of absolute URLs", }, ) print(product.data)
curl https://api.hypedata.io/v1/scrape \ -H "Authorization: Bearer $HYPEDATA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://shop.example.com/p/alpha-coat", "render": true, "extract": { "name": "string · product name", "price": "number · in the listed currency", "currency": "string · ISO 4217", "in_stock": "boolean", "images": "array of absolute URLs" } }'
The response now contains a data field with your typed object, alongside the original html if you still want it (you can opt out with html: false to save bandwidth).
Each AI extraction costs 5 credits in addition to the scrape itself. For high-volume catalogs, cache the schema's output; we automatically reuse the parser's compiled plan within a 24-hour window for the same hostname.
07Go async at scale
Synchronous calls are great up to a few thousand pages per hour. Past that, you'll want to either stream results as they arrive, or submit a batch job and consume the output when it's done.
Stream API · live
Open one Server-Sent Events connection, push URLs in, consume results out of order as each finishes. Best for ~100 – 10,000 URL workloads.
Jobs API · async
POST a list of up to 1,000,000 URLs, receive a webhook (or poll) when the batch completes. Best for full-catalog or nightly-refresh workloads.
Minimal stream client in Node:
import { Hypedata } from "@hypedata/sdk"; const hd = new Hypedata(); const stream = hd.stream({ urls: [ "https://shop.example.com/p/1", "https://shop.example.com/p/2", "https://shop.example.com/p/3", ], render: true, concurrency: 8, }); for await (const event of stream) { if (event.type === "page") { console.log(event.url, event.http_status); } }
See Stream API and Jobs for the full reference.
08What's next
You've scraped a page, parsed it into JSON, and streamed a batch. From here:
- Scrape API reference — every parameter the endpoint accepts.
- AI Parser deep-dive — JSON Schema input, citations, confidence scores.
- Proxy & geotargeting guide — residential, mobile, ASN pinning.
- Error reference — when to retry, when to give up.
- Rate limits — plan-by-plan ceilings.
Email support@hypelabs.llc with the request trace_id from any failed response and we'll dig in. Median first-response time is under four business hours.