# Ethiojobs — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and explore job listings across Ethiopian companies with detailed job information, categories, locations, and industries. Discover company profiles, view their open positions, and find similar job opportunities tailored to your preferences.

**Category:** Jobs | **Website:** [ethiojobs.net/](https://ethiojobs.net/) | **Docs:** [parse.bot/marketplace/a9d190ac-9b80-4c79-acc6-0db60ae699be/ethiojobs-net-api](https://parse.bot/marketplace/a9d190ac-9b80-4c79-acc6-0db60ae699be/ethiojobs-net-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get company detail

Retrieve full details for a specific company including description, industry, locations, active jobs list, and contact information. Returns the unwrapped company object directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company_id` | string | Yes | Encrypted company ID (from list_companies or search_jobs results). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/get-company-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"company_id":"<string>"}'
```

### Get company jobs

Retrieve all active jobs for a specific company. Returns the company name, list of active job objects, and total count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company_id` | string | Yes | Encrypted company ID (from list_companies or search_jobs results). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/get-company-jobs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"company_id":"<string>"}'
```

### Get job detail

Retrieve full details for a specific job listing including description, requirements, how to apply, company info, skills, and career level. Returns the unwrapped job object directly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Encrypted job ID (from search_jobs results items[*].id). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/get-job-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"job_id":"<string>"}'
```

### Get similar jobs

Retrieve jobs in the same category as a given job. Fetches the job's category first, then returns other jobs in that category. Useful for discovering related opportunities.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Encrypted job ID (from search_jobs results items[*].id). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/get-similar-jobs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"job_id":"<string>"}'
```

### List categories

List all available job categories on EthioJobs. Each category has an encrypted ID and name that can be used as the category_id filter in search_jobs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/list-categories \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List companies

Retrieve a paginated list of companies registered on EthioJobs. Returns company profiles including industry, active job count, and contact info. Can be filtered by featured status.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `featured` | string | No | Filter by featured companies: 'true' or 'false'. |
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/list-companies \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"featured":"<string>","page":"<integer>"}'
```

### List industries

List all available company industries grouped by sector. Each industry has an encrypted ID, name, and parent sector object.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/list-industries \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List locations

List all available locations/regions in Ethiopia. Returns state IDs that can be used as the state_id filter in search_jobs.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/list-locations \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Search jobs

Full-text search over Ethiopian job listings with optional filters by category, location, career level, employment type, and featured status. Paginates via page number. Returns job summaries including title, company, location, categories, and publication/expiry dates.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | No | Filter by category ID (encrypted ID from list_categories). |
| `featured` | string | No | Filter by featured status: 'true' or 'false'. |
| `level_id` | string | No | Filter by career level ID (encrypted ID). |
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number for pagination. |
| `query` | string | No | Search keyword to match against job titles and descriptions. |
| `state_id` | string | No | Filter by state/location ID (numeric ID from list_locations). |
| `type_id` | string | No | Filter by employment type ID (encrypted ID). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/ethiojobs/search-jobs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","featured":"<string>","level_id":"<string>","limit":"<integer>","page":"<integer>","query":"<string>","state_id":"<string>","type_id":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.