# Google Jobs

Search Google Jobs to retrieve job listings in JSON format.

> **Note:** Currently only supports jobs in North America.

## Endpoint

```
GET /v1/job/search/{query}
```

## Description

The Google Jobs Search endpoint allows you to search for job listings on Google. The query parameter should be a URL-encoded query string containing the position title and optionally the location.

For reference on Google search parameters, check out our [Google Search Operators guide](/docs/guides/search-operators).

## Authentication

All requests require authentication using the `X-Api-Key` header. See the [Authentication guide](/docs/guides/authentication) for more details.

## Path Parameters

### `query` (required)

**Type:** `string`

Position Title and Location (optional). The query should be URL-encoded.

**Examples:**
- `q=nurse+practitioner`
- `q=data+analyst+work+from+home`

## Request Example

### Using cURL

```bash
curl --request GET \
  --url 'https://api.serply.io/v1/job/search/q=nurse+practitioner' \
  --header 'X-Api-Key: YOUR_API_KEY'
```

### Using JavaScript/Node.js

```javascript
const response = await fetch('https://api.serply.io/v1/job/search/q=nurse+practitioner', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
  }
});
const data = await response.json();
console.log(data);
```

### Using Python

```python
import requests

headers = {
    'X-Api-Key': 'YOUR_API_KEY'
}

response = requests.get(
    'https://api.serply.io/v1/job/search/q=nurse+practitioner',
    headers=headers
)
data = response.json()
print(data)
```

## Response

The API returns a JSON object containing an array of job listings.

### Response Structure

```json
{
  "jobs": [
    {
      "position": "Software Engineer",
      "employer": "Company Name",
      "employer_link": "https://example.com/company/company-name",
      "location": "San Francisco, CA",
      "link": "https://example.com/job/123",
      "posted_at": "2026-08-14"
    }
  ]
}
```

### Response Fields

- **`jobs`** (array): An array of job listing objects
  - **`position`** (string | null): The job title/position name
  - **`employer`** (string | null): The name of the employer/company
  - **`employer_link`** (string | null): A link to the employer's profile
  - **`location`** (string | null): The job's listed location
  - **`link`** (string | null): The URL to view/apply for the job
  - **`posted_at`** (string | null): When the listing was posted, if available
- **`error`** (string, only present when no listings were found): Set instead of returning an empty `jobs` array silently

### Example Response

```json
{
  "jobs": [
    {
      "position": "Nurse Practitioner",
      "employer": "Healthcare System",
      "employer_link": "https://example.com/company/healthcare-system",
      "location": "New York, NY",
      "link": "https://www.example.com/jobs/12345",
      "posted_at": "2026-08-13"
    }
  ]
}
```

## Status Codes

- **200 OK** - Successful response
- **404 Not Found** - The requested resource was not found
- **422 Unprocessable Entity** - The request was well-formed but contains semantic errors
- **429 Too Many Requests** - Rate limit exceeded

## Error Responses

See the [Errors guide](/docs/guides/errors) for information on error response formats.
