Framer Studios Directory Scraper avatar

Framer Studios Directory Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Framer Studios Directory Scraper

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

LogFabric

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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 Studio or Pro 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_SUMMARY to 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.txt disallows ?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 Expert label, 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

FieldTypeDefaultNotes
maxItemsinteger20Capped 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.
debugbooleanfalseVerbose 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 maxRequestsPerCrawl is hard-set to 1, 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.