# EPFO Establishment Search API

Find an Indian establishment in the EPFO register by name. Returns up to ten matches per name with the establishment id, registered name, address and EPFO office — the lookup step before pulling a full record by id.

**Pricing:** $0.05 per establishment

**Endpoint:** `POST /v1/data/pf-info/listing/run`

**Auth:** `Authorization: Bearer mk_live_...`

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `names` | array | Yes | One or more establishment or company names to search the EPFO register for, e.g. INFOSYS. Each name returns up to ten matching establishments, one row each. |
| `maxResults` | integer | No | Stop after this many matches have been returned. Each match costs a row, so this caps the bill as well as the output. 0 or omitted means every match found, up to ten per name. |

## Example

`?wait=true` holds the request open until the run finishes (up to 60s) and returns the rows inline — one request, no polling.

```bash
curl -X POST "https://api.mindcase.co/v1/data/pf-info/listing/run?wait=true" \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{"names":["..."]}}'
```

```python
import requests

resp = requests.post(
    "https://api.mindcase.co/v1/data/pf-info/listing/run",
    params={"wait": "true"},
    headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
    json={"params": {
    "names": [
        "..."
    ]
}},
)
rows = resp.json()["data"]
```

## Longer runs

If the run is still going at the 60s ceiling you get back `{ job_id, status: "running" }` instead of rows (same if the result is over 100 rows — those come back `truncated`). Poll with that `job_id`:

```bash
# 1) check status
curl https://api.mindcase.co/v1/jobs/JOB_ID \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"

# 2) when status == completed, fetch the rows
curl https://api.mindcase.co/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"
```

Full API reference (auth, jobs, balance, SDKs, MCP): https://mindcase.co/skills.md

## Response columns

| Field | Display name | Type |
|-------|--------------|------|
| `establishmentId` | Establishment ID | text |
| `establishmentName` | Establishment Name | text |
| `address` | Address | text |
| `officeName` | Office Name | text |
| `scrapedAt` | Scraped At | date |
