Skip to main content

AddGlow Brand API (1.0.0)

Download OpenAPI specification:Download

AddGlow API documentation

Authentication

Authentication-related endpoints

Create magic link

Create a magic link for a user to login to the brand's community. If the user does not exist within AddGlow, they will be created using the details provided in the request.

If the user already exists, the email and phone details provided in the request will be used to update the user's details.

Note: This endpoint is only available for brands that have custom auth enabled.

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
required
customAuthSub
required
string

A stable identifier for the user within the custom auth system (e.g. the AWS cognito ID or the Auth0 user ID)

email
string <email>

Email address of the user (one of phone or email required)

isEmailVerified
boolean

Whether the email address is verified

phoneNumber
string

Phone number of the user (one of phone or email required)

firstName
string

First name of the user

lastName
string

Last name of the user

profilePictureUrl
string <uri>

URL of the user profile picture

state
string <= 256 characters

State to be passed back in the redirect URL after login

returnTo
string <= 100 characters ^/

URL to redirect to after login (must be a relative URL starting with /)

Responses

Request samples

Content type
application/json
{
  • "customAuthSub": "google-apps|117686103243408785895170",
  • "email": "john@example.com",
  • "isEmailVerified": true,
  • "phoneNumber": "+1234567890",
  • "firstName": "John",
  • "lastName": "Doe",
  • "profilePictureUrl": "https://example.com/profile.jpg",
  • "state": "some-state",
  • "returnTo": "/room/general"
}

Response samples

Content type
application/json
{}

Members

Member-related endpoints

Get member

Get details about a member by their AddGlow ID

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Member ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update member

Update details about a member

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Member ID

Request Body schema: application/json
isBanned
boolean

Whether the user is banned

isEmailVerified
boolean

Whether the email address is verified (only for brands that use custom auth)

groupIds
Array of strings <uuid> [ items <uuid > ]

List of member group IDs that the member belongs to (will replace existing groups)

Responses

Request samples

Content type
application/json
{
  • "isBanned": false,
  • "isEmailVerified": true,
  • "groupIds": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

List members

Returns a list of members in the brand

Authorizations:
BearerApiKeyAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Number of items to return between 1 and 100. Defaults to 10.

after
string <uuid>
Example: after=575afa13-cf79-439d-8be8-2751615dc0f5

The ID of the last item in the previous page. Used for pagination.

group_id
string <uuid>
Example: group_id=575afa13-cf79-439d-8be8-2751615dc0f5

Filter by member group ID

Responses

Response samples

Content type
application/json
{
  • "hasMore": true,
  • "data": [
    ]
}

Member Groups

Member group-related endpoints

List member groups

Returns a list of member groups in the brand

Authorizations:
BearerApiKeyAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Number of items to return between 1 and 100. Defaults to 10.

after
string <uuid>
Example: after=575afa13-cf79-439d-8be8-2751615dc0f5

The ID of the last item in the previous page. Used for pagination.

Responses

Response samples

Content type
application/json
{
  • "hasMore": true,
  • "data": [
    ]
}

Create member group

Create a new member group

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
required
name
required
string

Member group name

object

Responses

Request samples

Content type
application/json
{
  • "name": "Group A",
  • "brandMemberBadge": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get member group by ID

Returns the details of a member group

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Member group ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update member group

Update details of a member group

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Member group ID

Request Body schema: application/json
name
string

Member group name

object

Responses

Request samples

Content type
application/json
{
  • "name": "Group A",
  • "brandMemberBadge": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete member group

Delete a member group

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Member group ID

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Posts

Post-related endpoints

List posts

Returns a list of posts, paginated by creation time

Authorizations:
BearerApiKeyAuth
query Parameters
roomId
string <uuid>
Example: roomId=575afa13-cf79-439d-8be8-2751615dc0f5

Room ID

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Number of items to return between 1 and 100. Defaults to 10.

after
string <uuid>
Example: after=575afa13-cf79-439d-8be8-2751615dc0f5

The ID of the last item in the previous page. Used for pagination.

createdAtAfter
string <date-time>
Example: createdAtAfter=2023-01-01T00:00:00.000Z

Filter posts created after this date

Responses

Response samples

Content type
application/json
{
  • "hasMore": true,
  • "data": [
    ]
}

Brand Products

Brand product-related endpoints

List products

Returns a paginated list of products

Authorizations:
BearerApiKeyAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Number of items to return between 1 and 100. Defaults to 10.

cursor
string
Example: cursor=575afa13-cf79-439d-8be8-2751615dc0f5

The ID of the last item in the previous page

updatedAfter
string <date-time>
Example: updatedAfter=2024-01-01T00:00:00.000Z

Filter products updated after this timestamp

Responses

Response samples

Content type
application/json
{}

Create product

Creates a new product

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
required
storeId
required
string

Store-specific ID for the product (must be unique)

title
required
string

Product title

description
required
string

Product description

imageUrl
required
string or null <uri>

URL of the product image

imageWidth
required
integer or null

Width of the product image in pixels

imageHeight
required
integer or null

Height of the product image in pixels

onlineStoreUrl
required
string <uri>

URL of the product in the online store

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get product details

Returns details of a specific product

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product

Responses

Response samples

Content type
application/json
{}

Update product

Updates an existing product

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product

Request Body schema: application/json
title
string

Product title

description
string

Product description

imageUrl
string or null <uri>

URL of the product image

imageWidth
integer or null

Width of the product image in pixels

imageHeight
integer or null

Height of the product image in pixels

onlineStoreUrl
string <uri>

URL of the product in the online store

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Delete product

Deletes a product and all its variants

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Bulk product operations

Perform multiple product operations in a single request (rate limited to 10 queries per minute)

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
Array of objects <= 100 items

List of products to create or update (max 100)

deleteRecords
Array of strings <= 100 items

List of product store IDs to delete (max 100)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true
}

Brand Product Variants

Brand product variant-related endpoints

List product variants

Returns a paginated list of product variants

Authorizations:
BearerApiKeyAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Number of items to return between 1 and 100. Defaults to 10.

cursor
string
Example: cursor=575afa13-cf79-439d-8be8-2751615dc0f5

The ID of the last item in the previous page

productId
string <uuid>
Example: productId=575afa13-cf79-439d-8be8-2751615dc0f5

Filter by product ID

productStoreId
string <uuid>
Example: productStoreId=575afa13-cf79-439d-8be8-2751615dc0f5

Filter by product store ID

updatedAfter
string <date-time>
Example: updatedAfter=2024-01-01T00:00:00.000Z

Filter variants updated after this timestamp

Responses

Response samples

Content type
application/json
{
  • "hasMore": true,
  • "data": [
    ]
}

Create product variant

Creates a new product variant

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
required
storeId
required
string

Store-specific ID for the variant (must be unique)

productStoreId
required
string

Store-specific ID of the parent product

title
required
string

Variant title

barcode
string or null

Product barcode

sku
string or null

Stock keeping unit

position
required
integer

Display position of the variant

priceCents
integer or null

Price in cents

currency
string or null

Currency code

imageUrl
string or null <uri>

URL of the product image

imageWidth
integer or null

Width of the product image in pixels

imageHeight
integer or null

Height of the product image in pixels

Responses

Request samples

Content type
application/json
{
  • "storeId": "gid://shopify/ProductVariant/123",
  • "productStoreId": "gid://shopify/Product/123",
  • "title": "Large / Blue",
  • "barcode": "123456789012",
  • "sku": "PROD-123-L-BLUE",
  • "position": 1,
  • "priceCents": 2999,
  • "currency": "USD",
  • "imageWidth": 800,
  • "imageHeight": 600
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get variant details

Returns details of a specific product variant

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product variant

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update product variant

Updates an existing product variant

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product variant

Request Body schema: application/json
productStoreId
string

Store-specific ID of the parent product

title
string

Variant title

barcode
string or null

Product barcode

sku
string or null

Stock keeping unit

position
integer

Display position of the variant

priceCents
integer or null

Price in cents

currency
string or null

Currency code

imageUrl
string or null <uri>

URL of the product image

imageWidth
integer or null

Width of the product image in pixels

imageHeight
integer or null

Height of the product image in pixels

Responses

Request samples

Content type
application/json
{
  • "productStoreId": "gid://shopify/Product/123",
  • "title": "Large / Blue",
  • "barcode": "123456789012",
  • "sku": "PROD-123-L-BLUE",
  • "position": 1,
  • "priceCents": 2999,
  • "currency": "USD",
  • "imageWidth": 800,
  • "imageHeight": 600
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete product variant

Deletes a product variant

Authorizations:
BearerApiKeyAuth
path Parameters
id
required
string <uuid>
Example: 575afa13-cf79-439d-8be8-2751615dc0f5

Unique ID for the product variant

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Bulk product variant operations

Perform multiple variant operations in a single request (rate limited to 10 queries per minute)

Authorizations:
BearerApiKeyAuth
Request Body schema: application/json
Array of objects <= 100 items

List of variants to create or update (max 100)

deleteRecords
Array of strings <= 100 items

List of variant store IDs to delete (max 100)

Responses

Request samples

Content type
application/json
{
  • "upsertRecords": [
    ],
  • "deleteRecords": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true
}

Webhooks

Webhooks for events in AddGlow following the Standard Webhook standard

user.joined Webhook

User joined the platform

Authorizations:
BearerApiKeyAuth
header Parameters
webhook-id
required
string
Example: msg_2KWPBgLlAfxdpx2AI54pPJ85f4W

The unique webhook identifier

webhook-timestamp
required
number
Example: 1674087231

Integer unix timestamp (seconds since epoch)

webhook-signature
required
string
Example: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

The signature(s) of this webhook as defined in the Standard Webhook specification

Request Body schema: application/json
type
required
string

The type of the event

Value: "user.joined"
timestamp
required
string <date-time>

The timestamp of the event

required
object

Responses

Request samples

Content type
application/json
{
  • "type": "user.joined",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

post.created Webhook

Post created

Authorizations:
BearerApiKeyAuth
header Parameters
webhook-id
required
string
Example: msg_2KWPBgLlAfxdpx2AI54pPJ85f4W

The unique webhook identifier

webhook-timestamp
required
number
Example: 1674087231

Integer unix timestamp (seconds since epoch)

webhook-signature
required
string
Example: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

The signature(s) of this webhook as defined in the Standard Webhook specification

Request Body schema: application/json
type
required
string

The type of the event

Value: "post.created"
timestamp
required
string <date-time>

The timestamp of the event

required
object

Responses

Request samples

Content type
application/json
{
  • "type": "post.created",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

post.liked Webhook

Post liked

Authorizations:
BearerApiKeyAuth
header Parameters
webhook-id
required
string
Example: msg_2KWPBgLlAfxdpx2AI54pPJ85f4W

The unique webhook identifier

webhook-timestamp
required
number
Example: 1674087231

Integer unix timestamp (seconds since epoch)

webhook-signature
required
string
Example: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

The signature(s) of this webhook as defined in the Standard Webhook specification

Request Body schema: application/json
type
required
string

The type of the event

Value: "post.liked"
timestamp
required
string <date-time>

The timestamp of the event

required
object

Responses

Request samples

Content type
application/json
{
  • "type": "post.liked",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

post_comment.created Webhook

Post comment created

Authorizations:
BearerApiKeyAuth
header Parameters
webhook-id
required
string
Example: msg_2KWPBgLlAfxdpx2AI54pPJ85f4W

The unique webhook identifier

webhook-timestamp
required
number
Example: 1674087231

Integer unix timestamp (seconds since epoch)

webhook-signature
required
string
Example: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

The signature(s) of this webhook as defined in the Standard Webhook specification

Request Body schema: application/json
type
required
string

The type of the event

Value: "post_comment.created"
timestamp
required
string <date-time>

The timestamp of the event

required
object

Responses

Request samples

Content type
application/json
{
  • "type": "post_comment.created",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

post_comment.liked Webhook

Post comment liked

Authorizations:
BearerApiKeyAuth
header Parameters
webhook-id
required
string
Example: msg_2KWPBgLlAfxdpx2AI54pPJ85f4W

The unique webhook identifier

webhook-timestamp
required
number
Example: 1674087231

Integer unix timestamp (seconds since epoch)

webhook-signature
required
string
Example: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

The signature(s) of this webhook as defined in the Standard Webhook specification

Request Body schema: application/json
type
required
string

The type of the event

Value: "post_comment.liked"
timestamp
required
string <date-time>

The timestamp of the event

required
object

Responses

Request samples

Content type
application/json
{
  • "type": "post_comment.liked",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "data": {
    }
}