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

# Introduction to the Lookup API

> Retrieve detailed information about phone numbers including carrier data, line type, and portability status.

The Lookup API allows you to retrieve detailed information about phone numbers. This includes carrier information,
line type (e.g. mobile, landline, VoIP), portability status, and optionally caller name information. This data can be
valuable for validating phone numbers, enhancing user profiles, and making informed decisions about communication
channels.

With a single API call, you can access comprehensive phone number intelligence to improve your user verification
processes and reduce fraud risks.

### API

The Prelude v2 API is a [REST](https://en.wikipedia.org/wiki/REST) API and uses standard
HTTP features and [statuses](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status).

The current URL is `https://api.prelude.dev/v2`.

### Authentication

To perform requests on the API, you need to provide a **v2** API key in the `Authorization` header.

You can create an API key in the [Dashboard](https://app.prelude.so), under the **API Keys** section of the
settings.

```sh Example request theme={null}
curl --request POST \
     --url 'https://api.prelude.dev/v2/*' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer <API_KEY>'
```

### Errors

Prelude uses conventional HTTP [statuses](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)
to indicate the success or failure of a request:

* Codes in the `2xx` range indicate success.
* Codes in the `4xx` range indicate an error that failed given the information provided (e.g. required parameter was omitted, authentication failed or a rate limit was reached).
* Codes in the `5xx` range indicate an error with Prelude's servers (these are rare).

***

The Prelude API returns errors using a JSON object in the response body with a
machine-readable `code` and a human-readable `message` and a `param` field.

See [Errors](/introduction/errors) for more details as well as a list of all possible error codes.

## Backend SDKs

Integrate effortlessly with Prelude using our Backend SDKs for your platform of choice.

<CardGroup>
  <Card title="Node.js" href="https://github.com/prelude-so/node-sdk" icon="node-js" horizontal>
    Learn how to integrate the Node.js SDK into your application.
  </Card>

  <Card title="Go" href="https://github.com/prelude-so/go-sdk" icon="golang" horizontal>
    Learn how to integrate the Go SDK into your application.
  </Card>

  <Card title="Python" href="https://github.com/prelude-so/python-sdk" icon="python" horizontal>
    Learn how to integrate the Python SDK into your application.
  </Card>

  <Card title="Kotlin/Java" href="https://github.com/prelude-so/java-sdk" icon="java" horizontal>
    Learn how to integrate the Kotlin/Java SDK into your application.
  </Card>

  <Card title="Ruby" href="https://github.com/prelude-so/ruby-sdk" icon="gem" horizontal>
    Learn how to integrate the Ruby SDK into your application.
  </Card>

  <Card title="PHP" href="https://github.com/prelude-so/php-sdk" icon="php" horizontal>
    Learn how to integrate the PHP SDK into your application.
  </Card>

  <Card title="C#" href="https://github.com/prelude-so/csharp-sdk" icon="hashtag" horizontal>
    Learn how to integrate the C# SDK into your application.
  </Card>
</CardGroup>
