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

# Login

> Authenticate and receive an API token

## Overview

The login endpoint allows you to exchange your Postable credentials for a bearer token that can be used to authenticate subsequent API requests.

<Note>
  This is the only endpoint that does not require authentication. All other endpoints require a valid bearer token.
</Note>

## Token Management

* Each `app_id` can have one active token at a time
* Calling login with the same `app_id` will revoke the previous token and issue a new one
* Use different `app_id` values if you need multiple active tokens (e.g., for different applications)

## Using Your Token

Include the token in the `Authorization` header of all subsequent requests:

```bash theme={null}
curl -X GET "https://www.postable.com/api/v1/contacts" \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
```


## OpenAPI

````yaml POST /auth/login
openapi: 3.1.0
info:
  title: Postable API
  version: 1.0.0
  description: API for managing contacts and groups in Postable
servers:
  - url: https://www.postable.com/api/v1
    description: API base URL
security: []
paths:
  /auth/login:
    post:
      summary: Authenticate and get API token
      description: >-
        Exchange credentials for an API bearer token. This is the only endpoint
        that does not require authentication.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                app_id:
                  type: string
                  description: Identifier for your application (used to manage tokens)
                email:
                  type: string
                  format: email
                  description: Your Postable account email
                password:
                  type: string
                  description: Your Postable account password
              required:
                - app_id
                - email
                - password
            example:
              app_id: my-app
              email: user@example.com
              password: your-password
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Token'
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Invalid credentials
components:
  schemas:
    Token:
      type: object
      properties:
        token:
          type: string
          description: Bearer token for API authentication

````