# Quick start (/docs/api/quickstart)



Create an API key, drop it in an env var, and make your first call. `find-email` kicks off an async search and returns a `searchId` you poll for results.

Get an API key [#get-an-api-key]

Open the [API Keys dashboard](/dashboard/api-keys), click **New key**, give it a name, and copy the full `dm_live_…` key. You will only see the full key once.

First call [#first-call]

curl [#curl]

```bash
curl -X POST https://api.decisionmaker.email/api/v1/find-email \
  -H "Authorization: Bearer dm_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"acme.com","role":"CEO"}'
```

Response:

```json
{ "searchId": "k1709..." }
```

Node [#node]

```ts
const res = await fetch(
  "https://api.decisionmaker.email/api/v1/find-email",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.DME_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ url: "acme.com", role: "CEO" }),
  },
);
const { searchId } = await res.json();
```

Python [#python]

```python
import os, requests

res = requests.post(
    "https://api.decisionmaker.email/api/v1/find-email",
    headers={
        "Authorization": f"Bearer {os.environ['DME_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={"url": "acme.com", "role": "CEO"},
)
search_id = res.json()["searchId"]
```

Poll for results [#poll-for-results]

```bash
curl -X POST https://api.decisionmaker.email/api/v1/search-status \
  -H "Authorization: Bearer dm_live_..." \
  -H "Content-Type: application/json" \
  -d '{"searchId":"k1709..."}'
```

Keep polling every few seconds until `status` is `completed` or `failed`. A typical search takes under 30 seconds.

Prefer push over poll? See [Webhooks](/docs/api/webhooks).
