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

# Send OTP - Sign Up or Log In via API

> Send a one-time password to an email address for programmatic signup or login. Use this endpoint to authenticate with the OutX LinkedIn API without a browser.

The Send OTP endpoint sends a 6-digit verification code to the provided email address. If no OutX account exists for that email, one will be created automatically when the OTP is verified.

This endpoint requires no authentication -- it is the entry point for the auth flow.

## Endpoint

```
POST https://api.outx.ai/linkedin-agent/auth-send-otp
```

## Request Body

<ParamField body="email" type="string" required>
  The email address to send the OTP to
</ParamField>

<ParamField body="full_name" type="string">
  Full name of the user (used when creating a new account)
</ParamField>

## Response

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "email": "john@example.com"
  }
  ```
</ResponseExample>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.outx.ai/linkedin-agent/auth-send-otp" \
    -H "Content-Type: application/json" \
    -d '{
      "email": "john@example.com",
      "full_name": "John Doe"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.outx.ai/linkedin-agent/auth-send-otp",
    {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        email: "john@example.com",
        full_name: "John Doe",
      }),
    }
  );

  const data = await response.json();
  console.log(data); // { success: true, email: "john@example.com" }
  ```

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

  response = requests.post(
      "https://api.outx.ai/linkedin-agent/auth-send-otp",
      json={
          "email": "john@example.com",
          "full_name": "John Doe",
      },
  )

  print(response.json())
  ```
</RequestExample>

## Errors

| Status | Error                        | Description                                        |
| ------ | ---------------------------- | -------------------------------------------------- |
| `400`  | `Missing or invalid 'email'` | The `email` field is missing or not a valid string |

## Next Step

Check your email for the 6-digit OTP, then use [Verify OTP](/docs/linkedin-api/auth-verify-otp) to complete authentication and receive your API key.
