appgram / docs
Dashboard

API REFERENCE

Forms

Contact forms, waitlists, and custom form submissions.

v1.0
17 endpoints Authentication →

Contact Forms

Get submission overview

Retrieve comprehensive submission statistics for a project (admin only)

GET /contact-forms/overview

Authorizations

Authorization string header required

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

Query parameters

project_id string query required

Project ID

GET /contact-forms/overview bash
curl --request GET \
  --url https://api.appgram.dev/contact-forms/overview \
  --header 'Authorization: Bearer <token>'

Contact Forms

Create contact form

Create a new contact form with custom fields and settings

POST /projects/{projectId}/contact-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
email_recipient string required
email_subject string
fields array required
integration object

Optional integration with support/wishes

name string required
page_id string

Optional: auto-generated if not provided

submit_button_text string
success_message string
POST /projects/{projectId}/contact-forms bash
curl --request POST \
  --url https://api.appgram.dev/projects/{projectId}/contact-forms \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "description": "Get in touch with our team",
  "email_recipient": "hello@company.com",
  "email_subject": "New Contact Form Submission",
  "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": "Contact Us",
  "page_id": "page_123",
  "submit_button_text": "Send Message",
  "success_message": "Thank you for your message!"
}'

Contact Forms

Get form submissions

Retrieve all contact form submissions for a project (admin only)

GET /projects/{projectId}/contact-forms/submissions

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

Query parameters

limit integer query

Maximum number of submissions to return (default: 50, max: 100)

offset integer query

Number of submissions to skip (default: 0)

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

Contact Forms

Get contact form

Retrieve a single contact form configuration and its submission statistics

GET /projects/{projectId}/contact-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

Contact form ID

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

Contact Forms

Update contact form

Update an existing contact form's configuration

PUT /projects/{projectId}/contact-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

Contact form ID

Body

application/json
description string
email_recipient string
email_subject string
enabled boolean
fields array
integration object

Optional integration with support/wishes

name string
submit_button_text string
success_message string
PUT /projects/{projectId}/contact-forms/{formId} bash
curl --request PUT \
  --url https://api.appgram.dev/projects/{projectId}/contact-forms/{formId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "description": "Updated description",
  "email_recipient": "support@company.com",
  "email_subject": "Updated Subject",
  "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 Contact Form",
  "submit_button_text": "Submit Now",
  "success_message": "Message sent successfully!"
}'

Contact Forms

Delete contact form

Delete a contact form and remove it from project customization

DELETE /projects/{projectId}/contact-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

Contact form ID

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

Contact Forms

Get submissions by form

Retrieve contact form submissions for a specific form (admin only)

GET /projects/{projectId}/contact-forms/{formId}/submissions

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

Contact form ID

Query parameters

limit integer query

Maximum number of submissions to return (default: 50, max: 100)

offset integer query

Number of submissions to skip (default: 0)

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

Contact Forms

Submit contact form

Submit a contact form with user data (public endpoint, no authentication required)

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

Path parameters

projectId string path required

Project ID

formId string path required

Contact form ID

Body

application/json
attachments array

Optional file attachments — only forwarded when Integration.Type=="support"

data object required
form_id string required
POST /projects/{projectId}/contact-forms/{formId}/submit bash
curl --request POST \
  --url https://api.appgram.dev/projects/{projectId}/contact-forms/{formId}/submit \
  --header 'Content-Type: application/json' \
  --data '{
  "attachments": [
    {
      "mime_type": "string",
      "name": "string",
      "size": 0,
      "url": "string"
    }
  ],
  "form_id": "contact_1705312200000_a1b2c3"
}'

Contact Forms

Track form view

Track when a contact form is viewed (for analytics)

POST /projects/{projectId}/contact-forms/{formId}/view

Path parameters

projectId string path required

Project ID

formId string path required

Contact form ID

POST /projects/{projectId}/contact-forms/{formId}/view bash
curl --request POST \
  --url https://api.appgram.dev/projects/{projectId}/contact-forms/{formId}/view
Response · 200 json
{
  "error": {
    "code": "string",
    "message": "string"
  },
  "page": 0,
  "per_page": 0,
  "success": true,
  "total": 0,
  "total_pages": 0
}

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"
}'