Open the interactive API reference ↗
Introduction
The Notify Me! Public API lets you programmatically manage subscriptions, pre-orders, and the notifications we send to your customers on your behalf. Every endpoint returns JSON and requires a valid API key.
Generate an API key from your Notify Me! admin panel, then include it as the X-Api-Key header on every request.
Authentication
All API requests require authentication with an API key sent in the X-Api-Key header.
curl -X GET "https://api.notify-me.app/v1/subscriptions/" \
-H "X-Api-Key: YOUR_API_KEY"
Requests without a valid key return 401 Unauthorized.
Base URL
All endpoint paths in this reference are relative to the base URL below.
Base https://api.notify-me.app/v1
Rate Limits
To ensure fair usage and system stability, all endpoints share the following limit. Exceeding it returns 429 Too Many Requests with a detail field indicating when to retry.
| Endpoint type | Limit |
| Standard endpoints | 60 requests / minute |
Errors
Errors return a JSON body with a detail field describing the failure.
| Status | Meaning |
| 200 | Success. |
| 401 | Missing or invalid API key. |
| 403 | API key valid, but the requested action is not permitted. |
| 404 | The requested object does not exist. |
| 429 | Rate limit exceeded. Retry after the interval in the response body. |
| 5xx | Unexpected server error. Retry with exponential backoff. |
GET /v1/subscriptions/
List subscriptions
Retrieve a paginated list of subscriptions for your shop.
Parameters
| Name | In | Type | Description |
| status | query | array<string> | Filter by status: EXPIRED, RESTOCKED, WAITING_UPGRADE, WAITING_RESTOCK, PENDING_GDPR, SCHEDULED, FRAUD_DETECTED_BY_AI, ORDERED. |
| email | query | string | Filter by email (case-insensitive). |
| phone_number | query | string | Filter by phone number (case-insensitive). |
| whatsapp_number | query | string | Filter by WhatsApp number (case-insensitive). |
| product_id | query | number | Filter by product ID. |
| variant_id | query | number | Filter by variant ID. |
| sku | query | string | Filter by SKU (case-insensitive). |
| is_imported | query | boolean | Filter by import status. |
| created_at_gte | query | string (ISO 8601) | Created on or after this date. |
| created_at_lte | query | string (ISO 8601) | Created on or before this date. |
| subscribe_at_gte | query | string (ISO 8601) | Subscribed on or after this date. |
| subscribe_at_lte | query | string (ISO 8601) | Subscribed on or before this date. |
| sent_at_gte | query | string (ISO 8601) | First-alert notification sent on or after this date. |
| sent_at_lte | query | string (ISO 8601) | First-alert notification sent on or before this date. |
| sent_at_isnull | query | boolean | true = pending first alert, false = sent. |
| ordering | query | string | Sort field. Prefix with - for descending. Allowed: created_at, id, sent_at, subscribe_at. |
Example request
curl -X GET "https://api.notify-me.app/v1/subscriptions/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"count": 123,
"next": "https://api.notify-me.app/v1/subscriptions/?offset=100&limit=100",
"previous": null,
"results": [
{
"id": 12345,
"status": "PENDING",
"subscribe_at": "2024-01-15",
"sent_at": "2024-01-16T10:30:00Z",
"created_at": "2024-01-15T08:00:00Z",
"product_id": 98765,
"variant_id": 11111,
"sku": "SKU-001",
"email": "customer@example.com",
"phone_number": "+15551234567",
"whatsapp_number": "+15559876543",
"locale": "en",
"is_imported": false
}
]
}
GET /v1/subscriptions/{id}/
Get a subscription
Retrieve details of a specific subscription by ID.
Parameters
| Name | In | Type | Description |
| id required | path | integer | A unique integer value identifying this subscription. |
Example request
curl -X GET "https://api.notify-me.app/v1/subscriptions/{id}/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"id": 12345,
"status": "PENDING",
"subscribe_at": "2024-01-15",
"sent_at": "2024-01-16T10:30:00Z",
"created_at": "2024-01-15T08:00:00Z",
"product_id": 98765,
"variant_id": 11111,
"sku": "SKU-001",
"email": "customer@example.com",
"phone_number": "+15551234567",
"whatsapp_number": "+15559876543",
"locale": "en",
"is_imported": false
}
GET /v1/subscription-notifications/
List sent notifications
Retrieve a paginated list of subscription sent notifications for your shop.
Parameters
| Name | In | Type | Description |
| bundle | query | array<string> | Filter by bundle: FIRST_ALERT, GDPR, AFTER_SUBSCRIPTION, REMINDER. |
| email | query | string | Filter by email (case-insensitive). |
| email_status | query | array<string> | Filter by email delivery status (comma-separated). |
| phone_number | query | string | Filter by phone number. |
| sms_status | query | array<string> | Filter by SMS status (comma-separated). |
| whatsapp_number | query | string | Filter by WhatsApp number. |
| whatsapp_status | query | array<string> | Filter by WhatsApp status. |
| push_status | query | array<string> | Filter by push notification status. |
| subscription_id | query | number | Filter by subscription ID. |
| product_id | query | number | Filter by product ID. |
| variant_id | query | number | Filter by variant ID. |
| sku | query | string | Filter by SKU (case-insensitive). |
| sent_at_gte | query | string (ISO 8601) | Sent on or after this date. |
| sent_at_lte | query | string (ISO 8601) | Sent on or before this date. |
| ordering | query | string | Sort field. Allowed: id, sent_at. Prefix with - for descending. |
Example request
curl -X GET "https://api.notify-me.app/v1/subscription-notifications/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"count": 123,
"next": "https://api.notify-me.app/v1/subscription-notifications/?offset=100&limit=100",
"previous": null,
"results": [
{
"id": 12345,
"bundle": "FIRST_ALERT",
"sent_at": "2024-01-15T08:00:00Z",
"subscription_id": 67890,
"product_id": 98765,
"variant_id": 11111,
"sku": "SKU-12345",
"email": "customer@example.com",
"phone_number": "+15551234567",
"whatsapp_number": "+15559876543",
"email_stat": {
"status": "DELIVERED"
},
"sms_stat": {
"status": "DELIVERED",
"segments_count": 2
},
"push_stat": null,
"whatsapp_stat": null
}
]
}
GET /v1/subscription-notifications/{id}/
Get a sent notification
Retrieve details of a specific subscription sent notification by ID.
Parameters
| Name | In | Type | Description |
| id required | path | integer | A unique integer value identifying this subscription sent notification. |
Example request
curl -X GET "https://api.notify-me.app/v1/subscription-notifications/{id}/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"id": 12345,
"bundle": "FIRST_ALERT",
"sent_at": "2024-01-15T08:00:00Z",
"subscription_id": 67890,
"product_id": 98765,
"variant_id": 11111,
"sku": "SKU-12345",
"email": "customer@example.com",
"phone_number": "+15551234567",
"whatsapp_number": "+15559876543",
"email_stat": {
"status": "DELIVERED"
},
"sms_stat": {
"status": "DELIVERED",
"segments_count": 2
},
"push_stat": null,
"whatsapp_stat": null
}
GET /v1/pre-orders/
List shop pre-orders
Retrieve a paginated list of shop pre-orders for your shop.
Parameters
| Name | In | Type | Description |
| financial_status | query | array<string> | Filter by financial status: AUTHORIZED, PAID, PARTIALLY_PAID, PARTIALLY_REFUNDED, PENDING, REFUNDED, VOIDED. |
| fulfillment_status | query | array<string> | Filter by fulfillment status: FULFILLED, IN_PROGRESS, ON_HOLD, OPEN, RESTOCKED, PARTIALLY_FULFILLED, PENDING_FULFILLMENT, SCHEDULED, UNFULFILLED. |
| cancelled_at_isnull | query | boolean | true = active, false = cancelled. |
| email | query | string | Filter by customer email (case-insensitive). |
| shopify_order_id | query | integer | Filter by Shopify order ID. |
| product_id | query | integer | Filter by Shopify product ID. |
| variant_id | query | integer | Filter by Shopify variant ID. |
| sku | query | string | Filter by SKU (case-insensitive). |
| selling_plan_settings_name | query | string | Filter by selling plan settings name. |
| created_at_gte | query | string (ISO 8601) | Created on or after this date. |
| created_at_lte | query | string (ISO 8601) | Created on or before this date. |
| ordering | query | string | Sort field. Allowed: created_at, id, total_price. Prefix with - for descending. |
Example request
curl -X GET "https://api.notify-me.app/v1/pre-orders/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"count": 123,
"next": "https://api.notify-me.app/v1/pre-orders/?offset=100&limit=100",
"previous": null,
"results": [
{
"id": 12345,
"shopify_order_id": 9876543210,
"email": "customer@example.com",
"phone_number": "+15551234567",
"created_at": "2024-01-15T08:00:00Z",
"total_price": 99.99,
"product_price": 49.99,
"product_ordered_quantity": 2,
"financial_status": "PAID",
"fulfillment_status": "UNFULFILLED",
"locale": "en",
"cancelled_at": null,
"cancellation_reason": null,
"product_id": 98765,
"variant_id": 11111,
"variant_sku": "SKU-001",
"selling_plan_settings_name": "Summer Pre-Order"
}
]
}
GET /v1/pre-orders/{id}/
Get a pre-order
Retrieve details of a specific shop pre-order by ID.
Parameters
| Name | In | Type | Description |
| id required | path | integer | A unique integer value identifying this shop pre-order. |
Example request
curl -X GET "https://api.notify-me.app/v1/pre-orders/{id}/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"id": 12345,
"shopify_order_id": 9876543210,
"email": "customer@example.com",
"phone_number": "+15551234567",
"created_at": "2024-01-15T08:00:00Z",
"total_price": 99.99,
"product_price": 49.99,
"product_ordered_quantity": 2,
"financial_status": "PAID",
"fulfillment_status": "UNFULFILLED",
"locale": "en",
"cancelled_at": null,
"cancellation_reason": null,
"product_id": 98765,
"variant_id": 11111,
"variant_sku": "SKU-001",
"selling_plan_settings_name": "Summer Pre-Order"
}
GET /v1/pre-order-notifications/
List sent notifications
Retrieve a paginated list of pre-order sent notifications for your shop.
Parameters
| Name | In | Type | Description |
| bundle | query | array<string> | Filter by bundle: PRE_ORDER, DELAYED_SHIPMENT. |
| email | query | string | Filter by email (case-insensitive). |
| email_status | query | array<string> | Filter by email delivery status. |
| phone_number | query | string | Filter by phone number. |
| sms_status | query | array<string> | Filter by SMS status. |
| pre_order_id | query | integer | Filter by pre-order ID. |
| sent_at_gte | query | string (ISO 8601) | Sent on or after this date. |
| sent_at_lte | query | string (ISO 8601) | Sent on or before this date. |
| ordering | query | string | Sort field. Allowed: id, sent_at. Prefix with - for descending. |
Example request
curl -X GET "https://api.notify-me.app/v1/pre-order-notifications/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"count": 123,
"next": "https://api.notify-me.app/v1/pre-order-notifications/?offset=100&limit=100",
"previous": null,
"results": [
{
"id": 12345,
"bundle": "PRE_ORDER",
"sent_at": "2024-01-15T08:00:00Z",
"pre_order_ids": [
100,
101,
102
],
"email": "customer@example.com",
"phone_number": "+15551234567",
"email_stat": {
"status": "DELIVERED"
},
"sms_stat": null
}
]
}
GET /v1/pre-order-notifications/{id}/
Get a sent notification
Retrieve details of a specific pre-order sent notification by ID.
Parameters
| Name | In | Type | Description |
| id required | path | integer | A unique integer value identifying this pre-order sent notification. |
Example request
curl -X GET "https://api.notify-me.app/v1/pre-order-notifications/{id}/" \
-H "X-Api-Key: YOUR_API_KEY"
Example response
{
"id": 12345,
"bundle": "PRE_ORDER",
"sent_at": "2024-01-15T08:00:00Z",
"pre_order_ids": [
100,
101,
102
],
"email": "customer@example.com",
"phone_number": "+15551234567",
"email_stat": {
"status": "DELIVERED"
},
"sms_stat": null
}