---
title: "Get Web3 job listings (JSON)"
method: GET
path: "/v1"
---

# Get Web3 job listings (JSON)

`GET /v1`

## Request

- Base URL: `https://web3.career/api`
- URL: `https://web3.career/api/v1`
- Auth: API key in query parameter `token`
- TypeScript: <https://skmtc.dev/bondex/apis/web3-career-jobs-api/docs/v1/get.ts> (a function with typed inputs; its response is checked against the schema)

Fetch the latest Web3 job listings with optional filters for tag, country,
remote status, and result count.

**Response parsing note:** The response body is a JSON array whose elements are
a mix of strings and a nested array of job objects. Extract the jobs by finding
the first array element within the root array.

**Link attribution:** When displaying results, you must link to jobs using
the `apply_url` field with a follow link. See Terms of Use in the API description.

## Query parameters

- `token` string, required
- `tag` 'ai' | 'analyst' | 'backend' | 'bitcoin' | 'blockchain' | 'community-manager' | 'crypto' | 'cryptography' | 'cto' | 'customer-support' | 'dao' | 'data-science' | 'defi' | 'design' | 'developer-relations' | 'devops' | 'discord' | 'economy-designer' | 'entry-level' | 'erc' | 'erc-20' | 'evm' | 'front-end' | 'full-stack' | 'gaming' | 'ganache' | 'golang' | 'hardhat' | 'intern' | 'java' | 'javascript' | 'layer-2' | 'marketing' | 'mobile' | 'moderator' | 'nft' | 'node' | 'non-tech' | 'open-source' | 'openzeppelin' | 'pay-in-crypto' | 'product-manager' | 'project-manager' | 'react' | 'refi' | 'research' | 'ruby' | 'rust' | 'sales' | 'smart-contract' | 'solana' | 'solidity' | 'truffle' | 'web3-py' | 'web3js' | 'zero-knowledge'
- `country` string
- `remote` 'true'
- `limit` integer
- `show_description` 'true' | 'false'

## Response `200`

Successful response. Returns a top-level JSON array containing mixed types.
The actual job listings are in a nested array — find the first element in the
root array that is itself an array.

- union[]: Top-level response array containing mixed types. The structure is typically `[string, string, Job[]]` — two metadata strings followed by the jobs array. **Extract jobs by finding the first element that is itself an array.** In some cases the root array may directly contain job objects (fallback).
  - union
    - string: Metadata string (e.g., status or version identifier)
    - Job[]: The actual array of job listing objects
      - `id` string: Unique job identifier.
      - `title` string: Job title.
      - `company` string: Hiring company name.
      - `location` string: Job location (e.g., "Remote", "New York, US", "Berlin, Germany").
      - `remote` boolean: Whether the position is fully remote.
      - `description` string: Full job description. **May contain raw HTML markup** (`<p>`, `<ul>`, `<li>`, `<strong>`, `<br>`, etc.). Strip HTML tags if you need plain text. Absent when `show_description=false` is set on the request.
      - `tags` string[]: Skill and technology tags associated with the job.
      - `apply_url` string, uri: Application URL with embedded tracking parameters. **This is the primary link you must use when directing users to a job.** Do not append query parameters (utm_source, utm_medium, ref, etc.) — they are already included. Links must use rel="follow" or have no rel attribute. Using rel="nofollow" will result in API access suspension.
      - `url` string, uri: Direct link to the job posting on web3.career (without tracking params). Use `apply_url` for user-facing links.
      - `salary` string: Salary range when disclosed. Many listings omit this field.
      - `postedAt` string: When the job was posted. Format may vary between listings.

## Other responses

- `401`: Unauthorized. The API token is invalid, expired, or missing. Verify the `token` parameter and obtain a new token from [web3.career/web3-jobs-api](https://web3.career/web3-jobs-api) if needed.
- `403`: Forbidden. The token does not have sufficient permissions. Check your account settings at web3.career.
- `429`: Rate limit exceeded. Too many requests in a short period. Implement exponential backoff with jitter and retry after a delay. Recommended: start at 1s, double each attempt, cap at 10s, add +/-20% jitter.
- `500`: Internal server error. The web3.career API is experiencing issues. Retry with exponential backoff. These are typically transient.

---

[API](https://skmtc.dev/bondex/apis/web3-career-jobs-api.md) - [All operations](https://skmtc.dev/bondex/apis/web3-career-jobs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bondex/apis/web3-career-jobs-api/revisions/d5ebf839a90b?raw)
