Safe Bulk API reference
Base URL
The API is served from the Worker’s application origin under the/api prefix. All authenticated endpoints require a Shopify App Bridge bearer token in the Authorization header.
Health check
{"ok":true,"app":"safe-bulk","commit":"...","billingConfigured":true}
Onboarding
{}. Returns admin status and next route.
Setup
Create a product change set, Run a change with undo protection, and Enable a recurring playbook), each step’s completion and blocked state, and the next unblocked step key. This checklist is separate from the Setup page, which covers the workspace and first administrator, subscription access, and an initial reviewed change set. Administrators also receive a canManageSetup flag.
{}. Dismisses setup for the current installation.
UI context
Dashboard
Projects
project:create action. Body:
entityType accepts: products, customers, companies, metafields, metaobjects.
project:archive action.
CSV imports
csv:import action. Body:
jobId, changeSetId, and status: "queued". Supports Idempotency-Key header. Limits enforced: plan byte and row ceilings.
Change sets
limit max 5,000.
change-set:approve action. Body:
decision is approved or rejected. Returns updated change set and all approvals.
change-set:execute action. Supports Idempotency-Key.
change-set:rollback action. Supports Idempotency-Key.
change-set:ai-review action. Samples up to 200 items.
Playbooks
playbook:vendor-price-adjustment:create action.
percent range: -90 to 500.
playbook:metafield-backfill:create action.
playbook:tag-governance:create action.
action is add or remove.
playbook:run action. Returns a new change set.
Jobs
Staff roles
staff-role:manage action.
staff-role:manage action.
operator, approver, executor, admin.
Privacy exports
privacy-export:read action.
privacy-export:read action.
Billing
Billing routes are under the/billing prefix:
POST /billing/change and POST /billing/subscribe accept {"plan": "standard"} or {"plan": "growth"}. These redirect to Shopify’s billing confirmation page.
Webhooks
The app registers these Shopify webhook topics:app/uninstalled— clears credentials for the matching install generationapp_subscriptions/update— projects subscription state intoshopscustomers/data_request— creates an encrypted customer data exportcustomers/redact— purges customer-linked datashop/redact— deletes shop data after uninstall
[webhooks.privacy_compliance] configuration.
Pcnaid Documentation › Shopify Ecosystem › Pcnaid Safe Bulk