Casting Networks Role Scraper — Casting Calls
Pricing
from $4.00 / 1,000 casting roles
Casting Networks Role Scraper — Casting Calls
Scrape public Casting Networks casting calls for acting jobs, one row per role: role_name, role_type, gender, age_range, union, rate, locations, submission_due_date and posted_date, plus project_name, project_type and project_synopsis. Filter by city, project type, union and post date. No login.
The Casting Networks Role Scraper extracts public Casting Networks casting calls and auditions, the acting jobs posted for film, TV, commercials, voice-over and more, one row per role: role type, gender, age range, union, rate, cities, submission due date, posted date and the project's synopsis. Filter by city, project type and union; no login.
What you get
One row per casting role. A project with five roles gives five rows, each carrying the same project fields, so a spreadsheet can be sorted and filtered by role without joins. Rows come newest first.
{"role_id": "67475643","role_name": "Barry","role_url": "https://www.castingnetworks.com/talent/project/16060911/role/67475643/","role_type": "Principal","description": "Strong dramatic actor that can head a family and destroy it at the same time.","gender": "Man","age_range": "50 - 79","age_min": 50,"age_max": 79,"rate": "$175 for 1 night + 15 min prvw $125 per film day","union": "Non Union","locations": ["Los Angeles"],"location_region": "CA","location_country": "United States","submission_due_date": "2026-10-03T17:00:00Z","posted_date": "2026-09-25T01:03:43Z","role_status": "active","is_open": true,"project_id": "16060911","project_name": "Infidelity - Mature Actors Dramatic Playground","project_url": "https://www.castingnetworks.com/talent/project/infidelity-mature-actors-dramatic-playground-16060911/","project_type": "Other","project_union": "Non Union","project_pays_up_to": "$300","project_synopsis": "Overview: Various mini stories about the lives and drama of adults over 50.","project_additional_info": null,"project_locations": ["Los Angeles"],"project_published_at": "2026-09-25T01:03:43+00:00","sitemap_lastmod": "2026-09-25","scraped_at": "2026-09-26T12:00:00+00:00","_meta": {"author": "https://apify.com/herus13", "status": "ok", "message": null}}
_meta is run metadata, not scraped data. A target that fails appears as a row with only _meta (status failed, the reason in message); those rows are never charged.
Rows for a project whose Open Call link you supply also carry open_call_url, audition_type, project_about, project_notes, project_rate, the credits (network, studio, production_company, ad_agency, director, writer, producer, executive_producer, photographer, casting_director, casting_company, casting_associate, casting_assistant), work_dates, submission_instruction, request_media_instruction, request_media_types, wardrobe, work_requirement, skills, ethnic_appearance, paid_type, time_zone and sides. On every other row they are empty.
Email addresses and phone numbers that casting directors sometimes type into a description are replaced with [email removed] and [phone removed]. The scraper returns no personal contact fields.
What it costs
One role-result is charged per role row; a row with only _meta is never charged.
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.00005 |
casting role (role-result) | $0.004 |
Input
| Field | Type | Required | Default | What it does |
|---|---|---|---|---|
locations | array | no | — | Only roles in these regions, using the site's own location filter, for example Los Angeles, New York, Southeast, England or Australia. Several values are searched one after another and merged without duplicates. Leave empty for every location. |
project_types | array | no | — | Only roles in these project categories: Commercial, Film, TV, Voice-Over, Print, Other or Vertical Short. Each row still carries the project's exact type, such as Short Film or Television Series. Leave empty for every project type. |
role_types | array | no | — | Only Principal roles, only Background roles, or both. Leave empty for both. |
unions | array | no | — | Only roles whose project is Union, Non-Union, or Other (for example a mixed or unstated union status). Leave empty for every union status. |
posted_since | string | no | — | Only roles posted on or after this date, written as YYYY-MM-DD in UTC, for example 2026-09-20. Leave empty for any posting date. |
only_open | boolean | no | true | Default true: skip roles whose submission due date has already passed. The public billboard keeps some expired roles listed for a while; set false to include them, each marked with is_open false. |
max_roles | integer | no | 100 | How many roles to return, newest first. Default 100. Set 0 to return none. Set -1 for no limit, which reads every matching role on the billboard (about 9,000 with no filters, a few hours). |
only_new | boolean | no | false | Default false: a full run. Set true to skip roles an earlier run with the same filters already returned, unless the role was edited since. The memory is kept in a named key-value store in your account, one per filter combination. |
open_call_urls | array | no | — | Casting Networks Open Call links a casting director has published, such as https://app.castingnetworks.com/public-pages/open-call/NAME/ID. Rows of the same project get its extra details: credits, work dates, submission instructions and sides. Links are read as given; ids are never guessed. Leave empty for none. |
request_delay | integer | no | 0 | Extra seconds to wait between requests. Default 0, which adds no wait at all. |
proxyUrls | array | no | — | Leave empty and the run uses the residential proxy this actor ships with, included in the price of the run. To route the run through your own account instead, add one gateway URL per entry, for example http://user:pass@host:port — works with DataImpulse, Bright Data, Oxylabs, Smartproxy or any provider that issues URLs. When set, only these URLs are used. Use US exits. |
How to run it
- Open the actor and pick any filters, or leave them all empty for the whole billboard.
- Set
max_roles: 100 by default, -1 for every matching role. - Run it and export the dataset as JSON, CSV or Excel.
Principal roles in Los Angeles and New York posted since 20 September, open for submissions:
{"locations": ["Los Angeles", "New York"],"role_types": ["Principal"],"posted_since": "2026-09-20","only_open": true,"max_roles": 500}
A daily run that returns only roles added or edited since the previous one:
{"max_roles": -1,"only_new": true}
Minimal input:
{"max_roles": 20}
Available as the MCP tool herus13--castingnetworks-role-scraper on mcp.apify.com, so an AI agent can call it with the same input.
Use cases
- Talent agencies and managers watch new principal and background roles in their clients' cities and ages every morning, instead of paging through the billboard by hand.
- Casting market research: count roles by project type, union status, city and rate over time to see where work is moving and what productions pay.
- Job boards and newsletters for actors build a daily digest of open calls, filtered by location and union status, linking back to each role page.
- Production scheduling follows which projects are casting now, with their synopsis and cities, to spot shoots coming to a region.
The billboard is read from the site's own public pages, the same ones a visitor sees without logging in. Details that Casting Networks shows only to signed-in members, such as audition instructions, sides and casting staff, are not on those pages; for a project that runs a public Open Call you can add its link to get them.
FAQ
Does it need a Casting Networks account? No. It reads only the public casting billboard and never logs in.
Does it return audition dates, sides or casting contacts? No. Casting Networks shows those only to signed-in members, so they are not on the public pages this actor reads. For a project that publishes a public Open Call, add its link to open_call_urls to get its work dates, submission instructions and sides.
How many roles are there? About 9,000 open roles on a typical day. A run with max_roles set to -1 and no filters reads all of them and takes a few hours; filtered runs and runs with only_new are much shorter.
Why are some expired roles on the site? The public billboard keeps some roles listed after their due date. With only_open on, the default, they are skipped; turn it off to include them, marked is_open: false.
How fresh is the data? The public billboard appears to update once a day, so a role can reach it up to about a day after it was posted for members.
What is only_new? The actor remembers, per filter combination, which roles it already returned. The next run with the same filters returns only roles that are new or were edited since.
Is a proxy included? Yes, a US residential proxy is included in the price of the run. You can paste your own gateway URLs into Your own proxy URLs instead.
Related actors
- Indeed Scraper — job listings from Indeed.
- LinkedIn Jobs Scraper — job postings from LinkedIn.