Discover/Peopleperhour API
live

Peopleperhour APIpeopleperhour.com

Browse thousands of freelance job postings on PeoplePerHour by category and keyword, then dive into detailed information about specific opportunities that match your skills. Search and sort through listings to quickly find your next project without leaving one platform.

This API takes change requests — .
Endpoint health
monitored
get_job
list_jobs
Checks pendingself-healing
Endpoints
2
Updated
2h ago
This call costs2 credits / call— charged only on success
Try it
1-based result page number; 20 jobs per page.
Ordering of results as offered by the site's sort dropdown.
Free-text keyword search over job postings (e.g. 'React Native'). Words are matched as the site's own search does; omitted = no keyword filter.
Job category or sub-category code from the site's category picker. Omitted = all categories.
api.parse.bot/scraper/0fe6f91d-921f-48a4-854b-3dd214680064/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/0fe6f91d-921f-48a4-854b-3dd214680064/list_jobs?sort=latest&category=technology-programming' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Returns one page (20 job cards) of public freelance job postings from PeoplePerHour's job board, optionally restricted to a category, filtered by a keyword search and ordered by a sort option (default: latest first). Each record is one job card as shown on the listing page: title, snippet description, displayed price (fixed budget such as $67 or hourly such as $50/hr), buyer name/profile link, relative posting age, proposal count, location label, expiry label when the site shows one, and promotional tags (e.g. 'opportunity', 'urgent'). One round trip per call. Pagination is caller-controlled via `page` (1-based; omitted = page 1); `total` and `last_page` come from the site, `has_more` is derived from total and the 20-per-page size. A keyword with no matches returns an empty `jobs` array with total 0. Each job's `job_url` can be passed unchanged to get_job.

Input
ParamTypeDescription
pageinteger1-based result page number; 20 jobs per page.
sortstringOrdering of results as offered by the site's sort dropdown.
querystringFree-text keyword search over job postings (e.g. 'React Native'). Words are matched as the site's own search does; omitted = no keyword filter.
categorystringJob category or sub-category code from the site's category picker. Omitted = all categories.
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job cards; each has job_id (numeric string), title, job_url (input for get_job), description (snippet text), price (display string, fixed or /hr), buyer_name, buyer_url, posted (relative age text), proposals (integer or null), location (label such as Remote, or null), expires (label when shown, else null), tags (array of promo labels)",
    "page": "integer page returned",
    "total": "integer total number of matching jobs reported by the site",
    "has_more": "boolean, true when further pages exist",
    "per_page": "integer page size (20)",
    "last_page": "integer highest page number linked from this page"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "tags": [],
          "price": "$67",
          "title": "Squarespace editor freeze + navigation flash",
          "job_id": "4519410",
          "posted": "an hour ago",
          "expires": null,
          "job_url": "https://www.peopleperhour.com/freelance-jobs/technology-programming/programming-coding/squarespace-editor-freeze-navigation-flash-4519410",
          "location": "Remote",
          "buyer_url": "https://www.peopleperhour.com/freelancer/peter-xxxx",
          "proposals": 21,
          "buyer_name": "Peter A.",
          "description": "Issue: The Squarespace page editor freezes/becomes unresponsive when editing site pages..."
        }
      ],
      "page": 1,
      "total": 142,
      "has_more": true,
      "per_page": 20,
      "last_page": 8
    },
    "status": "success"
  }
}

About the Peopleperhour API

The Peopleperhour API on Parse exposes 2 endpoints for the publicly available data on peopleperhour.com. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.