Engage API

Metorik offers a JSON API for managing your Profiles and your unsubscribe list in Engage.


Authentication

To start, get your API token in the Engage settings here. Only admins can access the token.

You will need to include this token when making requests by adding a header with the key X-Metorik-Token and the token as the value.

Important: Your API token is sensitive and should never be shared. You should only make server requests using it so it's not exposed.


Unsubscribes

Endpoints

GET https://app.metorik.com/api/v1/store/engage/unsubscribes

List of unsubscribed emails: 100 unsubscribes are returned per page. You can pass a page parameter to go to the next page.

GET https://app.metorik.com/api/v1/store/engage/unsubscribe-status

Check the unsubscribe status of a single email: Pass an email through the email parameter and you will get a boolean response telling you if the email is currently unsubscribed in Metorik Engage.

POST https://app.metorik.com/api/v1/store/engage/unsubscribes

Unsubscribe or update an unsubscribed email: Pass an email to be unsubscribed through the email parameter. You can also provide a short reason through the reason parameter.

DELETE https://app.metorik.com/api/v1/store/engage/unsubscribes

Delete an unsubscribed email: Pass an email through the email parameter. If a matching unsubscribed email is found, it will be deleted in Metorik. The given email will then be able to receive Engage emails.


Profiles

Profiles is currently in Beta. If you can't see it in your Metorik app and would like to try it, just email help@metorik.com and let us know :)

You can add and delete profiles using the Engage API.

Endpoints

POST https://app.metorik.com/api/v1/store/engage/profiles


For the request to be valid, you must at least pass a valid email address.

If no matching profile/customer by email is found, we will create a new profile.

If a matching profile by email is found, we will update the profile with any other details provided.

Note: If you try to update an existing customer by email that originally came from your WooCommerce or Shopify store, we will not update the name/country/company fields. Only the consent field may be updated.

Available fields are:

Field Name Type Required Description
email string Y Email address of profile. Must be unique.
first_name string N First name of profile.
last_name string N Last name of profile.
country string N Country of profile. Can be either full country name or 2 digit code: 'Australia' or 'AU'.
company string N Company/organization of profile.
consent string N Consent level of profile. Pass through either 'single' or 'double'. For no status, leave empty.
curl -X POST https://app.metorik.com/api/v1/store/engage/profiles \
-H "Content-Type: application/json" \
-H "X-Metorik-Token: VImqh3Xx05voX4Al0I1VCXWgHWRzSXddK2P5Mtppxw0QzZb2ZxbVQNGv" \
-d '{
"email": "kendall@waystarroyco.com",
"first_name": "Kendall",
"last_name": "Roy",
"country": "US",
"company": "Waystar Royco",
"consent": "double"
}'

A successful request will return you the profile just created:

{
    "profile": {
        "email": "kendall@waystarroyco.com",
        "first_name": "Kendall",
        "last_name": "Roy",
        "country": "US",
        "company": "Waystar Royco",
        "consent": "double",
        "created_at": "2025-06-17 01:18:27",
        "updated_at": "2025-06-17 01:18:27"
    }
}

If we have found an existing profile and updated it, the response will also include updated_at .


Delete https://app.metorik.com/api/v1/store/engage/profiles


Pass through a valid email address.

If found, we will delete the profile from Metorik.

Note: If the profile is an existing customer that originally came from your WooCommerce or Shopify store or has orders associated with it, we won't delete it.

curl -X DELETE https://app.metorik.com/api/v1/store/engage/profiles \
  -H "Content-Type: application/json" \
  -H "X-Metorik-Token: VImqh3Xx05voX4Al0I1VCXWgHWRzSXddK2P5Mtppxw0QzZb2ZxbVQNGv" \
  -d '{
    "email": "kendall@waystarroyco.com"
  }'

A successful deletion will return you a success message:

{"profile_deleted":true}

Still need help? Contact Us Contact Us