### Authentication

- Include your `Access-Token` in the header of your requests.
- Include your `x-api-key`. The API key provided by GenLogs. This header must be included in the request.

#### Permissions
The `external-api-get-onboarded-carrier-contact` permission is required to access this endpoint.

#### Endpoint
- **URL:** `https://api.genlogs.io/onboarded-carrier/contacts`
- **Method:** GET

#### Headers
- **Access-Token**: (string, required): Access token obtained from the "Create Access Token" endpoint.
- **x-api-key** (string, required): The API key provided by GenLogs.

#### Request Body:
- **usdot_number** (string, optional): Carrier USDOT number or numbers comma separated. Must be a non-empty value.
- **page** (string, optional): Expected page to be listed.
- **page_size** (string, optional): Amount of items per page

#### Request Example:
```bash
curl --location 'https://api.genlogs.io/onboarded-carrier/contacts?page=4&page_size=2' \
--header 'access-token: <your-access-token>' \
--header 'x-api-key: <your-x-api-key>'
```

#### Response:
- **200 OK:** A JSON object containing the information of carrier contacts.
- **400 Bad Request:** If the provided parameters are malformed or invalid.
- **401 Unauthorized:** If the authentication credentials (Access-Token) is missing or incorrect.
- **403 Forbidden:** If the permission has not been added to your user.
- **500 Internal Server Error:** If there is an issue on the server that prevents processing the request.

#### Response Body:
200 OK – Contacts listed Successfully
```json
{
  "contacts": [
    {
      "contact_id": "00-11-22-33-44",
      "dot_number": "123456",
      "customer_id": 3,
      "contact_name": "John",
      "contact_email": "john@email.com",
      "contact_phone": "(555) 555-5555",
      "contact_source": "GENLOGS"
    },
    {
      "contact_id": "11-22-33-44-55",
      "dot_number": "765432",
      "customer_id": 3,
      "contact_name": "Mike",
      "contact_email": "mike@email.com",
      "contact_phone": "(555) 555-5566",
      "contact_source": "GENLOGS"
    }
  ],
  "pagination": {
    "page_size": 2,
    "current_page": 4,
    "total_pages": 10
  }
}
```

400 Bad Request Returned when:
- `usdot_number` is invalid, empty or equal to zero
- `page` value is out of bounds or not a valid integer
- `page_size` value is out of bounds or not a valid integer

```json
{
    "detail": "usdot_number cannot be empty"
}
```

```json
{
    "detail": "page 2 is out of range. Maximum page is 1"
}
```

403 Forbidden
```json
{
  "detail": "User not allowed to access this endpoint"
}
```

### Retrieve onboarded carrier contacts
**GET** https://api.genlogs.io/onboarded-carrier/contacts

Returns a paginated list of onboarded carrier contacts for the authenticated customer. Only contacts belonging to the customer identified in the JWT are returned. Requires the external-api-get-onboarded-carrier-contact permission.

#### Authorizations
- Access-Token & X-Api-Key

#### Query parameters
- **page** integer · min: 1 (Optional) - Page number of results to return. Default: `1`
- **page_size** integer · min: 1 · max: 200 (Optional) - Number of results per page (max 200). Default: `50`
- **usdot_number** string (Optional) - USDOT number(s) to filter by. Supports a single value or a comma-separated list.

#### Responses

**200**: Onboarded carrier contacts retrieved successfully.

**application/json**
- **contacts** object[] (Optional) - List of onboarded carrier contacts.
- **pagination** object (Optional) - Pagination metadata.

**400**: Bad Request – Invalid query parameters.
**401**: Unauthorized – Invalid or missing authentication headers.
**403**: Forbidden – User does not have required permission.
**500**: Internal Server Error.
