Scrapely APIscrapely.me ↗
Access Scrapely's pricing plans, 86-platform catalog, and product feature definitions via 3 structured endpoints. JSON responses with full entitlements data.
What is the Scrapely API?
The Scrapely.me API exposes 3 endpoints covering the platform's self-serve pricing plans, its catalog of 86 searchable platforms, and the product features advertised on the Scrapely home page. The list_platforms endpoint returns each platform's stable platform_id, display name, primary domain, catalog group, and access tier. The list_pricing_plans endpoint delivers a full entitlements comparison table keyed by plan name, down to the footnote text.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/11cddd28-849b-40a6-95bc-a74a4bbce930/list_pricing_plans' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns every self-serve pricing plan shown on the pricing page (Free, Starter, Pro, Power, Team, Business at the time of writing) with monthly and annual listed prices in USD, headline highlights, and a per-plan entitlements map taken from the 'Compare entitlements' table. The same table is also returned feature-by-feature under comparison, so callers can read it either by plan or by feature. Numeric table cells are emitted as numbers; textual cells (e.g. 'Yes', '—', 'Queued') are strings. One page fetch; no pagination. Enterprise is not a listed plan and is only mentioned in notes.
No input parameters required.
{
"type": "object",
"fields": {
"intro": "array of introductory paragraphs describing what paid plans buy and billing terms",
"notes": "array of footnote paragraphs under the table (enterprise, coupons, cancellation)",
"plans": "array of plan objects: name, plan_id (lowercased name), tagline, badge (label such as 'Most used paid' or null), monthly_price_usd, annual_price_usd (listed yearly total; null when not shown), annual_savings_vs_monthly_usd (difference vs 12 monthly payments; null for free), highlights (array of bullet strings from the card), cta (button label), entitlements (object keyed by feature name from the comparison table)",
"currency": "ISO currency code of all price fields (read from the page's $ prices)",
"headline": "pricing page headline text",
"comparison": "array of {feature, values} rows from the entitlements table; values is an object keyed by plan name"
},
"sample": {
"data": {
"intro": [
"Free is a working product with a ceiling. Paid plans buy more history, monitors, Scout capacity, AI credits, exports, and seats — not extra networks."
],
"notes": [
"Enterprise is a conversation, not a self-serve checkout. Contact . SSO is not shipping in this version."
],
"plans": [
{
"cta": "Choose Starter",
"name": "Starter",
"badge": null,
"plan_id": "starter",
"tagline": "Solo researchers — more monitors and Scout scans.",
"highlights": [
"120 searches",
"30 day history",
"3 monitors",
"Scout: 2 brand · 5 /day scans",
"20 AI credits",
"No API"
],
"entitlements": {
"AI credits": 20,
"SSO / SAML": "Not in this version",
"API requests": 0,
"History (days)": 30,
"Active monitors": 3,
"Platform catalog": "Full catalog (same on every plan)",
"Results / search": 80,
"Searches / month": 120
},
"annual_price_usd": 180,
"monthly_price_usd": 15,
"annual_savings_vs_monthly_usd": 48
}
],
"currency": "USD",
"headline": "Listed prices, honest limits",
"comparison": [
{
"values": {
"Pro": 500,
"Free": 20,
"Team": 8000,
"Power": 2000,
"Starter": 120,
"Business": 20000
},
"feature": "Searches / month"
}
]
},
"status": "success"
}
}About the Scrapely API
Pricing Plans and Entitlements
list_pricing_plans returns every self-serve plan (Free through Business at time of writing) with monthly_price_usd, a tagline, an optional badge such as "Most used paid", and a comparison array of {feature, values} rows pulled from the entitlements table. The values object is keyed by plan name, so you can diff any two plans programmatically. The response also includes intro paragraphs describing billing terms and notes paragraphs covering enterprise options, coupon behavior, and cancellation policy.
Platform Catalog
list_platforms returns the full catalog of platforms Scrapely's search covers — 86 entries at the time of writing. Each object carries a platform_id (the same identifier accepted by Scrapely's PLATFORM: search operator), name, domain, group, an access field (open, key, locked, or null), and an access_note string where applicable. An optional group query parameter filters results to a single catalog group; the response always includes the full groups array and a total count after filtering.
Product Features
get_product_features maps the home page content into structured fields: a tagline, a summary paragraph, an audiences array of {audience, description} pairs, a capabilities array of named workflow steps (Search, Scout, Inspect, Save, Monitor, Analyze, and others), and a result_record object describing the fields and search operators a result record exposes. The scout object breaks out the Scout feature separately with its own description and bullet points.
The Scrapely API is a managed, monitored endpoint for scrapely.me — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when scrapely.me changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official scrapely.me API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a plan comparison widget using the
comparisonentitlements table fromlist_pricing_plans - Populate a platform selector UI by iterating the
platformsarray fromlist_platformsfiltered bygroup - Validate a user-entered
PLATFORM:search operator value against knownplatform_idslugs - Render a feature overview page by mapping
capabilitiesandaudiencesfromget_product_features - Track pricing changes over time by polling
list_pricing_plansand diffingmonthly_price_usdvalues - Identify which platforms require an API key by filtering
list_platformswhereaccessequalskey - Enumerate all
result_record.fieldsto document what data Scrapely returns per search result
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Scrapely have an official developer API?+
What does the `access` field in `list_platforms` mean?+
access field classifies each platform as open (no special credentials needed), key (requires an API key configured in Scrapely), locked (not currently accessible), or null (unclassified). An access_note string may accompany the value with additional context.Can I retrieve historical pricing data or track plan changes over time?+
list_pricing_plans returns a current snapshot of published prices and entitlements; it does not include historical plan data or change logs. You can fork this API on Parse and revise it to store and diff successive snapshots to build a price history dataset.Does the API return per-platform search result samples or live search output?+
How does the `group` filter work in `list_platforms`?+
group string (case-insensitive) as a query parameter and the response will include only platforms belonging to that catalog group. The response always returns the full groups array regardless of filtering, and the total field reflects the count after the filter is applied.