appgram / docs
Dashboard

API REFERENCE

Support Tickets

Create tickets, receive updates, and manage support conversations.

v1.0
19 endpoints Authentication →

Support

Add message to support request (API key auth)

Add a message to a support request, verifying the ticket belongs to the external user

POST /api/v1/support-requests/{id}/messages/user/{externalUserId}

Path parameters

id string path required

Support request ID

externalUserId string path required

External user ID

Body

application/json
attachments array
content string required
help_article_ids array

Help center articles to natively attach as rich cards

is_internal boolean

Only for support team

POST /api/v1/support-requests/{id}/messages/user/{externalUserId} bash
curl --request POST \
  --url https://api.appgram.dev/api/v1/support-requests/{id}/messages/user/{externalUserId} \
  --header 'Content-Type: application/json' \
  --data '{
  "attachments": [
    {
      "mime_type": "string",
      "name": "string",
      "size": 0,
      "url": "string"
    }
  ],
  "content": "string",
  "help_article_ids": [
    "string"
  ],
  "is_internal": true
}'

Portal - Support

Create support request

Create a new customer support request from the public portal

POST /portal/support-requests

Body

application/json
attachments array
description string required
external_user_id string
form_data object

Optional: Custom form field values

form_id string

Optional: ID of the support form to use

project_id string required
subject string
user_email string
user_metadata object
user_name string
POST /portal/support-requests bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests \
  --header 'Content-Type: application/json' \
  --data '{
  "attachments": [
    {
      "mime_type": "string",
      "name": "string",
      "size": 0,
      "url": "string"
    }
  ],
  "description": "string",
  "external_user_id": "string",
  "form_id": "string",
  "project_id": "string",
  "subject": "string",
  "user_email": "string",
  "user_name": "string"
}'

Portal - Support

Get support requests by tokens

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

POST /portal/support-requests/by-tokens
POST /portal/support-requests/by-tokens bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests/by-tokens

Portal - Support

List my support requests

Get paginated list of support requests for a specific user

GET /portal/support-requests/my

Query parameters

project_id string query required

Project ID

email string query

User email

external_user_id string query

External user ID

page integer query

Page number

per_page integer query

Items per page

GET /portal/support-requests/my bash
curl --request GET \
  --url https://api.appgram.dev/portal/support-requests/my

Portal - Support

Get user support requests

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

GET /portal/support-requests/my-requests
GET /portal/support-requests/my-requests bash
curl --request GET \
  --url https://api.appgram.dev/portal/support-requests/my-requests

Portal - Support

Send verification code

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

POST /portal/support-requests/send-code
POST /portal/support-requests/send-code bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests/send-code

Portal - Support

Send magic link for support request

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

POST /portal/support-requests/send-magic-link

Body

application/json
project_id string required
user_email string required
POST /portal/support-requests/send-magic-link bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests/send-magic-link \
  --header 'Content-Type: application/json' \
  --data '{
  "project_id": "string",
  "user_email": "string"
}'

Portal - Support

Verify code

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

POST /portal/support-requests/verify-code
POST /portal/support-requests/verify-code bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests/verify-code

Portal - Support

Get support request

Get a specific support request by ID using access token

GET /portal/support-requests/{id}

Path parameters

id string path required

Support request ID

Query parameters

token string query required

Access token for the request

GET /portal/support-requests/{id} bash
curl --request GET \
  --url https://api.appgram.dev/portal/support-requests/{id}

Portal - Support

Get support request messages

Get all messages for a specific support request

GET /portal/support-requests/{id}/messages

Path parameters

id string path required

Support request ID

Query parameters

token string query required

Access token for the request

GET /portal/support-requests/{id}/messages bash
curl --request GET \
  --url https://api.appgram.dev/portal/support-requests/{id}/messages

Portal - Support

Add message to support request

Add a new message to an existing support request

POST /portal/support-requests/{id}/messages

Path parameters

id string path required

Support request ID

Query parameters

token string query required

Access token for the request

Body

application/json
attachments array
content string required
help_article_ids array

Help center articles to natively attach as rich cards

is_internal boolean

Only for support team

POST /portal/support-requests/{id}/messages bash
curl --request POST \
  --url https://api.appgram.dev/portal/support-requests/{id}/messages \
  --header 'Content-Type: application/json' \
  --data '{
  "attachments": [
    {
      "mime_type": "string",
      "name": "string",
      "size": 0,
      "url": "string"
    }
  ],
  "content": "string",
  "help_article_ids": [
    "string"
  ],
  "is_internal": true
}'

Support Forms

Get project support AI reply config

GET /projects/{projectId}/support-ai-reply

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

GET /projects/{projectId}/support-ai-reply bash
curl --request GET \
  --url https://api.appgram.dev/projects/{projectId}/support-ai-reply \
  --header 'Authorization: Bearer <token>'

Support Forms

Update project support AI reply config

PUT /projects/{projectId}/support-ai-reply

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

Body

application/json
ask_clarifying boolean

ask for missing info instead of guessing

enabled boolean
format string

plain, structured

ground_in_articles boolean

ground reply in help center via RAG

instructions string

freeform extra guidance

language string

auto, en, es, ...

length string

short, medium, detailed

mode object

"draft" (default) or "auto"

persona string

e.g. "Senior support engineer"

signoff string

closing line

tone string

friendly, professional, empathetic, technical, casual

PUT /projects/{projectId}/support-ai-reply bash
curl --request PUT \
  --url https://api.appgram.dev/projects/{projectId}/support-ai-reply \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "ask_clarifying": true,
  "enabled": true,
  "format": "string",
  "ground_in_articles": true,
  "instructions": "string",
  "language": "string",
  "length": "string",
  "persona": "string",
  "signoff": "string",
  "tone": "string"
}'

Support Forms

Get support forms

Retrieve all support forms configured for a project

GET /projects/{projectId}/support-forms

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

GET /projects/{projectId}/support-forms bash
curl --request GET \
  --url https://api.appgram.dev/projects/{projectId}/support-forms \
  --header 'Authorization: Bearer <token>'

Support Forms

Create support form

Create a new support form with custom fields and settings

POST /projects/{projectId}/support-forms

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

Body

application/json
description string
fields array required
form_id string

Optional: auto-generated if not provided

name string required
submit_button_text string
success_message string
POST /projects/{projectId}/support-forms bash
curl --request POST \
  --url https://api.appgram.dev/projects/{projectId}/support-forms \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "description": "Submit a support request with custom fields",
  "fields": [
    {
      "default": "string",
      "id": "string",
      "label": "string",
      "options": [
        "string"
      ],
      "placeholder": "string",
      "required": true,
      "type": "text",
      "validation": {
        "max_length": 0,
        "min_length": 0,
        "pattern": "string"
      }
    }
  ],
  "form_id": "support_123",
  "name": "Support Request Form",
  "submit_button_text": "Submit Request",
  "success_message": "Your support request has been submitted!"
}'

Support Forms

Get support form

Retrieve a single support form configuration

GET /projects/{projectId}/support-forms/{formId}

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

formId string path required

Support form ID

GET /projects/{projectId}/support-forms/{formId} bash
curl --request GET \
  --url https://api.appgram.dev/projects/{projectId}/support-forms/{formId} \
  --header 'Authorization: Bearer <token>'

Support Forms

Update support form

Update an existing support form's configuration

PUT /projects/{projectId}/support-forms/{formId}

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

formId string path required

Support form ID

Body

application/json
description string
enabled boolean
fields array
name string
submit_button_text string
success_message string
PUT /projects/{projectId}/support-forms/{formId} bash
curl --request PUT \
  --url https://api.appgram.dev/projects/{projectId}/support-forms/{formId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "description": "Updated description",
  "enabled": true,
  "fields": [
    {
      "default": "string",
      "id": "string",
      "label": "string",
      "options": [
        "string"
      ],
      "placeholder": "string",
      "required": true,
      "type": "text",
      "validation": {
        "max_length": 0,
        "min_length": 0,
        "pattern": "string"
      }
    }
  ],
  "name": "Updated Support Form",
  "submit_button_text": "Submit Now",
  "success_message": "Request submitted successfully!"
}'

Support Forms

Delete support form

Delete a support form and remove it from project customization

DELETE /projects/{projectId}/support-forms/{formId}

Authorizations

Authorization string header required

Bearer token — an API key prefixed with app_. Create one in the dashboard under Settings → Developer → API Keys.

Path parameters

projectId string path required

Project ID

formId string path required

Support form ID

DELETE /projects/{projectId}/support-forms/{formId} bash
curl --request DELETE \
  --url https://api.appgram.dev/projects/{projectId}/support-forms/{formId} \
  --header 'Authorization: Bearer <token>'

Support Forms

Submit support form

Submit a support form with user data and create a support request (public endpoint, no authentication required)

POST /projects/{projectId}/support-forms/{formId}/submit

Path parameters

projectId string path required

Project ID

formId string path required

Support form ID

Body

application/json
data object required
description string required
form_id string required
subject string required
user_email string
user_name string
POST /projects/{projectId}/support-forms/{formId}/submit bash
curl --request POST \
  --url https://api.appgram.dev/projects/{projectId}/support-forms/{formId}/submit \
  --header 'Content-Type: application/json' \
  --data '{
  "description": "The application crashes when I try to log in",
  "form_id": "support_1705312200000_a1b2c3",
  "subject": "Application crash on login",
  "user_email": "user@example.com",
  "user_name": "John Doe"
}'