WayUp APIwayup.com ↗
Search and retrieve college-focused job and internship listings from WayUp. Filter by category, type, and location. Access full descriptions, qualifications, and company info.
What is the WayUp API?
The WayUp API provides access to job and internship listings from WayUp.com through 3 endpoints. Use search_listings to query listings across categories like computer-science, finance, and marketing with optional location filtering, get_listing_details to retrieve full descriptions, qualifications, employment type, and posting dates for individual listings, and list_categories to enumerate all available category slugs.
curl -X GET 'https://api.parse.bot/scraper/bc950e28-cf10-4ad4-a8e2-9266cd4ddc8f/search_listings?TYPE=entry-level-jobs&type=internships&LIMIT=3&limit=10&CATEGORY=marketing&category=accounting' \ -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 wayup-com-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: WayUp SDK — search internships, drill into details, browse categories."""
from parse_apis.wayup_job_listings_api import WayUp, ListingType, ListingNotFound
client = WayUp()
# List available categories for internships
for cat in client.categories.list(listing_type=ListingType.INTERNSHIPS, limit=5):
print(cat.slug, cat.name)
# Search CS internship listings
listing = client.listings.search(category="computer-science", listing_type=ListingType.INTERNSHIPS, limit=1).first()
if listing:
print(listing.title, listing.company, listing.location)
# Drill into full details via the sub-resource
detail = listing.details.get()
print(detail.title, detail.employment_type, detail.date_posted)
if detail.locations:
loc = detail.locations[0]
print(loc.city, loc.state, loc.country)
print(detail.company.name)
# Typed error handling
try:
bad = client.listings.search(category="finance", listing_type=ListingType.ENTRY_LEVEL_JOBS, limit=1).first()
if bad:
bad_detail = bad.details.get()
print(bad_detail.title)
except ListingNotFound as exc:
print(f"Listing removed: {exc.url}")
print("exercised: categories.list / listings.search / listing.details.get")Search job and internship listings by category, type, and optional location. Returns listing titles, companies, locations, and URLs. Paginates as a single page up to `limit`. Use list_categories to discover all available category slugs.
| Param | Type | Description |
|---|---|---|
| type | string | Listing type. |
| limit | integer | Maximum number of listings to return. |
| category | string | Job category slug (e.g., 'computer-science', 'finance', 'marketing', 'engineering'). Use list_categories endpoint to get all available slugs. |
| location | string | Location slug (e.g., 'new-york-ny', 'san-francisco-ca', 'chicago-il'). Leave empty for all locations. |
{
"type": "object",
"fields": {
"type": "listing type string",
"category": "category slug string",
"listings": "array of listing objects with url, title, company, location, listing_id",
"location": "location slug or 'all'",
"returned": "integer number of listings returned",
"total_items": "integer total available listings"
},
"sample": {
"data": {
"type": "internships",
"category": "computer-science",
"listings": [
{
"url": "https://www.wayup.com/i-j-Forward-Deploy-Engineer-Intern-Cypress-Global-Services-Inc-268933473216746/",
"title": "Forward Deploy Engineer (Intern)",
"company": "Cypress Global Services, Inc",
"location": "Houston, TX",
"listing_id": "268933473216746"
},
{
"url": "https://www.wayup.com/i-j-Business-Intelligence-Intern-Eurofins-USA-BioPharma-Services-605604220868728/",
"title": "Business Intelligence Intern",
"company": "Eurofins USA BioPharma Services",
"location": "Lancaster, PA",
"listing_id": "605604220868728"
},
{
"url": "https://www.wayup.com/i-j-NAMS-2-Intern-Crown-Innovations-Inc-925069914533178/",
"title": "NAMS-2 Intern",
"company": "Crown Innovations, Inc.",
"location": "Mountain View, CA",
"listing_id": "925069914533178"
}
],
"location": "all",
"returned": 3,
"total_items": 55
},
"status": "success"
}
}About the WayUp API
Search and Filter Listings
The search_listings endpoint accepts a category slug (e.g., computer-science, engineering, marketing), an optional type for listing type, an optional location slug (e.g., new-york-ny, san-francisco-ca), and a limit to cap results. It returns an array of listing objects, each containing url, title, company, location, and listing_id, along with total_items so you can gauge how many results exist for a given query. Leave location empty to search across all geographies.
Listing Details
get_listing_details takes the full listing URL returned by search_listings and returns a structured object with title, employment_type (e.g., INTERN, FULL_TIME), date_posted as an ISO 8601 datetime string, locations as an array of objects with city, state, country, and postal_code, a company object with name and logo, badges as an array of tag strings, and both description_html and description_text for flexible rendering. Each call fetches one listing — there is no batch mode.
Category Discovery
list_categories lists all valid category slugs and their display names for a given listing type. Use the returned slug values directly as the category parameter in search_listings. The response includes a total count and the full categories array, making it straightforward to enumerate the full category space before running searches.
The WayUp API is a managed, monitored endpoint for wayup.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when wayup.com 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 wayup.com 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?+
- Aggregate entry-level and internship postings filtered by
categoryslug for a niche job board targeting college students. - Track
date_postedandemployment_typeacross categories to analyze internship hiring trends over time. - Pull
description_textfor NLP pipelines that extract required skills from WayUp job postings. - Populate a campus recruitment tool with location-filtered listings using the
locationslug parameter. - Enumerate all categories via
list_categoriesto build dynamic search filters in a student-facing app. - Monitor new postings by periodically calling
search_listingsand comparinglisting_idvalues against a local store. - Extract
companyname and logo fromget_listing_detailsto build a visual directory of companies recruiting new graduates.
| 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 WayUp have an official developer API?+
What does `get_listing_details` return beyond what `search_listings` provides?+
search_listings returns only title, company, location, url, and listing_id. get_listing_details adds description_html, description_text, employment_type, date_posted as an ISO 8601 string, a structured locations array with city/state/country/postal_code, a company object with a logo URL, and badges — tag strings attached to the listing.Can I retrieve application status or candidate profile data through this API?+
Does pagination work across multiple pages?+
search_listings returns up to limit results in a single response. The total_items field tells you how many listings exist for that query, but the endpoint does not support page offsets or cursor-based pagination. You can fork the API on Parse and revise it to add offset or page-based pagination if your use case requires iterating beyond a single batch.Are salary or compensation details available in the listing data?+
get_listing_details include description text, employment type, location, and company info but do not include a dedicated salary or compensation field. If WayUp surfaces compensation data on individual listing pages, you can fork this API on Parse and revise get_listing_details to capture it.