SubblySubbly
Log inGet started
  • Get started
  • Developer resources
Private API reference
Docs
Information
    Base URLAuthenticationPaginationErrors
Customer
    Get list of customersCreate a customerGet customer by IDUpdate a customerDelete a customerChange a customer's store credit balanceCreate a customer noteUpdate a customer noteDelete a customer note
Address
    Create an addressUpdate an addressDelete an address
Pickup Info
    Get list of pickup infoCreate pickup infoUpdate pickup infoDelete pickup info
Subscription
    Get list of subscriptionsCreate a subscriptionGet subscription by IDUpdate a subscriptionCancel a subscriptionUndo cancellationPause a subscriptionResume a subscriptionSkip renewals until a dateReactivate a cancelled or expired subscriptionSwitch the subscription to another plan by starting overChange the plans of the subscription's itemsUpdate a subscription's shipping address and methodUpdate a subscription's payment methodUpdate a subscription's survey preferencesCreate a subscription itemShow a subscription itemUpdate a subscription itemRemove a subscription itemUpdate a subscription item's preferencesUpdate a subscription item's bundleChange the plan of a subscription itemChange the variant of a one-time itemApply a discount to a subscription itemRemove a subscription item discountApply a discount to a subscriptionRemove a subscription discount
Invoice
    Get list of invoicesGet invoice by IDSchedule the next payment for invoiceVoid an invoiceForgive an invoiceMark an invoice as paid
Order
    Get list of ordersGet order by IDUpdate an orderShip an orderCancel an orderMark an order as pendingArchive an orderMark an order as a future shipmentSync order shipping items
Payment Method
    Create a payment methodGet payment method by IDDelete a payment method
Transaction
    Get list of transactionsGet transaction by ID
Cancellation
    Get shop cancellation reasons
Product
    Get list of productsGet product by IDGet variant by IDUpdate variantGet plan by IDUpdate planCreate subscription productUpdate subscription productPublish subscription productUnpublish subscription productArchive subscription productSync subscription product metadataCreate one-time productUpdate one-time productPublish one-time productUnpublish one-time productArchive one-time productSync one-time product metadataCreate variantArchive variantBatch create/update/archive variantsCreate planArchive plan
Survey
    Get survey by IDGet list of surveys
Bundle
    Get list of bundlesCreate a new bundleGet bundle by IDUpdate a bundleGet list of bundle itemsCreate a bundle itemBatch create bundle itemsGet bundle item by IDUpdate a bundle itemDelete a bundle itemGet list of bundle groupsPublish a bundleUnpublish a bundleArchive a bundleSync bundle metadataCreate a bundle planGet bundle plan by IDUpdate a bundle planArchive a bundle plan
Tag
    Get list of tags
Metafield
    Get shop's metafieldsCreate a new metadataUpdate the metadata
Funnel
    Get list of funnelsGet funnel by ID
Option
    Get list of options
Country
    Get list of countries
Inventory
    Get list of inventory itemsCreate a new inventory itemGet inventory item by IDUpdate an inventory itemArchive an inventory itemGet list of inventory groupsCreate a new inventory groupGet inventory group by IDUpdate an inventory group
Coupon
    Get list of couponsCreate a couponGet coupon by IDUpdate a couponArchive a coupon
Product Collection
    Get list of product collectionsCreate a product collectionGet product collection by IDUpdate a product collectionPublish a product collectionUnpublish a product collectionArchive a product collectionGet list of collection groups with itemsSync collection items
Webhook
    Get list of webhook endpointsCreate a webhook endpointGet webhook delivery statisticsGet a webhook endpointUpdate a webhook endpointDelete a webhook endpointRotate the signing secretSend a test eventGet webhook deliveriesGet a delivery with its attemptsRetry a delivery manuallyGet the webhook event logGet one event with its deliveries across endpointsGet the catalogue of subscribable event types
Email Unsubscribe
    Unsubscribe an email address from marketing mail
Team Member
    Get list of team membersAdd a team memberGet team member by IDUpdate a team memberRemove a team member

Team Member

Private Team Member API endpoints

Endpoints
  • GET/team/members
  • POST/team/members
  • GET/team/members/{team_member_id}
  • PATCH/team/members/{team_member_id}
  • DELETE/team/members/{team_member_id}

Get list of team members

GET /team/members

List the people who can log into the shop's Subbly admin, ordered by ID. The shop owner is not a team member and is never listed. A member Subbly has banned is listed with active: false.

Query parameters

pageoptionalinteger

Page number

per_pageoptionalinteger

Items per page

Defaults to 10.

Returnsobject

Team members list response

Error responses

422object

The page or per_page query parameter failed validation.

curl https://api.subbly.co/private/v1/team/members \ -H 'X-API-KEY: <api-key>'
Response
{ "pagination": { "current_page": 1, "last_page": 2, "from": 1, "to": 1, "total": 20 }, "data": [ { "id": 812, "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "phone": "+447911123456", "role": "customer_support", "active": true, "created_at": "2026-10-01T14:03:00.000000Z" } ] }

Add a team member

POST /team/members

Add a person to the shop's team with one role. The plan limits the seats, the owner included, and the roles. The password is emailed to the member, the sent one or one Subbly generates when it is omitted, and is never returned. An email that belongs to an account in no team, such as a removed member or a customer of this shop, reuses that account and overwrites its name, phone and password.

Request body

emailRequiredstring

Stored in lower case. It must not belong to another account, unless that account is in no team, owns no shop, is not banned and is a customer of no other shop (a removed member or a customer of this shop); that account is then reused.

Format: email.

first_nameRequiredstring
last_nameRequiredstring
roleRequiredstring

One of the roles the shop's plan offers.

Possible values: admin, analyst, customer_support, customer_support_manager, designer.

phoneoptionalstring | null

A valid number in international format, with a leading +. Required while team two-factor authentication is on, because members get their login codes by SMS.

passwordoptionalstring

Emailed to the member with their username. When it is omitted, Subbly generates one and emails that instead.

ReturnsTeamMember

Team member object response

Error responses

400object

Every seat of the plan is taken. The seats count the shop's active users, the owner included.

422object

Validation failed, for example the email is invalid or belongs to another account, the role is not on the shop's plan, or the phone is missing while team two-factor authentication is on.

curl -X POST https://api.subbly.co/private/v1/team/members \ -H 'X-API-KEY: <api-key>' \ -H 'Content-Type: application/json' \ -d '{ "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "role": "customer_support", "phone": "+447911123456", "password": "N3wSecret!" }'
Response
{ "id": 812, "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "phone": "+447911123456", "role": "customer_support", "active": true, "created_at": "2026-10-01T14:03:00.000000Z" }

Get team member by ID

GET /team/members/{team_member_id}

A member of the shop's team. The owner's ID, a removed member and any other account answer 404.

Path parameters

team_member_idRequiredinteger

Team member ID (the ID of their user account)

ReturnsTeamMember

Team member object response

Error responses

404object

The ID is not a member of this shop's team.

curl https://api.subbly.co/private/v1/team/members/{team_member_id} \ -H 'X-API-KEY: <api-key>'
Response
{ "id": 812, "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "phone": "+447911123456", "role": "customer_support", "active": true, "created_at": "2026-10-01T14:03:00.000000Z" }

Update a team member

PATCH /team/members/{team_member_id}

Partially update a team member: only the keys present in the body change. A role change keeps created_at. A sent password is emailed to the member and is never returned.

Path parameters

team_member_idRequiredinteger

Team member ID (the ID of their user account)

Request body

emailoptionalstring

Stored in lower case. It must not belong to any other account.

Format: email.

first_nameoptionalstring
last_nameoptionalstring
roleoptionalstring

One of the roles the shop's plan offers. The member keeps their created_at.

Possible values: admin, analyst, customer_support, customer_support_manager, designer.

phoneoptionalstring | null

A valid number in international format, with a leading +, or null to clear it. null is refused while team two-factor authentication is on.

passwordoptionalstring

The member's new password, emailed to them. It is never returned and cannot be null.

ReturnsTeamMember

Team member object response

Error responses

404object

The ID is not a member of this shop's team.

422object

Validation failed, for example the email is invalid or belongs to another account, the role is not on the shop's plan, or phone is null while team two-factor authentication is on.

curl -X PATCH https://api.subbly.co/private/v1/team/members/{team_member_id} \ -H 'X-API-KEY: <api-key>' \ -H 'Content-Type: application/json' \ -d '{ "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "role": "designer", "phone": "+447911123456", "password": "N3wSecret!" }'
Response
{ "id": 812, "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "phone": "+447911123456", "role": "customer_support", "active": true, "created_at": "2026-10-01T14:03:00.000000Z" }

Remove a team member

DELETE /team/members/{team_member_id}

Remove the person from the shop's team and return the member as it was. Their user account is kept, since it may also be a customer account, and the email can be added to the team again later.

Path parameters

team_member_idRequiredinteger

Team member ID (the ID of their user account)

ReturnsTeamMember

The removed team member, serialised as it was just before the removal.

Error responses

404object

The ID is not a member of this shop's team.

curl -X DELETE https://api.subbly.co/private/v1/team/members/{team_member_id} \ -H 'X-API-KEY: <api-key>'
Response
{ "id": 812, "email": "jane@example.com", "first_name": "Jane", "last_name": "Doe", "phone": "+447911123456", "role": "customer_support", "active": true, "created_at": "2026-10-01T14:03:00.000000Z" }
paginationobject
dataTeamMember[]
idinteger

The ID of the member's user account.

emailstring

Format: email.

first_namestring
last_namestring
phonestring | null

Can be null while team two-factor authentication is off.

rolestring | null

Possible values: admin, analyst, customer_support, customer_support_manager, designer, null.

activeboolean

false when Subbly has banned the account. A banned member does not take a seat.

created_atstring | null

When the person joined this team, not when their account was created.

Format: date-time.

idinteger

The ID of the member's user account.

emailstring

Format: email.

first_namestring
last_namestring
phonestring | null

Can be null while team two-factor authentication is off.

rolestring | null

Possible values: admin, analyst, customer_support, customer_support_manager, designer, null.

activeboolean

false when Subbly has banned the account. A banned member does not take a seat.

created_atstring | null

When the person joined this team, not when their account was created.

Format: date-time.

idinteger

The ID of the member's user account.

emailstring

Format: email.

first_namestring
last_namestring
phonestring | null

Can be null while team two-factor authentication is off.

rolestring | null

Possible values: admin, analyst, customer_support, customer_support_manager, designer, null.

activeboolean

false when Subbly has banned the account. A banned member does not take a seat.

created_atstring | null

When the person joined this team, not when their account was created.

Format: date-time.

idinteger

The ID of the member's user account.

emailstring

Format: email.

first_namestring
last_namestring
phonestring | null

Can be null while team two-factor authentication is off.

rolestring | null

Possible values: admin, analyst, customer_support, customer_support_manager, designer, null.

activeboolean

false when Subbly has banned the account. A banned member does not take a seat.

created_atstring | null

When the person joined this team, not when their account was created.

Format: date-time.