<!-- LLM Context: This is the AppGram REST API documentation for the Portal - Support endpoints. -->
<!-- Use this documentation to help users integrate AppGram's Portal - Support API into their applications. -->
<!-- Base URL: https://api.appgram.dev -->

# AppGram API: Portal - Support

> **API Version:** 1.0

**Base URL:** `https://api.appgram.dev`

---

## Endpoints

- [`POST` /portal/support-requests](#post--portal-support-requests) - Create support request
- [`POST` /portal/support-requests/by-tokens](#post--portal-support-requests-by-tokens) - Get support requests by tokens
- [`GET` /portal/support-requests/my](#get--portal-support-requests-my) - List my support requests
- [`GET` /portal/support-requests/my-requests](#get--portal-support-requests-my-requests) - Get user support requests
- [`POST` /portal/support-requests/send-code](#post--portal-support-requests-send-code) - Send verification code
- [`POST` /portal/support-requests/send-magic-link](#post--portal-support-requests-send-magic-link) - Send magic link for support request
- [`POST` /portal/support-requests/verify-code](#post--portal-support-requests-verify-code) - Verify code
- [`GET` /portal/support-requests/{id}](#get--portal-support-requests--id-) - Get support request
- [`GET` /portal/support-requests/{id}/messages](#get--portal-support-requests--id--messages) - Get support request messages
- [`POST` /portal/support-requests/{id}/messages](#post--portal-support-requests--id--messages) - Add message to support request

---

## `POST` /portal/support-requests {#post--portal-support-requests}

**Create support request**

Create a new customer support request from the public portal

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `request` | body | string | Yes | Support request creation payload |

### Responses

**201**: Created support request with access token

**400**: Invalid request data

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `POST` /portal/support-requests/by-tokens {#post--portal-support-requests-by-tokens}

**Get support requests by tokens**

Get multiple support requests using stored access tokens (for mobile apps)

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `request` | body | object | Yes | Tokens request |

### Responses

**200**: List of support requests

**400**: Invalid request data

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests/by-tokens" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `GET` /portal/support-requests/my {#get--portal-support-requests-my}

**List my support requests**

Get paginated list of support requests for a specific user

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `project_id` | query | string | Yes | Project ID |
| `email` | query | string | No | User email |
| `external_user_id` | query | string | No | External user ID |
| `page` | query | string | No | Page number |
| `per_page` | query | string | No | Items per page |

### Responses

**200**: Paginated list of support requests

**400**: Missing required parameters

### Example

```bash
curl -X GET "https://api.appgram.dev/portal/support-requests/my" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `GET` /portal/support-requests/my-requests {#get--portal-support-requests-my-requests}

**Get user support requests**

Get all support requests for the authenticated user (requires session token)

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `Authorization` | header | string | Yes | Bearer session_token |

### Responses

**200**: List of support requests

**401**: Invalid or expired session

### Example

```bash
curl -X GET "https://api.appgram.dev/portal/support-requests/my-requests" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `POST` /portal/support-requests/send-code {#post--portal-support-requests-send-code}

**Send verification code**

Send a 6-digit code to user's email for portal access

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `request` | body | object | Yes | Verification code request |

### Responses

**200**: Code sent successfully

**400**: Invalid request data

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests/send-code" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `POST` /portal/support-requests/send-magic-link {#post--portal-support-requests-send-magic-link}

**Send magic link for support request**

Send an email with a magic link to access a support request

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `request` | body | string | Yes | Magic link request payload |

### Responses

**200**: Success message

**400**: Invalid request data

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests/send-magic-link" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `POST` /portal/support-requests/verify-code {#post--portal-support-requests-verify-code}

**Verify code**

Verify a 6-digit code and get a session token for portal access

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `request` | body | object | Yes | Code verification request |

### Responses

**200**: Session token

**400**: Invalid request data

**401**: Invalid or expired code

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests/verify-code" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `GET` /portal/support-requests/{id} {#get--portal-support-requests--id-}

**Get support request**

Get a specific support request by ID using access token

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `id` | path | string | Yes | Support request ID |
| `token` | query | string | Yes | Access token for the request |

### Responses

**200**: Support request data

**404**: Support request not found

### Example

```bash
curl -X GET "https://api.appgram.dev/portal/support-requests/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `GET` /portal/support-requests/{id}/messages {#get--portal-support-requests--id--messages}

**Get support request messages**

Get all messages for a specific support request

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `id` | path | string | Yes | Support request ID |
| `token` | query | string | Yes | Access token for the request |

### Responses

**200**: List of messages

**404**: Support request not found

### Example

```bash
curl -X GET "https://api.appgram.dev/portal/support-requests/{id}/messages" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---

## `POST` /portal/support-requests/{id}/messages {#post--portal-support-requests--id--messages}

**Add message to support request**

Add a new message to an existing support request

### Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `id` | path | string | Yes | Support request ID |
| `token` | query | string | Yes | Access token for the request |
| `request` | body | string | Yes | Message creation payload |

### Responses

**201**: Created message

**400**: Invalid request data

**404**: Support request not found

### Example

```bash
curl -X POST "https://api.appgram.dev/portal/support-requests/{id}/messages" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

---


*This documentation was auto-generated from the OpenAPI specification.*
