People · Jobs · Companies

Point your agent
at the job market.

900 million profiles, 90 million job postings with 10 million live on any given day, and 30 million companies. Ask your agent in plain English; it does the rest.

Set it up in the tool you already use

npx skills add MetixAI-Official/metix-skills

Four skills that teach any assistant the endpoints, the field vocabulary, and the two-step shape. They work in any agent, with MCP or without it. All four skills

Free plan includes 100 Credits · No card

900M
profiles
90M
job postings10M active daily
30M
companies

The data

Search is cheap enough to be careless with.

Every twenty-five results cost one Credit, and a search that finds nothing is not charged at all, so a thousand people come back for forty Credits and a query you are still tuning costs you nothing 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": "active_title", "match": "machine learning engineer"},
  {"field": "city", "eq": "San Francisco"},
  {"field": "is_working", "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 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 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

Ask in natural language, or send a Query Spec tree. Either way you get back encrypted string ids and a cursor.

POST /v1/people-search
{"text": "ML engineers in 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": ["PavstrIWX_ZuAc2AOAZXHA"]}

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
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.

Pricing

Plans change your allowance, not your rates.

A search costs one 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 Credits, one time, valid 30 days

2,500 searches or 500 records

Go

$9/ mo

300 Credits per month

7,500 searches or 1,500 records

Plus

$19/ mo

1,000 Credits per month

25,000 searches or 5,000 records

Pro

$59/ mo

5,000 Credits per month

125,000 searches or 25,000 records

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 enrichment is announced and not open. It is not callable, not billable, and no rate for it is published until it ships.

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 Credits.

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