Marketing (experimental)

Create or update a contact (upsert by email)

EXPERIMENTAL — enabled account by account; without it every call answers 403 module_disabled. Scopes read:contacts / write:contacts. The email is normalized before matching, so the same person is one contact: only ASCII whitespace (space, TAB, LF, VT, FF, CR) is trimmed from the ends, then it is lowercased — a Unicode space at either end (NBSP, U+3000…) is not trimmed, and the call is 400 invalid_email. attributes is merged shallowly; a new name is registered with the type of its first value. The body is closed: an unknown field is 400 with field (only when the name looks like a field name — no spaces, no @). A contact that was deleted comes back as a NEW contact (201, created: true), from zero: nothing of the deleted one returns, and the unsubscribes the person made still hold.

post/contacts

Request

  • Base URL: https://api.oveyon.com/v1
  • URL: https://api.oveyon.com/v1/contacts
  • Auth: HTTP bearer

Request body

emailstring required

Required. Normalized before matching (case does not matter): only ASCII whitespace (space, TAB, LF, VT, FF, CR) is trimmed from the ends — a Unicode space at either end (NBSP, U+3000…) is not trimmed and the call is 400 invalid_email. ASCII only, the local part and the domain: an internationalized domain (IDN) enters only in its xn-- form (ana@xn--exmple-cua.com); ana@exämple.com is refused with 400 invalid_email and reason: address_not_ascii. The same holds when finding, tagging, unsubscribing and deleting a contact: only the ASCII form is looked up.

firstNamestring nullable
lastNamestring nullable
attributesobject nullable

Shallow merge into the stored properties. Names: ^[a-z][a-zA-Z0-9_]{0,63}$, never email/firstName/lastName. A new name is registered with the type of its first value.

externalIdstring nullable

Response

Updated (or already as sent)

createdboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.