> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reverselooker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a single search

> Start a reverse lookup from an email address

## Authentication

<ParamField header="x-api-key" type="string" required>
  Your API key
</ParamField>

## Body

<ParamField body="email" type="string" required>
  The email address to search. Must be a valid email.

  **Example:** `john.doe@company.com`
</ParamField>

<ParamField body="custom" type="any">
  Custom data to associate with this search. Will be returned in the webhook if configured.
</ParamField>

<ParamField body="settings" type="object">
  Optional search configuration.

  <Expandable title="Properties">
    <ParamField body="settings.webhooks" type="string[]">
      List of URLs to notify when the search is complete.
    </ParamField>
  </Expandable>
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.reverselooker.com/reverse-contact/single \
    -H "Content-Type: application/json" \
    -H "x-api-key: your_api_key" \
    -d '{
      "email": "john.doe@company.com"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.reverselooker.com/reverse-contact/single', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'your_api_key'
    },
    body: JSON.stringify({
      email: 'john.doe@company.com'
    })
  });

  const data = await response.json();
  console.log(data.id); // Use this ID to retrieve the result
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.reverselooker.com/reverse-contact/single',
      headers={
          'Content-Type': 'application/json',
          'x-api-key': 'your_api_key'
      },
      json={
          'email': 'john.doe@company.com'
      }
  )

  data = response.json()
  print(data['id'])  # Use this ID to retrieve the result
  ```
</RequestExample>

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "credits_used": 50,
    "message": "Reverse contact search operating"
  }
  ```

  ```json 400 - Invalid email theme={null}
  {
    "error": "Invalid email format"
  }
  ```

  ```json 401 - Unauthorized theme={null}
  {
    "error": "Invalid API key"
  }
  ```

  ```json 422 - Insufficient credits theme={null}
  {
    "error": "Insufficient balance",
    "available": 30,
    "required": 50
  }
  ```
</ResponseExample>

## Response

<ResponseField name="id" type="string" required>
  Unique search identifier. Use it with `GET /reverse-contact/single` to retrieve the result.
</ResponseField>

<ResponseField name="credits_used" type="number" required>
  Number of credits consumed (always 50 for a single search).
</ResponseField>

<ResponseField name="message" type="string" required>
  Confirmation message.
</ResponseField>

## Next step

<Card title="Retrieve the result" icon="magnifying-glass" href="/api-reference/get-search">
  Use the returned ID to get the LinkedIn profile found.
</Card>
