Reaching the site's users: push notifications, newsletters, automations and QR codes.
Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.
28 endpoints in 7 parts: Advertisment, Alert, Automation, Connected Account, Instagram, Push Notification, Push Token.
Creates an ad. Answers 201 with no body.
Needs a site admin token.
curl -X POST 'http://smartman.max-media.io/ads?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"media": "6543210fedcba98765432100",
"alt": "example",
"link": "example-item",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One ad. 404 when there is no such record.
Needs a site admin token.
The ID of the ad.
curl -X GET 'http://smartman.max-media.io/ads/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"media": "6543210fedcba98765432100",
"alt": "example",
"link": "example-item",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Updates an ad. Answers the ad.
Needs a site admin token.
The ID of the ad.
curl -X PATCH 'http://smartman.max-media.io/ads/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"media": "6543210fedcba98765432100",
"alt": "example",
"link": "example-item",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes an ad. Answers the deleted record, or 404. Records that point to it are not changed.
Needs a site admin token.
The ID of the ad.
Returns an empty answer on success.
curl -X DELETE 'http://smartman.max-media.io/ads/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'The alerts. Answers an array of every record.
Needs a site admin token.
Returns a list of Alert objects.
curl -X GET 'http://smartman.max-media.io/alerts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"type": "example",
"heading": "Example",
"message": "example",
"meta_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Creates an alert. Answers 201 with no body.
Needs a site admin token.
curl -X POST 'http://smartman.max-media.io/alerts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
One alert. 404 when there is no such record.
Needs a site admin token.
The ID of the alert.
Returns the Alert object.
curl -X GET 'http://smartman.max-media.io/alerts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"type": "example",
"heading": "Example",
"message": "example",
"meta_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}The automations. Answers an array of every record.
Needs a site admin token.
Returns a list of Automation objects.
curl -X GET 'http://smartman.max-media.io/automations?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"title": "Example",
"webhook_url": "example-item",
"event_type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Creates an automation (a webhook called on an event). Answers 201 with no body.
Needs a site admin token.
Returns the Automation object.
curl -X POST 'http://smartman.max-media.io/automations?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"webhook_url": "example-item",
"event_type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One automation. 404 when there is no such record.
Needs a site admin token.
The ID of the automation.
Returns the Automation object.
curl -X GET 'http://smartman.max-media.io/automations/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"webhook_url": "example-item",
"event_type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Updates an automation. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs a site admin token.
The ID of the automation.
Returns the Automation object.
curl -X PATCH 'http://smartman.max-media.io/automations/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"webhook_url": "example-item",
"event_type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Deletes an automation. Answers the deleted record, or 404. Records that point to it are not changed.
Needs a site admin token.
The ID of the automation.
Returns an empty answer on success.
curl -X DELETE 'http://smartman.max-media.io/automations/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'An example entry of a model and its schema, to map an automation's fields. The newest entry, with its references filled in, shows what an automation's payload looks like.
Needs a site admin token.
The model's model.
curl -X GET 'http://smartman.max-media.io/get-model/{model}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Accounts the signed-in user manages. Answers { connectedAccounts, accounts_that_authorized_me }.
Needs the token of a signed-in user.
Returns a list of ConnectedAccount objects.
curl -X GET 'http://smartman.max-media.io/connected-accounts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}
]The connection to an account the signed-in user manages, by that account. Answers the managed account. 404 when there is no connection.
Needs the token of a signed-in user.
The ID of the connected accounts on behalf of.
curl -X GET 'http://smartman.max-media.io/connected-accounts-by-on-behalf-of/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}The connection that lets a user manage the signed-in user's account. 404 when there is no connection.
Needs the token of a signed-in user.
The ID of the connected accounts on behalf of.
curl -X GET 'http://smartman.max-media.io/connected-accounts-on-behalf-of/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}Accepts or refuses an account connection, and sets what it may do. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs the token of a signed-in user.
The ID of the connected account.
Returns the ConnectedAccount object.
curl -X PATCH 'http://smartman.max-media.io/connected-accounts-status/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}One account connection. 404 when there is no such connection.
Needs the token of a signed-in user.
The ID of the connected account.
Returns the ConnectedAccount object.
curl -X GET 'http://smartman.max-media.io/connected-accounts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}Updates an account connection. Fields outside the allowed list are silently ignored. Answers the updated record, or 404.
Needs the token of a signed-in user.
The ID of the connected account.
Returns the ConnectedAccount object.
curl -X PATCH 'http://smartman.max-media.io/connected-accounts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}Deletes an account connection. Either side can end it. 403 "Unauthorized." for anyone else.
Needs the token of a signed-in user.
The ID of the connected account.
Returns an empty answer on success.
curl -X DELETE 'http://smartman.max-media.io/connected-accounts/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Users who manage the signed-in user's account. Answers an array.
Needs the token of a signed-in user.
Returns a list of ConnectedAccount objects.
curl -X GET 'http://smartman.max-media.io/my-connected-accounts?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"on_behalf_of": "6543210fedcba98765432100",
"user_account": "6543210fedcba98765432100",
"status": "pending",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"is_authorized_to": {
"create_posts": false,
"send_messages": false,
"answer_delete_comments": false,
"access_engagements": false,
"access_boosted_posts": false,
"access_analytics": false,
"alter_profile_settings": false
}
}
]Asks another user (email) for access to manage their account. Answers 201 with the pending connection; the other user accepts it with PATCH /connected-accounts-status/:id.
Needs the token of a signed-in user.
An email address.
curl -X POST 'http://smartman.max-media.io/send-account-connection-request?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "email": "..." }'{
"name": "Example",
"email": "jane@example.com",
"avatar": "6543210fedcba98765432100",
"social_avatar": "example",
"isAdmin": false,
"isStaff": false,
"owner_id": "6543210fedcba98765432100",
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"phone_number": "+359 888 123 456",
"address": "example",
"city": "example",
"state": "example",
"country": "example",
"zip_code": "example",
"tax_identification_number": "example",
"notes": "Text shown on the site.",
"isConfirmed": false,
"number_of_sales": 0,
"stripe_id": "example",
"paypal_id": "example",
"access_level": 1,
"validation_code": "example",
"can_edit": {
"site": false,
"crm": false,
"store": false,
"payments": false,
"staff": false
},
"ip_location": {
"city": "example",
"continent_name": "Example",
"country_name": "Example",
"country_subdivision": "example",
"location_latitude": 0,
"location_longitude": 0,
"last_updated": "example"
}
}Pictures of a public Instagram profile (?profile). Answers { instaMedias, profilePic }. Reads no token.
Public - no token needed.
Only instagrams with this profile.
Only instagrams with this first.
curl -X GET 'http://smartman.max-media.io/get-instagram?ionic=true&profile=...&first=...'
Creates a push notification. 412 when one was sent to the same audience in the last 48 hours. Answers 201.
Needs a site admin token.
The notification's heading.
The notification's text.
Picture shown with it.
The push notification's send to.
Push, system, both.
The push notification's URL slug, as in its address on the site.
Returns the PushNotification object.
curl -X POST 'http://smartman.max-media.io/push-notification?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "title": "...", "body": "...", "image": "...", "sendTo": "...", "type": "..." }'{
"title": "Example",
"body": "Text shown on the site.",
"image": "example",
"send_to": "example",
"type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Get a summary info of push notifications. Answers an array of every record.
Needs a site admin token.
curl -X GET 'http://smartman.max-media.io/push-notification-info?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "example",
"is_admin": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}How long until another push notification may be sent to ?sendTo (one every 48 hours). Answers { text } for the admin to show.
Needs a site admin token.
Only push notifications with this send to.
Returns the PushNotification object.
curl -X GET 'http://smartman.max-media.io/push-notification/timer?ionic=true&sendTo=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"body": "Text shown on the site.",
"image": "example",
"send_to": "example",
"type": "example",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Devices registered for push notifications. Answers an array of every record.
Needs a site admin token.
Returns the PushToken object.
curl -X GET 'http://smartman.max-media.io/push-token?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "example",
"is_admin": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}One registered device. 404 when there is no such record.
Needs a site admin token.
The ID of the push token.
Returns the PushToken object.
curl -X GET 'http://smartman.max-media.io/push-token/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"user": "example",
"is_admin": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}