Users are the people with an account on the site: customers, staff members who take bookings, and admins. A user signs in with an email and password and gets a token for the API.
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.
100 endpoints in 6 parts: Professional Account, User, User Engagement Notification, User Privilege, User Report, AI builder.
Creates a professional account from the fields sent.
Needs the token of a signed-in user.
Returns the ProfessionalAccount object.
curl -X POST 'http://pendarium.max-media.io/professional-account?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"cover": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"show": {
"services": false,
"staff_members": false,
"blogposts": false,
"programs": false,
"products": false,
"events": false,
"price_plans": false,
"posts": false
}
}Returns the site's professional account pages, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
The professional account page's model.
Only results in this collection.
Only professional account pages with this origin address.
curl -X GET 'http://pendarium.max-media.io/professional-account-pages/{model}?ionic=true&collection=...&origin_address=...'{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}Returns the site's professional accounts, newest first unless a sort is given.
Public - no token needed.
The user - the ID of a user.
Returns a list of ProfessionalAccount objects.
curl -X GET 'http://pendarium.max-media.io/professional-account-preview/{user}?ionic=true'[
{
"user": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"cover": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"show": {
"services": false,
"staff_members": false,
"blogposts": false,
"programs": false,
"products": false,
"events": false,
"price_plans": false,
"posts": false
}
}
]Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The ID of the professional account.
Returns the ProfessionalAccount object.
curl -X PATCH 'http://pendarium.max-media.io/professional-account/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"user": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"cover": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"show": {
"services": false,
"staff_members": false,
"blogposts": false,
"programs": false,
"products": false,
"events": false,
"price_plans": false,
"posts": false
}
}Deletes the professional account. This cannot be undone.
Needs the token of a signed-in user.
The ID of the professional account.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/professional-account/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's professional accounts, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
The user - the ID of a user.
Returns a list of ProfessionalAccount objects.
curl -X GET 'http://pendarium.max-media.io/professional-account/{user}?ionic=true'[
{
"user": "6543210fedcba98765432100",
"reviewed": false,
"approved": false,
"cover": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"show": {
"services": false,
"staff_members": false,
"blogposts": false,
"programs": false,
"products": false,
"events": false,
"price_plans": false,
"posts": false
}
}
]Returns the account confirmation.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://pendarium.max-media.io/account-confirmation?ionic=true'
{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Block a block user.
Needs the token of a signed-in user.
The ID of the block user.
Returns the User object.
curl -X PATCH 'http://pendarium.max-media.io/block-user/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Returns the site's blocked users, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of User objects.
curl -X GET 'http://pendarium.max-media.io/blocked-users?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"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"
}
}
]Returns the site's booking schedule full months, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
A date (YYYY-MM-DD).
curl -X GET 'http://pendarium.max-media.io/booking-schedule-full-month/{date}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"bookable": true,
"expirable": false,
"confirm_bookings": false,
"show_notes": false,
"minutes_delete_bookings": 1,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"price": 49.9,
"online_payment": false,
"book_by_date": false,
"book_date_range": false,
"start_date": "2026-11-04T12:00:00.000Z",
"end_date": "2026-11-04T12:00:00.000Z",
"day_offset": 0,
"is_recurring": false,
"max_participants": 1,
"session_duration": 1,
"time_between_sessions": 0,
"discount": [
{
"days": 1,
"per_total_price": 49.9,
"fixed_price": 49.9,
"per_day": 1,
"_id": "6543210fedcba98765432100"
}
],
"monday": {
"active": false,
"hours": "example"
},
"tuesday": {
"active": false,
"hours": "example"
},
"wednesday": {
"active": false,
"hours": "example"
},
"thursday": {
"active": false,
"hours": "example"
},
"friday": {
"active": false,
"hours": "example"
},
"saturday": {
"active": false
}
}Returns the site's booking schedule months, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
A date (YYYY-MM-DD).
curl -X GET 'http://pendarium.max-media.io/booking-schedule-month/{date}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"bookable": true,
"expirable": false,
"confirm_bookings": false,
"show_notes": false,
"minutes_delete_bookings": 1,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"price": 49.9,
"online_payment": false,
"book_by_date": false,
"book_date_range": false,
"start_date": "2026-11-04T12:00:00.000Z",
"end_date": "2026-11-04T12:00:00.000Z",
"day_offset": 0,
"is_recurring": false,
"max_participants": 1,
"session_duration": 1,
"time_between_sessions": 0,
"discount": [
{
"days": 1,
"per_total_price": 49.9,
"fixed_price": 49.9,
"per_day": 1,
"_id": "6543210fedcba98765432100"
}
],
"monday": {
"active": false,
"hours": "example"
},
"tuesday": {
"active": false,
"hours": "example"
},
"wednesday": {
"active": false,
"hours": "example"
},
"thursday": {
"active": false,
"hours": "example"
},
"friday": {
"active": false,
"hours": "example"
},
"saturday": {
"active": false
}
}Returns the site's booking schedule weeks, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
A date (YYYY-MM-DD).
The booking schedule week's direction.
curl -X GET 'http://pendarium.max-media.io/booking-schedule-week/{date}&{direction}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"bookable": true,
"expirable": false,
"confirm_bookings": false,
"show_notes": false,
"minutes_delete_bookings": 1,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"price": 49.9,
"online_payment": false,
"book_by_date": false,
"book_date_range": false,
"start_date": "2026-11-04T12:00:00.000Z",
"end_date": "2026-11-04T12:00:00.000Z",
"day_offset": 0,
"is_recurring": false,
"max_participants": 1,
"session_duration": 1,
"time_between_sessions": 0,
"discount": [
{
"days": 1,
"per_total_price": 49.9,
"fixed_price": 49.9,
"per_day": 1,
"_id": "6543210fedcba98765432100"
}
],
"monday": {
"active": false,
"hours": "example"
},
"tuesday": {
"active": false,
"hours": "example"
},
"wednesday": {
"active": false,
"hours": "example"
},
"thursday": {
"active": false,
"hours": "example"
},
"friday": {
"active": false,
"hours": "example"
},
"saturday": {
"active": false
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
curl -X PATCH 'http://pendarium.max-media.io/disable-user?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the followers email.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/followers-email?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}
}Generate a 2auth token from a prompt, written by the AI builder.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/generate-2auth-token?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Returns the site's user bookings, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
Only user bookings with this newer than.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/new-user-bookings?ionic=true&newer_than=...' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Returns the password reset.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://pendarium.max-media.io/password-reset?ionic=true'
{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Reset a reset password.
Works without a token; with a user token the answer is personal.
An email address.
The reset password's validation code.
curl -X GET 'http://pendarium.max-media.io/reset-password/{email}&{validation_code}?ionic=true'{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Returns the signup.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://pendarium.max-media.io/signup?ionic=true'
{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Changes the fields sent; the others stay as they are.
Needs a site admin token.
The ID of the staff.
curl -X PATCH 'http://pendarium.max-media.io/staff/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Returns one u, found by its ID.
Works without a token; with a user token the answer is personal.
The u's handle.
curl -X GET 'http://pendarium.max-media.io/u/{handle}?ionic=true'{
"zip_code": "example",
"city": "example",
"address": "example",
"contact": "example",
"email": "jane@example.com",
"google_app": "example",
"workhours": "example",
"logo": "6543210fedcba98765432100",
"site_name": "Example",
"domain": "example",
"stock_domain": "example",
"isMarket": false,
"forbidden_collections": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"isInit": false,
"template": "0000",
"lang": "en",
"favicon": "6543210fedcba98765432100",
"cacheEnabled": false,
"has_completed_startup_prompt": true,
"gmb_location": "example",
"ga_property": "example",
"site_generated_at": "2026-11-04T12:00:00.000Z",
"admin_first_opened_at": "2026-11-04T12:00:00.000Z",
"admin_last_opened_at": "2026-11-04T12:00:00.000Z",
"allowedComponents": {
"services": false,
"products": false,
"blogposts": false,
"programs": false
}
}Deletes the user address. This cannot be undone.
Needs the token of a signed-in user.
The user address's index.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/user-address/{index}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's user ads, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
Only user ads with this handle.
Only user ads with this user.
curl -X GET 'http://pendarium.max-media.io/user-ads?ionic=true&handle=...&user=...'
{
"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"
}
}Returns the site's user attributions, newest first unless a sort is given.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/user-attributions?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"value": 49.9,
"owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the site's user attributions, newest first unless a sort is given.
Needs the token of a signed-in user.
The user attribution's days.
curl -X GET 'http://pendarium.max-media.io/user-attributions/{days}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"value": 49.9,
"owner_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the user blog post.
Works without a token; with a user token the answer is personal.
The ID of the user blog post.
Returns the BlogPost object.
curl -X GET 'http://pendarium.max-media.io/user-blogpost?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"thumbnail": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"collection_id": "6543210fedcba98765432100",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"reference_id": "example",
"wildcard_url": {},
"likes": [
"6543210fedcba98765432101"
],
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"saves": [
"6543210fedcba98765432101"
],
"times_showed": 0
}Returns the user booking.
Works without a token; with a user token the answer is personal.
The ID of the user booking.
Returns the Booking object.
curl -X GET 'http://pendarium.max-media.io/user-booking?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}Search user bookings.
Needs the token of a signed-in user.
The user booking's args.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/user-bookings-search/{args}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Returns the site's user bookings, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
How many results to skip - for paging.
The order of the results.
Only user bookings with this sort order.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/user-bookings/{skip}?ionic=true&sortBy=...&sortOrder=...' \
-H 'Authorization: Bearer <TOKEN>'[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Changes the fields sent; the others stay as they are.
Works without a token; with a user token the answer is personal.
Only user churned bookings with this booking id.
Returns the Booking object.
curl -X PATCH 'http://pendarium.max-media.io/user-churned-booking?ionic=true&booking_id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}Confirm a user booking.
Works without a token; with a user token the answer is personal.
Only user bookings with this booking id.
Returns the Booking object.
curl -X PATCH 'http://pendarium.max-media.io/user-confirm-booking?ionic=true&booking_id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}Returns the user confirmation mail.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/user-confirmation-mail?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Search user confirmed bookings.
Needs the token of a signed-in user.
The user confirmed booking's args.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/user-confirmed-bookings-search/{args}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Returns the site's user confirmed bookings, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
How many results to skip - for paging.
The order of the results.
Only user confirmed bookings with this sort order.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/user-confirmed-bookings/{skip}?ionic=true&sortBy=...&sortOrder=...' \
-H 'Authorization: Bearer <TOKEN>'[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Returns the site's user current bookings, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
The order of the results.
Only user current bookings with this sort order.
Returns a list of Booking objects.
curl -X GET 'http://pendarium.max-media.io/user-current-bookings?ionic=true&sortBy=...&sortOrder=...' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}
]Changes the fields sent; the others stay as they are.
Works without a token; with a user token the answer is personal.
Only user did not answer bookings with this booking id.
Returns the Booking object.
curl -X PATCH 'http://pendarium.max-media.io/user-did-not-answer-booking?ionic=true&booking_id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}Returns the site's user dynamic models, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of DynamicModel objects.
curl -X GET 'http://pendarium.max-media.io/user-dynamic-models?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}
]Returns one user dynamic model, found by its ID.
Needs the token of a signed-in user.
The ID of the user dynamic model.
Returns the DynamicModel object.
curl -X GET 'http://pendarium.max-media.io/user-dynamic-models/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"name": "Example",
"fields": [
{
"name": "Example",
"type": "example",
"required": false,
"default": {},
"patchable": true,
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"depends_on": "example",
"populate": false,
"wysiwyg": false,
"fields": [],
"show_field_in_cms_table": true,
"enumerator_values": [],
"_id": "6543210fedcba98765432100",
"validations": {
"minLength": "example",
"maxLength": "example"
}
}
],
"attach_in": [
{
"ref": "example",
"ref_value_field": "_id",
"ref_text_field": "_id",
"user_input": false,
"_id": "6543210fedcba98765432100"
}
],
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"auth": {
"create": false,
"read": false,
"update": false,
"delete": false
},
"ownership_settings": {
"enable_ownership_identification": false,
"ownership_based_auth": "example",
"profile_use": false
}
}Returns one user follower, found by its ID.
Public - no token needed.
The ID of the user follower.
How many results to skip - for paging.
curl -X GET 'http://pendarium.max-media.io/user-followers/{id}&{skip}?ionic=true'{
"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"
}
}Returns one user following, found by its ID.
Public - no token needed.
The ID of the user following.
How many results to skip - for paging.
curl -X GET 'http://pendarium.max-media.io/user-following/{id}&{skip}?ionic=true'{
"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"
}
}Returns one user handle, found by its ID.
Public - no token needed.
The user handle's handle.
curl -X GET 'http://pendarium.max-media.io/user-handle/{handle}?ionic=true'{
"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"
}
}Returns the user inbox.
Needs the token of a signed-in user.
Only user inboxes with this on behalf of.
curl -X GET 'http://pendarium.max-media.io/user-inbox?ionic=true&on_behalf_of=...' \ -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
}
}Returns the site's user invoices, newest first unless a sort is given.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/user-invoices?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the user lead from booking.
Works without a token; with a user token the answer is personal.
The ID of the user lead from booking.
Returns the Booking object.
curl -X GET 'http://pendarium.max-media.io/user-lead-from-booking?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"date": "example",
"date_iso": "2026-11-04T12:00:00.000Z",
"depart_date": "example",
"depart_date_iso": "2026-11-04T12:00:00.000Z",
"price": 49.9,
"time": "example",
"local_time": "example",
"isLastHour": false,
"organization_name": "Example",
"name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"service_id": "6543210fedcba98765432100",
"staff_member": "6543210fedcba98765432100",
"coupon": "6543210fedcba98765432100"
}Returns one user mention, found by its ID.
Needs the token of a signed-in user.
The user mention's handle.
curl -X GET 'http://pendarium.max-media.io/user-mention/{handle}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Returns the user order.
Works without a token; with a user token the answer is personal.
The ID of the user order.
Returns the Order object.
curl -X GET 'http://pendarium.max-media.io/user-order?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"organization_name": "Example",
"firstname": "Example",
"lastname": "Example",
"email": "jane@example.com",
"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.",
"products": [
"example"
],
"products_obj": [
{
"product_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"programs": [
"example"
],
"programs_obj": [
{
"program_id": "6543210fedcba98765432100",
"title": "Example",
"price": 49.9,
"_id": "6543210fedcba98765432100"
}
],
"tickets": [
"6543210fedcba98765432101"
],
"donations": [
"6543210fedcba98765432101"
],
"donations_obj": [
{
"donation_id": "6543210fedcba98765432100",
"name": "Example",
"options": "example",
"price": 49.9,
"quantity": 1,
"_id": "6543210fedcba98765432100"
}
],
"value": 49.9,
"finalized": false,
"fulfilled": false,
"paid": false,
"delivery_method": "example"
}Returns the site's user payment methods, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
The user payment method's payment method.
curl -X GET 'http://pendarium.max-media.io/user-payment-method/{payment_method}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's user payments, newest first unless a sort is given.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/user-payments?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"owner_id": "6543210fedcba98765432100",
"number": 1,
"price_quote_number": "example",
"bic": "example",
"swift": "example",
"tax_id": "example",
"vat_id": "example",
"logo": "6543210fedcba98765432100",
"business_name": "Example",
"business_name_translated": "Example",
"responsible_official": "example",
"responsible_official_translated": "example",
"business_email": "jane@example.com",
"company_id": "example"
}Returns the user price plan.
Needs the token of a signed-in user.
Returns the PricePlan object.
curl -X GET 'http://pendarium.max-media.io/user-price-plan/?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"description": "Text shown on the site.",
"statement_descriptor": "example",
"plan_features": [
{
"feature_type": "example",
"feature_name": "Example",
"feature_value": "example",
"_id": "6543210fedcba98765432100"
}
],
"price": 49.9,
"link": "example-item",
"image": "6543210fedcba98765432100",
"price_id": "example",
"payment_link_id": "example-item",
"free_trial_days": 0,
"billing_address_collection": "auto",
"owner_id": "6543210fedcba98765432100",
"times_showed": 0,
"views": [
"6543210fedcba98765432101"
],
"total_views": 0,
"disabled": false,
"ribbon": "example",
"linked_plans": [
"6543210fedcba98765432101"
],
"is_hidden": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"recurring_options": {
"interval": "example",
"interval_count": 0
}
}Returns the user product.
Works without a token; with a user token the answer is personal.
The ID of the user product.
Returns the Product object.
curl -X GET 'http://pendarium.max-media.io/user-product?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"name": "Example",
"url": "example-item",
"static_url": "example-item",
"ribbon": "example",
"striked": "example",
"price": 49.9,
"description": "Text shown on the site.",
"product_informations": [
{
"name": "Example",
"description": "Text shown on the site.",
"_id": "6543210fedcba98765432100"
}
],
"product_options": [
{
"name": "Example",
"options": [],
"informations": [],
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"available_for_purchase": true,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"grouping": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"qty": 1,
"origin_address": "example",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"is_digital": false,
"secondary_cta": {
"show": false,
"title": "Example",
"webUrl": "example",
"appUrl": "example"
},
"attached_priceplans": {
"name": "Example",
"priceplans": "example"
}
}Returns the site's user products, newest first unless a sort is given.
Works without a token; with a user token the answer is personal.
Only user products with this user.
Returns a list of Product objects.
curl -X GET 'http://pendarium.max-media.io/user-products?ionic=true&user=...'
[
{
"name": "Example",
"url": "example-item",
"static_url": "example-item",
"ribbon": "example",
"striked": "example",
"price": 49.9,
"description": "Text shown on the site.",
"product_informations": [
{
"name": "Example",
"description": "Text shown on the site.",
"_id": "6543210fedcba98765432100"
}
],
"product_options": [
{
"name": "Example",
"options": [],
"informations": [],
"_id": "6543210fedcba98765432100"
}
],
"published": true,
"available_for_purchase": true,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"grouping": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"qty": 1,
"origin_address": "example",
"selected": false,
"custom_1": "example",
"custom_2": "example",
"custom_3": "example",
"about_page": "6543210fedcba98765432100",
"is_digital": false,
"secondary_cta": {
"show": false,
"title": "Example",
"webUrl": "example",
"appUrl": "example"
},
"attached_priceplans": {
"name": "Example",
"priceplans": "example"
}
}
]Returns the user program.
Works without a token; with a user token the answer is personal.
The ID of the user program.
Returns the Program object.
curl -X GET 'http://pendarium.max-media.io/user-program?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"body": "Text shown on the site.",
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"video": "6543210fedcba98765432100",
"about_page": "6543210fedcba98765432100",
"weeks": [
{
"isCompleted": {},
"progress": {},
"title": "Example",
"days": [],
"_id": "6543210fedcba98765432100"
}
],
"suitability_price_plans": [
"6543210fedcba98765432101"
],
"isSuitable": false,
"price": 0,
"collection_id": "6543210fedcba98765432100",
"topics": [
{
"collection_id": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"ribbon": "example",
"striked": "example",
"isConsistent": false,
"isAcademic": true,
"wildcard_url": {},
"reviewed": false,
"approved": false,
"likes": [
"6543210fedcba98765432101"
],
"popup": {
"title": "Example",
"points": "example"
}
}Returns the user service.
Works without a token; with a user token the answer is personal.
The ID of the user service.
Only user services with this on behalf of.
Returns the Service object.
curl -X GET 'http://pendarium.max-media.io/user-service?ionic=true&id=...&on_behalf_of=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"bookable": true,
"expirable": false,
"confirm_bookings": false,
"show_notes": false,
"minutes_delete_bookings": 1,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"price": 49.9,
"online_payment": false,
"book_by_date": false,
"book_date_range": false,
"start_date": "2026-11-04T12:00:00.000Z",
"end_date": "2026-11-04T12:00:00.000Z",
"day_offset": 0,
"is_recurring": false,
"max_participants": 1,
"session_duration": 1,
"time_between_sessions": 0,
"discount": [
{
"days": 1,
"per_total_price": 49.9,
"fixed_price": 49.9,
"per_day": 1,
"_id": "6543210fedcba98765432100"
}
],
"monday": {
"active": false,
"hours": "example"
},
"tuesday": {
"active": false,
"hours": "example"
},
"wednesday": {
"active": false,
"hours": "example"
},
"thursday": {
"active": false,
"hours": "example"
},
"friday": {
"active": false,
"hours": "example"
},
"saturday": {
"active": false
}
}Returns the site's user services, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of Service objects.
curl -X GET 'http://pendarium.max-media.io/user-services?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"title": "Example",
"url": "example-item",
"static_url": "example-item",
"header": "example",
"description": "Text shown on the site.",
"bookable": true,
"expirable": false,
"confirm_bookings": false,
"show_notes": false,
"minutes_delete_bookings": 1,
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"duration": 1,
"vimeo_uri": "example",
"vimeo_picture": "example",
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"_id": "6543210fedcba98765432100"
}
],
"collection_id": "6543210fedcba98765432100",
"price": 49.9,
"online_payment": false,
"book_by_date": false,
"book_date_range": false,
"start_date": "2026-11-04T12:00:00.000Z",
"end_date": "2026-11-04T12:00:00.000Z",
"day_offset": 0,
"is_recurring": false,
"max_participants": 1,
"session_duration": 1,
"time_between_sessions": 0,
"discount": [
{
"days": 1,
"per_total_price": 49.9,
"fixed_price": 49.9,
"per_day": 1,
"_id": "6543210fedcba98765432100"
}
],
"monday": {
"active": false,
"hours": "example"
},
"tuesday": {
"active": false,
"hours": "example"
},
"wednesday": {
"active": false,
"hours": "example"
},
"thursday": {
"active": false,
"hours": "example"
},
"friday": {
"active": false,
"hours": "example"
},
"saturday": {
"active": false
}
}
]Returns the user shipping.
Works without a token; with a user token the answer is personal.
The ID of the user shipping.
Returns the Shipping object.
curl -X GET 'http://pendarium.max-media.io/user-shipping?ionic=true&id=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"region": "example",
"has_store_pickup": false,
"pickup_title": "Example",
"pickup_address": "example",
"pickup_available": "example",
"pickup_instructions": "example",
"delivery": [
{
"name": "Example",
"estimated_delivery_time": "example",
"fixed_rate": 1,
"rate_per_total": 49.9,
"rate_per_unit": 1,
"has_free_delivery": false,
"free_delivery_requirement": 0,
"delivery_days": 3,
"hasIntegration": true,
"has_time_window": false,
"available_from": "example",
"available_to": "example",
"timezone": "example",
"_id": "6543210fedcba98765432100"
}
],
"owner_id": "6543210fedcba98765432100",
"connected_account_owner_id": "6543210fedcba98765432100",
"min_order_value": 0,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the user staff.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://pendarium.max-media.io/user-staff?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The ID of the user token.
curl -X PATCH 'http://pendarium.max-media.io/user-tokens/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Returns one user, found by its ID.
Needs the token of a signed-in user.
The user's owner id.
The user's validation code.
Returns the User object.
curl -X GET 'http://pendarium.max-media.io/user/add_staff/{owner_id}&{validation_code}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
curl -X PATCH 'http://pendarium.max-media.io/user/me/password?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Deletes the user. This cannot be undone.
Needs a site admin token.
The ID of the user.
Only users with this delete query.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/user/remove_admin/{id}?ionic=true&deleteQuery=...' \
-H 'Authorization: Bearer <TOKEN>'Deletes the user. This cannot be undone.
Needs the token of a signed-in user.
The ID of the user.
Only users with this delete query.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/user/remove_staff/{id}?ionic=true&deleteQuery=...' \
-H 'Authorization: Bearer <TOKEN>'Creates a user from the fields sent.
Works without a token; with a user token the answer is personal.
The user's on behalf of.
An email address.
curl -X POST 'http://pendarium.max-media.io/user/send_staff_email?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "on_behalf_of": "...", "email": "..." }'{
"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
}
}Creates a user from the fields sent.
Public - no token needed.
Returns the User object.
curl -X POST 'http://pendarium.max-media.io/users?ionic=true'
{
"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"
}
}Creates a users admin from the fields sent.
Needs a site admin token.
An email address.
The users admin's name.
The users admin's can edit.
curl -X POST 'http://pendarium.max-media.io/users-admin?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "email": "...", "name": "...", "can_edit": "..." }'{
"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"
}
}Changes the fields sent; the others stay as they are.
Needs a site admin token.
The ID of the user.
Returns the User object.
curl -X PATCH 'http://pendarium.max-media.io/users/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}
}Confirm the user.
Public - no token needed.
An email address.
The user's validation code.
Returns the User object.
curl -X GET 'http://pendarium.max-media.io/users/confirm/{email}&{validation_code}?ionic=true'{
"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"
}
}Returns the user.
Works without a token; with a user token the answer is personal.
curl -X GET 'http://pendarium.max-media.io/users/is-logged?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Sign in.
Public - no token needed.
An email address.
Returns the User object.
curl -X POST 'http://pendarium.max-media.io/users/login?ionic=true' \
-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"
}
}curl -X POST 'http://pendarium.max-media.io/users/logout?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the user.
Works without a token; with a user token the answer is personal.
Only users with this skip transactions check.
Returns the User object.
curl -X GET 'http://pendarium.max-media.io/users/me?ionic=true&skip_transactions_check=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
The user's saved products.
The user's saved programs.
The user's saved blog posts.
The user's saved services.
curl -X PATCH 'http://pendarium.max-media.io/users/me?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "saved_products": "...", "saved_programs": "...", "saved_blogposts": "...", "saved_services": "..." }'Deletes the users. This cannot be undone.
Needs the token of a signed-in user.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/users/me?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the user.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/users/me/avatar?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"file": "example",
"file_path": "example",
"alt": "example",
"filename": "Example",
"filetype": "example",
"vimeo_uri": "example",
"vimeo_picture": "example",
"duration": 1,
"vimeo_url": "example-item",
"youtube_url": "example-item",
"youtube_picture": "example",
"thumbnail": "example",
"gcs_url": "example-item",
"gcs_480_30_url": "example-item",
"gcs_720_30_url": "example-item",
"gcs_1080_30_url": "example-item",
"picture_gcs_url": "example-item",
"transcode_status": "not_started",
"owner_id": "6543210fedcba98765432100",
"source_url": "example-item",
"origin": "example",
"width": 1,
"height": 1,
"_id": "6543210fedcba98765432100",
"sequence": {
"status": "example",
"started_at": "example",
"updated_at": "example",
"step": "example",
"done": 0,
"total": 0,
"ext": "example",
"trim_start": 0,
"trim_end": 0,
"build_id": "example",
"previous_base": "example",
"frame_count": 0
}
}Creates a user from the fields sent.
Needs the token of a signed-in user.
curl -X POST 'http://pendarium.max-media.io/users/me/avatar?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Deletes the users. This cannot be undone.
Needs the token of a signed-in user.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/users/me/avatar?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the user.
Needs the token of a signed-in user.
curl -X GET 'http://pendarium.max-media.io/users/me/delete?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns the user.
Works without a token; with a user token the answer is personal.
Only users with this skip transactions check.
curl -X GET 'http://pendarium.max-media.io/users/me/transactions?ionic=true&skip_transactions_check=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"has_cash": false,
"cash_locale": "Pay by cash",
"cash_instructions": "example",
"cash_increase": 0,
"has_card": false,
"card_locale": "Pay with credit card",
"email": "jane@example.com",
"country": "example",
"has_invoicing": false,
"invoice_locale": "Pay via invoice",
"invoicing_instructions": "example",
"currency": "EUR",
"agreedToTerms": false,
"agreedToTermsAt": "example",
"merchant_id": "example",
"has_paypal": false,
"paypal_increase": 0,
"paypal_id": "example",
"lock_currency": false,
"commission_percentage": 4.4,
"two_currencies": false,
"second_currency": "EUR",
"calculate_rate": false,
"currency_rate": 1
}Returns the user.
Works without a token; with a user token the answer is personal.
Only users with this on behalf of.
Only users with this skip transactions check.
Returns the User object.
curl -X GET 'http://pendarium.max-media.io/users/on-behalf-of?ionic=true&on_behalf_of=...&skip_transactions_check=...' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}
}Returns the site's users, newest first unless a sort is given.
Public - no token needed.
An email address.
Returns a list of User objects.
curl -X GET 'http://pendarium.max-media.io/users/send-password-reset/{email}?ionic=true'[
{
"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"
}
}
]Verify a token.
Needs the token of a signed-in user.
curl -X PATCH 'http://pendarium.max-media.io/verify-token?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}
}Returns the site's user engagement notifications, newest first unless a sort is given.
Needs the token of a signed-in user.
The user engagement notification's users.
Returns a list of UserEngagementNotification objects.
curl -X GET 'http://pendarium.max-media.io/latest-user-engagement-notifications/{users}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Returns the site's user engagement notifications, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of UserEngagementNotification objects.
curl -X GET 'http://pendarium.max-media.io/new-user-engagement-notifications?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
curl -X PATCH 'http://pendarium.max-media.io/seen-my-message-notification?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Changes the fields sent; the others stay as they are.
Needs the token of a signed-in user.
curl -X PATCH 'http://pendarium.max-media.io/seen-my-notifications?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the site's system user engagement notifications, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of UserEngagementNotification objects.
curl -X GET 'http://pendarium.max-media.io/system-user-engagement-notifications?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Returns the site's user engagement notifications, newest first unless a sort is given.
Needs the token of a signed-in user.
Returns a list of UserEngagementNotification objects.
curl -X GET 'http://pendarium.max-media.io/user-engagement-notifications?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Returns the site's user engagement notifications, newest first unless a sort is given.
Needs the token of a signed-in user.
How many results to skip - for paging.
The user engagement notification's users.
Returns a list of UserEngagementNotification objects.
curl -X GET 'http://pendarium.max-media.io/user-engagement-notifications/{skip}&{users}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"type": "example",
"title": "Example",
"body": "Text shown on the site.",
"owner_id": "6543210fedcba98765432100",
"from": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"group": "6543210fedcba98765432100",
"sendToAll": false,
"comment": "6543210fedcba98765432100",
"is_received": false,
"is_seen": false,
"url": "example-item",
"image": "example",
"service": "6543210fedcba98765432100",
"product": "6543210fedcba98765432100",
"blogpost": "6543210fedcba98765432100",
"program": "6543210fedcba98765432100",
"booking": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Returns the site's user privileges, newest first unless a sort is given.
Public - no token needed.
curl -X GET 'http://pendarium.max-media.io/user-privileges?ionic=true'
Create new user_privilege.
Needs a site admin token.
curl -X POST 'http://pendarium.max-media.io/user-privileges?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Returns one user privilege, found by its ID.
Public - no token needed.
The ID of the user privilege.
curl -X GET 'http://pendarium.max-media.io/user-privileges/{id}?ionic=true'Update UserPrivilege by id.
Needs a site admin token.
The ID of the user privilege.
curl -X PATCH 'http://pendarium.max-media.io/user-privileges/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Delete UserPrivilege record by id.
Needs a site admin token.
The ID of the user privilege.
Returns an empty answer on success.
curl -X DELETE 'http://pendarium.max-media.io/user-privileges/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Returns the site's mini app reports, newest first unless a sort is given.
Needs the token of a signed-in user.
How many results to skip - for paging.
curl -X GET 'http://pendarium.max-media.io/mini-app-reports/{skip}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"user": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"reason": "example",
"reported_user": "6543210fedcba98765432100",
"comment": "6543210fedcba98765432100",
"reply": "6543210fedcba98765432100",
"seen": false,
"miniApp": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Create new UserReport.
Needs the token of a signed-in user.
Returns the UserReport object.
curl -X POST 'http://pendarium.max-media.io/user-report?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"user": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"reason": "example",
"reported_user": "6543210fedcba98765432100",
"comment": "6543210fedcba98765432100",
"reply": "6543210fedcba98765432100",
"seen": false,
"miniApp": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Update UserReport by id.
Needs the token of a signed-in user.
The ID of the user report.
Returns the UserReport object.
curl -X PATCH 'http://pendarium.max-media.io/user-report/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"user": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"reason": "example",
"reported_user": "6543210fedcba98765432100",
"comment": "6543210fedcba98765432100",
"reply": "6543210fedcba98765432100",
"seen": false,
"miniApp": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}Returns the site's user reports, newest first unless a sort is given.
Needs the token of a signed-in user.
How many results to skip - for paging.
How many results to return.
Returns a list of UserReport objects.
curl -X GET 'http://pendarium.max-media.io/user-reports/{skip}&{limit}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'[
{
"user": "6543210fedcba98765432100",
"post": "6543210fedcba98765432100",
"reason": "example",
"reported_user": "6543210fedcba98765432100",
"comment": "6543210fedcba98765432100",
"reply": "6543210fedcba98765432100",
"seen": false,
"miniApp": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z"
}
]Create a staff member from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the staff member, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
The ID of the staff member to change.
curl -X POST 'http://pendarium.max-media.io/create-staff-member?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'{
"chat_id": "6543210fedcba98765432100",
"role": "user",
"text": "Text shown on the site.",
"target_url": "example-item",
"action": "RESPONSE",
"options": [
"example"
],
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gemini_uri": "example",
"gemini_interaction_id": "example",
"_id": "6543210fedcba98765432100"
}
],
"products": [
"6543210fedcba98765432101"
],
"services": [
"6543210fedcba98765432101"
],
"blogposts": [
"6543210fedcba98765432101"
],
"programs": [
"6543210fedcba98765432101"
],
"suggestions": [
{
"text": "Text shown on the site.",
"route": "example",
"item_id": "6543210fedcba98765432100",
"medias": [],
"picture": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"is_system": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data": {
"object": "example",
"object_type": "example",
"edit_summary": "example",
"edit_diff": "example",
"undo_record": "example",
"hero_animation_offer": "example",
"preview_state": "example",
"pending_credit_cost": 0,
"target_restore": "example",
"media_request": "example",
"item_request": "example",
"reference_request": "example"
}
}Create a staff schedule from a prompt, written by the AI builder.
Needs the token of a signed-in user.
What the AI should do with the staff schedule, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
Which version of the AI builder to use; leave it out for the current one.
The ID of the staff schedule to change.
curl -X POST 'http://pendarium.max-media.io/create-staff-schedule?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'{
"chat_id": "6543210fedcba98765432100",
"role": "user",
"text": "Text shown on the site.",
"target_url": "example-item",
"action": "RESPONSE",
"options": [
"example"
],
"medias": [
{
"media": "6543210fedcba98765432100",
"gcs_url": "example-item",
"gemini_uri": "example",
"gemini_interaction_id": "example",
"_id": "6543210fedcba98765432100"
}
],
"products": [
"6543210fedcba98765432101"
],
"services": [
"6543210fedcba98765432101"
],
"blogposts": [
"6543210fedcba98765432101"
],
"programs": [
"6543210fedcba98765432101"
],
"suggestions": [
{
"text": "Text shown on the site.",
"route": "example",
"item_id": "6543210fedcba98765432100",
"medias": [],
"picture": "6543210fedcba98765432100",
"_id": "6543210fedcba98765432100"
}
],
"is_system": false,
"_id": "6543210fedcba98765432100",
"updatedAt": "2026-11-04T12:00:00.000Z",
"createdAt": "2026-11-04T12:00:00.000Z",
"data": {
"object": "example",
"object_type": "example",
"edit_summary": "example",
"edit_diff": "example",
"undo_record": "example",
"hero_animation_offer": "example",
"preview_state": "example",
"pending_credit_cost": 0,
"target_restore": "example",
"media_request": "example",
"item_request": "example",
"reference_request": "example"
}
}Use it to create a new staff member or team member account.
Needs the token of a signed-in user.
What the AI should do with the staff, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://pendarium.max-media.io/generate-staff?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'Use it to lock or block time slots in a staff member's schedule.
Needs the token of a signed-in user.
What the AI should do with the staff schedule, in plain words - any language.
The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
curl -X POST 'http://pendarium.max-media.io/generate-staff-schedule?ionic=true' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{ "prompt": "...", "chatId": "..." }'