Changelog
What changed, dated, in the order it happened.
Each platform in its own shape
curl "https://api.scrapefield.com/v1/tiktok/profile?username=nasa&demo=true"Changed
- There is no longer one "profile" and one "post" for every platform. Each platform returns its own objects, named after its own developer API: Google Maps after the Places API, Instagram after the Graph API, TikTok after its Display and Research APIs. LinkedIn, which has none, uses the words on its pages.
- platform_fields is gone: what was in it is now a documented field at the top level.
- Ids are the platform's own: a Google place_id, an Instagram shortcode, a TikTok video id.
- Parameters follow the same words: username on TikTok (was handle), vanity_name on LinkedIn (was public_id and slug), workplace_type on LinkedIn jobs (was remote). The old names are refused with a pointer to the new one.
New
- Google Maps places carry popular times, the rating breakdown, the About tab and whether the listing is claimed. LinkedIn profiles carry experience, education and skills; Instagram posts, the paid-partnership label; TikTok videos, the sound and a play URL.
- Response objects in the docs, every field of every object. Each endpoint page lists its own.
- Every documented key is present on every call, and nothing undocumented ever is: the gateway drops any field that is not on the list.
A dashboard, and signing in without a password
New
- Sign in with a link we email you — there is no password. A session lasts thirty days from its last use, and any of them can be ended from Settings.
- API keys: up to ten active, each named, each limited to the platforms it calls if you like, and each revocable without touching the rest. A key is still shown once.
- Every request, filterable by endpoint, outcome and key; usage by day, endpoint and key; batch jobs with their results; receipts; and an email when your balance falls below a line you set.
Changed
- A key is made on the dashboard after you confirm your address, rather than handed out at signup.
- The credits you get on confirming are credits to try it, once. There is no free tier: when they run out, you buy a pack.
Fixed
- A refunded call in /v1/usage is a row costing 0, with credits_refunded saying what it gave back. It used to read as a negative charge, so summing the ledger came out below what was spent.
- Calls made by a batch job are in the ledger at what they cost the job, so batch spend adds up too.
- Signing up with an address that already had an account made a new key on it. That address is now sent a sign-in link instead.
A new site, and a mark
New
- The site is rebuilt: a ruled page, a warm monochrome palette, and particle fields in place of illustrations.
- The mark — three parallel strokes — in the top bar, the favicon and the hero, where it lights up in spectrum colour under the pointer.
- Integrations, a blog and this changelog.
Improved
- Every code sample in the documentation is syntax-coloured.
- The contact form writes an email to support rather than opening a ticket.
Every page is Markdown, and there is an agent skill
curl https://scrapefield.com/docs/google-maps/places.mdNew
- Add .md to any URL on the site and get the page as Markdown. The documentation is written for a model and generated from the same table the API runs on.
- /skill.md: when to reach for this API, when not to, and the three mistakes an agent makes on its first call. Works as a Claude Skill or a Cursor rule.
Fixed
- llms.txt linked to twenty-two documentation pages as .md files that did not exist. They all exist now.
- llms.txt printed a literal ${brand.keyPrefix} where the key prefix should have been.
Credits only: no plans, and credits never expire
Changed
- There are no plans or tiers. You buy credits in packs — 50,000 for $39 up to 5,000,000 for $1,999 — and spend them on any endpoint.
- Credits never expire, because there is no billing period for them to expire at the end of.
- A cached answer costs the same as a fetched one. You pay for the answer, not for how we produced it; cached responses still say cached: true and carry the original fetched_at.
Fixed
- Thirteen places across the site, the docs, the MCP tool descriptions and the terms still said cache hits were free. They all say what is true now.
Signup with email verification
New
- Free credits are granted when you verify your email, not when you sign up. Your key works immediately; only the credits wait for the click.
- One account per email address. Disposable-email domains are refused.
Improved
- An unverified account that calls the API is told to click the link in the email, instead of being told it has no credits.
Async jobs, signed webhooks and an MCP server
curl -X POST https://api.scrapefield.com/v1/jobs \ -H "Authorization: Bearer $SCRAPEFIELD_KEY" \ -d '{"endpoint":"tiktok/profile","inputs":[{"username":"a"},{"username":"b"}]}'New
- POST /v1/jobs runs up to 10,000 inputs of one endpoint. Credits are reserved up front and every failed input is refunded as it fails.
- Results come back as NDJSON in the order you sent the inputs, one line per input, so a half-failed run is still a usable file.
- Webhooks on completion, signed with HMAC-SHA256 over the timestamp and body, and retried.
- An MCP server with every endpoint as a tool. Without a key it answers in demo mode, so an agent can try it before anyone signs up.
Eighteen endpoints, one schema
curl "https://api.scrapefield.com/v1/google-maps/places?query=coffee+in+Brooklyn&demo=true"New
- Eighteen endpoints across Google Maps, LinkedIn, Instagram and TikTok, every one a GET with query parameters.
- One response shape on every surface. Platform-specific extras live in platform_fields and are never required.
- A published credit cost per endpoint, in the docs, the OpenAPI spec and every response.
- A usage ledger: one row per call, and a failed call reversed as a row of its own.
- Add demo=true to any endpoint to try it with no key and no account.