Overview
The ShopiMind API is a REST API that lets your shop exchange data with the ShopiMind platform in real time: sync your e-commerce data, enrich contact profiles with information from third-party tools, and trigger marketing automation scenarios from any application.
What this API is for
Three primary use cases drive its adoption.
Build a custom e-commerce connector
If your shop runs on a platform that's not covered by the official ShopiMind connectors — proprietary stack, in-house CMS, private marketplace — you can build your own sync layer: push your customers, orders, products, carts and catalogs directly into ShopiMind through dedicated REST endpoints. The resources cover the full e-commerce data model and its relationships.
Enrich profiles with custom data
You can define your own data schemas via Custom data definitions, then push records into them via Custom data records. Those records can come from any third-party tool: ERP, CRM, loyalty platform, internal business application. Once ingested, they become immediately usable inside ShopiMind in segmentation, filters, scenario triggers, and dynamic content in messages.
Trigger automations from external tools
You can declare external event types in ShopiMind, then fire them from any third-party system through an API call. Each emission activates the marketing automation scenarios subscribed to that event — transactional email, follow-up sequence, notification, multi-channel scenario, and so on. This is the recommended path to connect business events (in-store purchase, signed quote, end of subscription, support request, …) to a ShopiMind customer journey.
Customers and contacts
A foundational distinction in the ShopiMind data model:
- A customer is an e-commerce record that you sync from a data source (online shop, physical store, CSV import, popup form, etc.). Multiple customers can coexist for the same person — one per source — and share the same email.
- A contact is the unified profile that groups together all customers tied to the same person. Contacts are never created directly through the API: ShopiMind generates and maintains them automatically as you push customers (matching is based primarily on email and phone number). Contacts are then what feed segmentation, filters, scenario triggers and message sends.
In practice, your integration pushes customers; ShopiMind derives and maintains contacts. The Contacts endpoints in this reference are read-only — they let you query the state of unified profiles on the ShopiMind side.
How the API works
The API follows REST conventions. All requests use JSON in input and output, and must be authenticated with an API key passed in the spm-api-key header on every request.
Base URL
All API requests target: https://core.shopimind.com/v1
Bulk write operations (POST, PUT, bulk-delete) are processed asynchronously. A 200 response means your request has been accepted and queued for processing — not that the change is immediately visible on subsequent reads. Typical processing latency is a few seconds.
HTTP codes
| Code | Meaning |
|---|---|
200 | Success — request accepted (and queued for processing for bulk writes). |
400 | Invalid request — malformed payload, missing parameters, batch size exceeded. |
401 | Missing or invalid authentication. |
403 | Access denied — the API key does not have permission for this operation. |
404 | Resource not found. |
429 | Rate limit reached (see below). |
5XX | Server-side error — contact support if the issue persists. |
Rate limits
The API enforces a limit of 600 requests per minute per API key. Beyond that, requests are answered with a 429. For large imports, prefer the bulkCreate* / bulkUpdate* endpoints (up to 50 or 100 records per call depending on the resource): a single call processes multiple entities, drastically lowering your quota consumption.