Framer Studios Directory Scraper
Pricing
from $5.00 / 1,000 results
Framer Studios Directory Scraper
Extract public Framer Pro Studio directory metadata. No contact data, emails, phone numbers, social links, or external crawling.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
LogFabric
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
A conservative scraper for public Framer Pro Studio directory metadata.
This Actor reads the public Framer Community Experts page and extracts metadata for Pro Studio (agency/studio-type) profiles only. It is not a contact scraper and not a lead-enrichment tool.
What this Actor does
- Fetches the single public listing page
https://www.framer.com/community/members/experts/with CheerioCrawler (no browser automation needed — the page is server-rendered). - Identifies each profile card and reads its visible directory label:
Pro StudioorPro Expert. - Outputs Pro Studio profiles only.
Pro Expert(individual freelancer) cards are detected, counted, and skipped — never written to the dataset. - Parses profile name, country, and starting price directly from the card's own visible text — no detail pages are visited.
- Writes a
RUN_SUMMARYto the default key-value store.
What this Actor deliberately does NOT do
- No pagination, and no query-parameter URLs of any kind (Framer's
robots.txtdisallows?budget=,?region=,?skill=,?language=,?tab=,?sort=,?query=, and?referrer=— this Actor never constructs or requests any of those). - No detail-page visits (the
Pro Studio/Pro Expertlabel, name, country, and starting price are all already visible on the listing card, so detail pages aren't needed for v0). - No clicking or following Hire / Follow links.
- No crawling of any external website (a studio's own portfolio site, if linked, is never visited).
- No browser automation (Playwright) — plain CheerioCrawler only.
- No proxy by default.
It also never extracts, stores, or infers:
- email addresses
- phone numbers
- LinkedIn or other social links
- Hire URLs or Follow URLs
- the card's free-text description (excluded entirely from v0 — some descriptions reference brand/client names or self-disclosed location detail that's outside the approved field list, so it's simply not collected, full stop)
⚠️ Known v0 limitation — read before running
This v0 extracts only the Pro Studio cards visible on the single public
Framer Community Experts listing page. It does not paginate, and the
result count may be small (a recent verified run found 12 total
profile cards on the page, of which 3 were Pro Studio — the rest were
individual Pro Expert freelancers, which are intentionally excluded).
This is a deliberate v0 scope decision, not a bug: Framer's listing page showed no safe, robots.txt-compliant pagination mechanism during preflight, so rather than guess at an undocumented API or risk crawling disallowed query-parameter URLs, v0 simply reads the one page that's confirmed safe to fetch. If Framer's directory grows or exposes a documented pagination path in the future, that would be a v1 scope expansion — not assumed here.
Output limits and cost control
This Actor supports maxItems to limit the number of dataset records produced in a run.
The Actor also respects Apify's paid dataset item limit when it is provided by the platform. The effective output limit is the minimum of:
maxItems- Apify's paid dataset item limit, if present
- the Actor's internal hard cap
This helps keep runs predictable and prevents the Actor from producing more paid dataset items than intended.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
maxItems | integer | 20 | Capped at 50. Since v0 has no pagination, actual output is bounded by however many Pro Studio cards are on the single listing page — this cap is a ceiling, not a target. |
debug | boolean | false | Verbose logging, including per-card parsing detail (raw text, detected type, name/country split, starting price) for the first 5 cards seen. |
See .actor/input_schema.json.
Output
One dataset record per Pro Studio profile:
profileName, profileUrl, profileType, country, startingAt,sourceName, sourceUrl, retrievedAt, found
profileType will always be "Pro Studio" in v0 output (the allowlist
that gates what gets written is currently a single-entry set; see the
STUDIO_TYPE_ALLOWLIST comment in main.js if a future Framer label
change needs evaluating before being added).
See sample_output.json for real field values, including verified
profileUrl values, from an actual Apify Cloud run.
RUN_SUMMARY
Written to the default key-value store at the end of every run:
totalItems, requestedMaxItems, sourceUrl, cardsSeen, studiosOutput,skippedNonStudio, failedPages, warnings, retrievedAt
See storage/key_value_stores/default/RUN_SUMMARY.json for an example
from a verified Apify Cloud run (12 cards seen, 3 Pro Studio output, 9
Pro Expert skipped, 0 failures, 0 warnings).
A non-empty warnings array can include per-card notices such as "No
country suffix matched" — this happens when a profile's country isn't in
the built-in country-name allowlist used to split the glued
"NameCountry" text. It does not fail the run; in that case profileName
falls back to the full cleaned text segment and country is null.
Compatibility notes
- Requests are sent with standard browser-like headers (
User-Agent,Accept,Accept-Language,Referer) — a conservative, non-evasive fix applied after an initial test run. No proxy or fingerprint evasion is used. - Concurrency is capped low (2) and
maxRequestsPerCrawlis hard-set to1, since v0 is single-page by design — this isn't just a polite default, it's a structural guarantee against accidental pagination.
Pricing
Intended for Pay Per Result pricing on Apify Store, set conservatively for v0 given the small, single-page result count. No pricing logic is hard-coded in the Actor itself, and no revenue or earnings outcome is implied or guaranteed by this listing.