Store managers API
REST endpoints for store managers in SKUFlow: 6 operations with parameters, request and response fields, permissions and curl examples.
Base URL: https://app.skuflow.ai/api. Every call needs Authorization: Bearer skf_… (Authentication); {organizationId} ($ORGANIZATION_ID in the examples) is your business's id.
| Operation | Endpoint | Risk |
|---|---|---|
| A store's managers | GET /organizations/{organizationId}/stores/{storeId}/managers | read |
| Make someone a store manager | POST /organizations/{organizationId}/stores/{storeId}/managers | sensitive |
| Rename a store manager | PATCH /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId} | write |
| Remove a store manager | DELETE /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId} | sensitive |
| Sign a store manager out everywhere | POST /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}/sign-out | sensitive |
| Email a store manager how to sign in | POST /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}/send-sign-in | sensitive |
A store's managers
GET /organizations/{organizationId}/stores/{storeId}/managers
The people of the store's customer who manage it on the store's own site (sign-in address signInUrl, the store's address + /manage): email, name, when they last signed in and devices signed in now. canAdd is false until the store is for a customer. Read-only.
| Permission | stores.read (Owner, Admin, Staff, Member) |
| Risk | read, OAuth scope skuflow.read. Read: reads only. |
| MCP tool | storeManagers_list (toolset stores) |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
Example
curl "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers" \
-H "Authorization: Bearer $SKUFLOW_API_KEY"Response
200: the answer's fields
| Field | Type | Description |
|---|---|---|
items | array of object | |
items[].id | string | |
items[].email | string | |
items[].name | string or null | |
items[].lastSignedInAt | string (date-time) or null | |
items[].createdAt | string (date-time) | |
items[].signedInDevices | integer | Devices signed in now. |
signInUrl | string | |
canAdd | boolean |
Make someone a store manager
POST /organizations/{organizationId}/stores/{storeId}/managers
Grants access: the person (by email) can sign in on the store's own site with a code sent to that email and manage it: show, hide, arrange and add the items prepared for the store's customer (their customer products), see and export the store's orders, change its banner, welcome text, logo, contact and categories, its shoppers (password, email domains, invites, allowance) and open or close it; in an AFFILIATE store also make their own items and set selling prices (never below the base). They take no seat and see nothing else of the business. The store must be for a customer (409 otherwise); up to 10 managers; the same email once (409). Send them the sign-in link with POST …/managers/{storeManagerId}/send-sign-in.
| Permission | stores.manage (Owner, Admin, Staff) |
| Risk | sensitive, OAuth scope skuflow.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access. |
| MCP tool | storeManagers_add (toolset stores) |
| Plan | Online stores: the Grow plan and up. |
| Approval | Waits for your approval in SKUFlow when called with an API key or a connected app: the first call answers 428 APPROVAL_REQUIRED; once you approve it, repeat the call with the X-SKUFlow-Approval header. See Approvals. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | The address sign-in codes go to. Up to 254 characters. |
name | string or null | No | Up to 200 characters. |
Example
curl -X POST "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers" \
-H "Authorization: Bearer $SKUFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"dana@example.com"}'Response
201: the answer's fields
| Field | Type | Description |
|---|---|---|
manager | object | |
manager.id | string | |
manager.email | string | |
manager.name | string or null | |
manager.lastSignedInAt | string (date-time) or null | |
manager.createdAt | string (date-time) | |
manager.signedInDevices | integer | Devices signed in now. |
signInUrl | string |
Rename a store manager
PATCH /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}
Changes the manager's name (their email is their sign-in: remove and add them again to change it).
| Permission | stores.manage (Owner, Admin, Staff) |
| Risk | write, OAuth scope skuflow.write. Write: creates or changes records inside the business; nothing leaves it. |
| MCP tool | storeManagers_update (toolset stores) |
| Plan | Online stores: the Grow plan and up. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
storeManagerId | path | string | Yes | The store manager (GET /stores/{storeId}/managers). |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string or null | Yes | Up to 200 characters. |
Example
curl -X PATCH "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers/{storeManagerId}" \
-H "Authorization: Bearer $SKUFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Dana Whitfield"}'Response
200: the answer's fields
| Field | Type | Description |
|---|---|---|
id | string | |
email | string | |
name | string or null | |
lastSignedInAt | string (date-time) or null | |
createdAt | string (date-time) | |
signedInDevices | integer | Devices signed in now. |
Remove a store manager
DELETE /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}
Revokes access: the person can no longer sign in on the store's site; their sessions end at once. Items an affiliate made stay in the store.
| Permission | stores.manage (Owner, Admin, Staff) |
| Risk | sensitive, OAuth scope skuflow.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access. |
| MCP tool | storeManagers_remove (toolset stores) |
| Approval | Over MCP, this tool always waits for your approval in SKUFlow. See Approvals. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
storeManagerId | path | string | Yes | The store manager (GET /stores/{storeId}/managers). |
Example
curl -X DELETE "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers/{storeManagerId}" \
-H "Authorization: Bearer $SKUFLOW_API_KEY"Response
200: the answer's fields
| Field | Type | Description |
|---|---|---|
deleted | true |
Sign a store manager out everywhere
POST /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}/sign-out
Revokes access: ends every session of this manager (they can sign in again with a new code).
| Permission | stores.manage (Owner, Admin, Staff) |
| Risk | sensitive, OAuth scope skuflow.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access. |
| MCP tool | storeManagers_signOut (toolset stores) |
| Approval | Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in SKUFlow). See Approvals. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
storeManagerId | path | string | Yes | The store manager (GET /stores/{storeId}/managers). |
Example
curl -X POST "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers/{storeManagerId}/sign-out" \
-H "Authorization: Bearer $SKUFLOW_API_KEY"Response
200: the answer's fields
| Field | Type | Description |
|---|---|---|
revoked | integer |
Email a store manager how to sign in
POST /organizations/{organizationId}/stores/{storeId}/managers/{storeManagerId}/send-sign-in
SENDS AN EMAIL to the manager (through the business's email, as a transactional message): they manage the store and sign in at its address + /manage with their email (a code comes then; nothing secret is in this email). At most one a minute per manager.
| Permission | stores.manage (Owner, Admin, Staff) |
| Risk | sensitive, OAuth scope skuflow.sensitive. Sensitive: moves money, deletes, sends or shows something to a customer, or grants or revokes access. |
| MCP tool | storeManagers_sendSignIn (toolset stores) |
| Plan | Online stores: the Grow plan and up. |
| Approval | Over MCP, this tool asks for your OK first (in the AI app when it supports it, otherwise in SKUFlow). See Approvals. |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
storeId | path | string | Yes | The store (GET /stores). |
storeManagerId | path | string | Yes | The store manager (GET /stores/{storeId}/managers). |
Example
curl -X POST "https://app.skuflow.ai/api/organizations/$ORGANIZATION_ID/stores/{storeId}/managers/{storeManagerId}/send-sign-in" \
-H "Authorization: Bearer $SKUFLOW_API_KEY"Response
200: the answer's fields
| Field | Type | Description |
|---|---|---|
signInUrl | string | |
status | string | The message's status (SENT, SENT_TEST, SKIPPED…). |