Skip to main content
Profiles are the central object in Omneo. This guide covers the core CRUD operations and common patterns for working with profiles programmatically.

Creating a profile

curl -X POST https://api.[tenant].getomneo.com/api/v3/profiles \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane@example.com",
    "mobile_phone": "+61412345678"
  }'
A successful response returns the created profile with its id.

Reading a profile

By Omneo profile ID:
GET /api/v3/profiles/{profileId}
By identity (e.g., Shopify customer ID):
GET /api/v3/profiles/{shopifyCustomerId}?identity[handle]=shopify

Searching profiles

GET /api/v3/profiles?search=jane@example.com
The search endpoint supports name, email, mobile, and other fields. Omneo uses Algolia for instant, typo-tolerant search.

Updating a profile

curl -X PUT https://api.[tenant].getomneo.com/api/v3/profiles/{profileId} \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "birth_day": 15,
    "birth_month": 9,
    "birth_year": 1985
  }'

Syncing profiles (upsert)

The sync endpoint creates a profile if it doesn’t exist, or updates it if it does. It matches on email or mobile phone:
POST /api/v3/profiles/sync
This is the recommended approach for eCommerce integrations where you don’t always know if a profile exists.

Deleting a profile

DELETE /api/v3/profiles/{profileId}
This soft-deletes the profile. For a full GDPR-compliant erasure, use the Purge endpoint:
POST /api/v3/profiles/{profileId}/purge

Bulk import

For large-scale profile imports, use the batch import endpoint or the CSV import tool in CX Manager under the Import Jobs section.
POST /api/v3/profiles/batch
Content needed: field validation rules, error response reference, and bulk import file format specification.