American Staffing APIamericanstaffing.net ↗
Access 11,000+ ASA member staffing firm listings. Search by keyword, state, employment type, and job category. Returns addresses, phone numbers, and websites.
What is the American Staffing API?
The American Staffing Association Member Directory API provides structured access to over 11,000 staffing firm listings across 3 endpoints. The get_directory_page endpoint lets you filter by state, job category, and employment type, returning paginated company records with contact details. get_company_details retrieves the full profile for any individual firm, including street address, phone, website, job fields, and services provided.
curl -X GET 'https://api.parse.bot/scraper/9fba72f2-55d8-410f-9549-401b9ee797fc/get_directory_page?page=0&query=staffing&state=California&job_field=Accounting%2FFinance&employment_option=Direct+Hire' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace americanstaffing-net-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ASA Member Directory SDK — search, filter, and drill into staffing companies."""
from parse_apis.asa_member_directory_api import ASADirectory, JobField, EmploymentOption, CompanyNotFound
client = ASADirectory()
# Search for engineering staffing companies in Texas
for company in client.companies.search(state="Texas", job_field=JobField.ENGINEERING, limit=3):
print(company.name, company.city, company.services_provided)
# List all companies (unfiltered) and take the first one
first = client.companies.list(limit=1).first()
if first:
print(first.name, first.state, first.job_fields)
# Drill into full details from a summary
if first:
detail = first.details()
print(detail.name, detail.phone, detail.address, detail.website)
# Direct get by URL
try:
full = client.companies.get(url="https://americanstaffing.net/members-directory/aerotek/")
print(full.name, full.phone, full.city, full.state)
except CompanyNotFound as exc:
print(f"Company not found: {exc}")
# Filter by employment option
for company in client.companies.search(employment_option=EmploymentOption.DIRECT_HIRE, limit=3):
print(company.name, company.city, company.services_provided)
print("exercised: companies.search / companies.list / companies.get / summary.details")
Search for staffing companies in the ASA Member Directory with various filters. Returns a page of companies with basic summary information (name, location, services, job fields). Results are paginated with 20 items per page. Combine filters for narrower results. Use get_company_details on a returned company URL to retrieve full contact info (phone, address, website).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (0-indexed) |
| query | string | Keyword search across company name, city, state, and other indexed text |
| state | string | Filter by US state name (e.g., 'Texas', 'California', 'New York') |
| job_field | string | Filter by job category |
| employment_option | string | Filter by employment type |
{
"type": "object",
"fields": {
"page": "integer, current page number (0-indexed)",
"total": "integer, total number of matching companies",
"nbPages": "integer, total number of pages available",
"companies": "array of company summary objects with keys: name, url, website, address, city, state, zip, phone, services_provided, job_fields"
},
"sample": {
"data": {
"page": 0,
"total": 932,
"nbPages": 47,
"companies": [
{
"url": "https://americanstaffing.net/members-directory/emmerick-group-llc-001ub00000ntdbsia0/",
"zip": null,
"city": "Austin",
"name": "Emmerick Group LLC",
"phone": null,
"state": "Texas",
"address": null,
"website": null,
"job_fields": [
"Accounting/Finance",
"Engineering",
"Industrial",
"Information Technology",
"Office Clerical",
"Sales and Marketing",
"Other"
],
"services_provided": [
"Direct Hire",
"Recruitment Process Outsourcing",
"Long-Term and Contract Help",
"Temporary Help"
]
}
]
},
"status": "success"
}
}About the American Staffing API
Searching the Directory
The get_directory_page endpoint accepts five optional parameters: page (0-indexed), query for keyword search across name and location, state for filtering by US state name, job_field for categories such as 'Accounting/Finance', 'Health Care', or 'Engineering', and employment_option for types like 'Direct Hire', 'Temporary Help', or 'Temporary to Hire'. The response includes total, nbPages, and a companies array where each object carries name, url, address, city, state, zip, phone, website, services_provided, and job_fields.
Company Detail Records
The get_company_details endpoint accepts a single required url parameter — the ASA directory page URL for a specific company, typically obtained from a get_directory_page result. It returns the full contact record for that firm: name, address, city, state (two-letter abbreviation), zip, phone, website, job_fields (array of categories the firm serves), and services_provided (array of staffing service types). Fields may be null when not listed on the source profile.
Full Directory Pagination
The get_all_companies endpoint is equivalent to get_directory_page with no filters applied. It accepts only page and returns the same response shape. Iterating through all nbPages pages gives the complete directory of over 11,000 member firms. This is the straightforward path when you need a full export without narrowing by category or geography.
The American Staffing API is a managed, monitored endpoint for americanstaffing.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when americanstaffing.net 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 americanstaffing.net 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 searchable database of US staffing firms filtered by state and job category using
get_directory_page - Enrich a CRM with verified phone numbers and website URLs for staffing companies via
get_company_details - Identify all staffing firms offering 'Temporary Help' in a target market using the
employment_optionfilter - Map the geographic distribution of ASA member firms by iterating
get_all_companiesand aggregating bystateandcity - Generate outreach lists segmented by
job_fieldssuch as 'Health Care' or 'Engineering' for industry-targeted campaigns - Monitor which staffing firms serve multiple
services_providedcategories to identify full-service agencies
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does americanstaffing.net have an official developer API?+
What is the difference between `get_directory_page` and `get_all_companies`?+
get_all_companies accepts only a page parameter and returns all directory listings with no filtering. get_directory_page exposes the same response shape but adds query, state, job_field, and employment_option filters. Both return the same companies array structure and pagination fields (total, nbPages, page).Are there any fields that `get_directory_page` returns that `get_company_details` does not, or vice versa?+
get_company_details is intended to return the most complete record for a single firm and is the reliable source for phone, website, job_fields, and services_provided — fields that may be incomplete in directory listing results. The state field in get_company_details returns a two-letter abbreviation, whereas directory results include the full state name.Does the API include individual contact names, recruiter profiles, or email addresses for staffing firm staff?+
Is coverage limited to the United States?+
state filter accepts US state names, and address fields reflect US locations. Non-US members are not a documented part of the directory, so international coverage is not expected from these endpoints.