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.
| 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) |
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 /) |
{- "customAuthSub": "google-apps|117686103243408785895170",
- "email": "john@example.com",
- "isEmailVerified": true,
- "phoneNumber": "+1234567890",
- "firstName": "John",
- "lastName": "Doe",
- "state": "some-state",
- "returnTo": "/room/general"
}{- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5"
}Get details about a member by their AddGlow ID
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Member ID |
{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "username": "johndoe",
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@gmail.com",
- "phoneNumber": "+1234567890",
- "isEmailVerified": true,
- "isBanned": false,
- "role": "CUSTOMER",
- "groupIds": [
- "575afa13-cf79-439d-8be8-2751615dc0f5"
]
}
}Update details about a member
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Member ID |
| 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) |
{- "isBanned": false,
- "isEmailVerified": true,
- "groupIds": [
- "575afa13-cf79-439d-8be8-2751615dc0f5"
]
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "username": "johndoe",
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@gmail.com",
- "phoneNumber": "+1234567890",
- "isEmailVerified": true,
- "isBanned": false,
- "role": "CUSTOMER",
- "groupIds": [
- "575afa13-cf79-439d-8be8-2751615dc0f5"
]
}
}Returns a list of members in the brand
| 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 |
{- "hasMore": true,
- "data": [
- {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "username": "johndoe",
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@gmail.com",
- "phoneNumber": "+1234567890",
- "isEmailVerified": true,
- "isBanned": false,
- "role": "CUSTOMER",
- "groupIds": [
- "575afa13-cf79-439d-8be8-2751615dc0f5"
]
}
]
}Returns a list of member groups in the brand
| 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. |
{- "hasMore": true,
- "data": [
- {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Pros",
- "brandMemberBadge": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}
]
}Create a new member group
| name required | string Member group name |
object |
{- "name": "Group A",
- "brandMemberBadge": {
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Pros",
- "brandMemberBadge": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}
}Returns the details of a member group
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Member group ID |
{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Pros",
- "brandMemberBadge": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}
}Update details of a member group
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Member group ID |
| name | string Member group name |
object |
{- "name": "Group A",
- "brandMemberBadge": {
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Pros",
- "brandMemberBadge": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "name": "Badge A",
- "foregroundColor": "#FFFFFF",
- "backgroundColor": "#000000"
}
}
}Returns a list of posts, paginated by creation time
| 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 |
{- "hasMore": true,
- "data": [
- {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "roomId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "title": "My First Post",
- "contentHtml": "<p>This is a post</p>",
- "isPinned": true,
- "createdAt": "2023-01-01T00:00:00.000Z",
- "type": "TEXT",
- "publishedAt": "2023-01-01T00:00:00.000Z",
- "isPublished": true
}
]
}Returns a paginated list of products
| 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 |
{- "hasMore": true,
- "data": [
- {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
]
}Creates a new product
| 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 |
{- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Returns details of a specific product
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Unique ID for the product |
{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Updates an existing product
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Unique ID for the product |
| 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 |
{- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Perform multiple product operations in a single request (rate limited to 10 queries per minute)
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) |
{- "upsertRecords": [
- {
- "storeId": "gid://shopify/Product/123",
- "title": "Classic T-Shirt",
- "description": "A comfortable cotton t-shirt",
- "imageWidth": 800,
- "imageHeight": 600,
}
], - "deleteRecords": [
- "string"
]
}{- "success": true
}Returns a paginated list of product variants
| 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 |
{- "hasMore": true,
- "data": [
- {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "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,
- "productId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
]
}Creates a new product variant
| 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 |
{- "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
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "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,
- "productId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Returns details of a specific product variant
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Unique ID for the product variant |
{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "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,
- "productId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Updates an existing product variant
| id required | string <uuid> Example: 575afa13-cf79-439d-8be8-2751615dc0f5 Unique ID for the product variant |
| 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 |
{- "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
}{- "data": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "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,
- "productId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "updatedAt": "2024-01-01T00:00:00.000Z",
- "createdAt": "2024-01-01T00:00:00.000Z"
}
}Perform multiple variant operations in a single request (rate limited to 10 queries per minute)
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) |
{- "upsertRecords": [
- {
- "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
}
], - "deleteRecords": [
- "string"
]
}{- "success": true
}Webhooks for events in AddGlow following the Standard Webhook standard
User joined the platform
| 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 |
| type required | string The type of the event Value: "user.joined" |
| timestamp required | string <date-time> The timestamp of the event |
required | object |
{- "type": "user.joined",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "email": "example@example.com",
- "phoneNumber": "+1234567890",
- "user": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "customAuthSub": "auth0|1234567890",
- "email": "email@example.com"
}
}
}Post created
| 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 |
| type required | string The type of the event Value: "post.created" |
| timestamp required | string <date-time> The timestamp of the event |
required | object |
{- "type": "post.created",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "postId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "user": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "customAuthSub": "auth0|1234567890",
- "email": "email@example.com"
}, - "title": "My Post"
}
}Post liked
| 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 |
| type required | string The type of the event Value: "post.liked" |
| timestamp required | string <date-time> The timestamp of the event |
required | object |
{- "type": "post.liked",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "postId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "user": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "customAuthSub": "auth0|1234567890",
- "email": "email@example.com"
}
}
}Post comment created
| 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 |
| type required | string The type of the event Value: "post_comment.created" |
| timestamp required | string <date-time> The timestamp of the event |
required | object |
{- "type": "post_comment.created",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "postId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "postTitle": "My Post",
- "postCommentId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "plainTextContent": "This is a comment",
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "user": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "customAuthSub": "auth0|1234567890",
- "email": "email@example.com"
}
}
}Post comment liked
| 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 |
| type required | string The type of the event Value: "post_comment.liked" |
| timestamp required | string <date-time> The timestamp of the event |
required | object |
{- "type": "post_comment.liked",
- "timestamp": "2019-08-24T14:15:22Z",
- "data": {
- "postId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "postTitle": "My Post",
- "postCommentId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "userId": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "user": {
- "id": "575afa13-cf79-439d-8be8-2751615dc0f5",
- "customAuthSub": "auth0|1234567890",
- "email": "email@example.com"
}
}
}