900M profiles90M jobs30M companies

Point your agent
at the job market.

The data layer for the whole job market. Connect it to your agent, ask for what you need, and it does the rest.

100 free API Credits No card required

Works with
Any agent

Run in your terminal. Works in any agent.Skills setup guide

The data

Search is cheap enough to be careless with.

Every twenty-five results cost one API Credit, so a thousand people come back for forty API Credits. A Query Spec search that finds nothing is not charged at all, and neither is one refused for a bad field, so a tree you are still tuning is cheap to get wrong. Records are where you spend, at about a quarter of a cent each on Pro. All three datasets take the same query tree, so what you learn on people works unchanged on jobs and companies.

Natural language
POST /v1/people-search
Query Spec
POST /v1/people/query
Records
POST /entity/v1/profiles/detail-by-id
Id key
profile_ids
Query Spec
{"where": {"all": [
  {"field": "current_title", "match": "machine learning engineer"},
  {"field": "location.city", "eq": "San Francisco"},
  {"field": "is_employed", "eq": true}
]}, "size": 25}
Full API reference

Where you work

It already speaks to your tools.

The MCP surface is the REST surface and nothing more, under the same key, the same limits and the same API Credit rules. The strip at the top of this page registers it in one line. These are the two endpoints behind that line.

Endpoints
# Streamable HTTP, MCP 2025-03-26
https://mira-api.metix.ai/mcp

# SSE, MCP 2024-11-05, legacy
https://mira-api.metix.ai/sse

# Same key, same limits, same API Credit rules as REST.

Integration

From nothing to records in three calls.

01

Get a key

Sign up, open API keys, create one. Keys begin with metix_ and the key status route costs nothing to call.

export METIX_KEY="metix_xxxxxxxxxxxx"

# Free to call, tells you scopes and quota
GET /auth/key/status

02

Search

Send a Query Spec tree when you can name the fields, or describe who you want in a sentence, which adds a 5 API Credit base. Either way you get back encrypted string ids, never records.

POST /v1/people/query
{"where": {"all": [
  {"field": "current_title", "match": "machine learning engineer"},
  {"field": "location.city", "eq": "San Francisco"}
]}, "size": 25}

03

Read the records

Send the ids to the detail route for the same dataset, up to 100 per call. Name the fields you want with _source, or omit it and take the default set.

POST /entity/v1/profiles/detail-by-id
{"profile_ids": [ ...up to 100 ids from step 02 ]}

How it behaves

The limits are published, not discovered.

2
calls to a record
10,000
ids per search page
100
ids per detail call
0
API Credits for a refused query

A query is translated before anything is charged, so a request refused for an unknown field or a malformed tree costs nothing. Validation failures, timeouts, upstream 5xx responses and not_found rows are not charged either.

Rate limits, page sizes, batch ceilings and the one case where paging can miss a record are all written down before you meet them. Every response arrives in the same envelope, so your error path is the same code as your success path.

Casebook

Real questions, answered on this API, with the bill attached.

All cases
  1. Use case · Companies

    7,176

    US software companies with 50 to 500 staff

    Build a target account list by industry, size and growth

    9 API Credits to reproduce

  2. Card · Jobs

    1,148

    open data center postings in Texas, the most of any state

    Texas, not Virginia, has the most data center job postings

    68 API Credits to reproduce

  3. Use case · Jobs

    14

    open data engineer postings at Databricks

    Find which of your accounts are hiring for a role

    18 API Credits to reproduce

Pricing

Plans change your allowance, not your rates.

A search costs one API Credit per twenty-five results and a record costs one per five, on every plan. What a bigger plan buys is a bigger monthly allowance, so moving up changes your budget and never your code.

Free

$0/ mo

100 API Credits, one time, valid 30 days

2,500 search results or 500 records

Go

$9/ mo

300 API Credits per month

7,500 search results or 1,500 records

Plus

$19/ mo

1,000 API Credits per month

25,000 search results or 5,000 records

Pro

$59/ mo

5,000 API Credits per month

125,000 search results or 25,000 records

Enterprise

Custom

Volume pricing, invoiced billing, higher rate limits and a data agreement for teams running the Platform at scale.

Contact sales
API Credits, buckets and settlement

What a call debits

Query Spec search
ceil(returned ids / 25)
Natural-language people search
5 + ceil(returned ids / 25)
Detail by id
ceil(found records / 5)
Contact unlock
8 personal email · 3 work email · 15 phone
Contact probe
ceil(people answered / 25)

A contact unlock is charged per value returned, at the same rate on every paid plan, and the same person and kind is charged once in 30 days. A kind we cannot find costs nothing.

Where the data comes from

Nothing leaves the index until you name it.

A search hands back encrypted identifiers and nothing else. No name, no employer, no posting text crosses the wire until you ask for a specific id, which is why the record you are charged for and the record you actually read are always the same one.

Name the fields you want with _source, or omit it and take the default set. Either way the response holds exactly what you asked for: a field this API does not publish is refused outright rather than dropped from the payload, so nothing you build against can silently stop arriving.

Start with 100 API Credits.

Which is 2,500 search results or 500 records, free, on a key you create yourself in about a minute. No card, and no sales call.