Kontakty
Spravujte profily kontaktů a vlastní pole, hromadně, nebo jednotlivě.
Vytvoření kontaktu
Vytvoří kontakt a volitelně ho přidá jako odběratele do seznamů kontaktů.
/contactsVyžaduje API klíč s oprávněním full. E-mailové adresy jsou ve workspace jedinečné a ukládají se malými písmeny; vytvoření kontaktu, který už existuje, vrací 409 s existujícím kontaktem v poli existing. Vyvolá contact.created a pro každý seznam kontaktů subscriber.created. Viz Kontakty.
Parametry v těle požadavku
emailstringpovinnéfirst_namestringlast_namestringcustom_fieldsobjectHodnoty podle klíče vlastního pole, například {"company": "Analytical Engines"}. Hodnoty datových polí musí být ve tvaru YYYY-MM-DD. Klíče, které neodpovídají žádnému vlastnímu poli, se uloží tak, jak jsou.
audiencesstring[]aud_…), do kterých se má kontakt přidat jako odběratel. ID, která ve workspace neexistují, se přeskočí.unsubscribedbooleanvýchozí: falsetrue, pokud má kontakt vzniknout jako odhlášený. Kampaně odhlášené kontakty přeskakují a jejich členství v seznamech kontaktů začínají jako odhlášená.
Odpověď
Vrací 201 s objektem kontaktu. Pole audiences tu uvádí každý seznam kontaktů s jeho id, name a stavem přihlášení subscribed. Všechna pole najdete na stránce Načtení kontaktu.
Pokud je některý seznam kontaktů na limitu odběratelů vašeho tarifu, vrací 422 s usage. V tom případě se žádný kontakt nevytvoří.
{
"object": "contact",
"id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines",
"plan": "pro"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscribed": true
}
],
"created_at": "2026-10-01T10:20:31.704113Z",
"updated_at": "2026-10-01T10:20:31.704113Z"
}{
"error": "Custom field \"Birthday\" must be a date in YYYY-MM-DD format"
}{
"error": "Contact with this email already exists",
"existing": {
"object": "contact",
"id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines",
"plan": "pro"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscribed": true
}
],
"created_at": "2026-10-01T10:20:31.704113Z",
"updated_at": "2026-10-01T10:20:31.704113Z"
}
}{
"error": "Pro includes 50,000 subscribers per audience.",
"usage": {
"used": 50000,
"limit": 50000,
"plan": "pro"
}
}Načtení kontaktu
Načte kontakt s jeho vlastními poli a členstvími v seznamech kontaktů.
/contacts/{id}Vyžaduje API klíč s oprávněním full.
Parametry v cestě
idstringpovinnécon_…), nebo e-mailová adresa kontaktu zakódovaná pro URL.Odpověď
Vrací objekt kontaktu.
objectstringcontact.idstringemailstringfirst_namestring | nulllast_namestring | nullcustom_fieldsobject{}, pokud žádné nejsou.unsubscribedbooleantrue, pokud se kontakt odhlásil ze všech kampaní.audiencesobject[]Seznamy kontaktů, do kterých kontakt patří, každý s id, name a objektem subscriber: id (sub_…), subscribed, subscribed_at, unsubscribed_at, created_at a updated_at.
created_atstringupdated_atstring{
"object": "contact",
"id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines",
"plan": "pro"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscriber": {
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": null,
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
}
}
],
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
}{
"error": "Contact not found"
}Úprava kontaktu
Upraví kontakt. Změní se jen pole, která pošlete.
/contacts/{id}Vyžaduje API klíč s oprávněním full. Vyvolá contact.updated s předchozími hodnotami změněných polí v previous. Změna audiences navíc vyvolá subscriber.created a subscriber.deleted pro členství, která přidá a odebere.
Parametry v cestě
idstringpovinnécon_…), nebo e-mailová adresa kontaktu zakódovaná pro URL.Parametry v těle požadavku
emailstringfirst_namestringlast_namestringcustom_fieldsobjectunsubscribedbooleantrue kontakt odhlásí ze všech kampaní, false ho znovu přihlásí. Stávající členství v seznamech kontaktů si zachovají svůj vlastní stav.audiencesstring[]Úplný výčet ID seznamů kontaktů, do kterých má kontakt patřit. Kontakt se přidá do seznamů z vašeho výčtu, ve kterých ještě není, a odebere se ze seznamů, které ve vašem výčtu nejsou. Pokud ho chcete odebrat ze všech seznamů, pošlete []. Pokud chcete přidat nebo odebrat jeden seznam bez vypisování všech ostatních, použijte endpoint Přidání odběratele, nebo Smazání odběratele.
Odpověď
Vrací upravený kontakt ve stejném formátu jako endpoint Načtení kontaktu. Požadavek, který neobsahuje žádné z těchto polí, vrací 400.
curl -X POST https://api.emailit.com/v2/contacts/ada%40example.com \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"custom_fields": { "company": "Analytical Engines", "plan": "business" },
"audiences": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2", "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
}'{
"object": "contact",
"id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Augusta",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines",
"plan": "pro"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscriber": {
"id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
"subscribed": true,
"subscribed_at": "2026-10-01T10:20:31.000000Z",
"unsubscribed_at": null,
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-01T10:20:31.000000Z"
}
}
],
"created_at": "2026-10-01T10:20:31.000000Z",
"updated_at": "2026-10-02T09:03:17.000000Z"
}{
"error": "No valid fields provided for update. Provide at least one of: email, first_name, last_name, custom_fields, unsubscribed, audiences"
}{
"error": "Contact not found"
}{
"error": "Another contact with this email already exists"
}Výpis kontaktů
Vrací stránku kontaktů od nejnovějších.
/contactsVyžaduje API klíč s oprávněním full. Se stejnými parametry můžete přes endpoint Export kontaktů stáhnout všechny odpovídající kontakty jako soubor.
Parametry dotazu
pageintegervýchozí: 1limitintegervýchozí: 10searchstringq.audience_idstringaud_…).unsubscribedbooleantrue, nebo false. Jen kontakty s tímto stavem odhlášení.sortstringvýchozí: created_atemail, first_name, last_name, name, audiences, created_at nebo updated_at.orderstringvýchozí: descasc, nebo desc. U tohoto endpointu je order směr řazení, ne klíč řazení.matchstringvýchozí: allall, nebo or. Určuje, jak se kombinují filtry níže.Filtry
Filtry přidejte ve tvaru key.condition=value, například email.ends_with=@acme.com nebo custom_fields.plan.exact=pro. Viz Filtrování a řazení.
| Klíč | Typ | Poznámky |
|---|---|---|
email |
string | |
first_name |
string | |
last_name |
string | |
name |
string | Křestní jméno a příjmení spojené mezerou. |
audiences |
string | Abecedně první název seznamu kontaktů, do kterého kontakt patří. |
unsubscribed |
boolean | |
created_at |
date | |
updated_at |
date | |
audience_id |
string | Jen exact a not_exact. Hodnota je ID seznamu kontaktů. |
custom_fields.<key> |
string | Místo <key> dosaďte klíč vlastního pole. Hodnoty se porovnávají jako text. |
Starší parametry filter[audience_id], filter[unsubscribed] a filter[custom_fields][<key>] stále fungují.
Odpověď
dataobject[]total_recordsintegernext_page_urlstring | nullnull. Viz Stránkování.previous_page_urlstring | nullnull.curl -G https://api.emailit.com/v2/contacts \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
--data-urlencode "audience_id=aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2" \
--data-urlencode "custom_fields.plan.exact=pro" \
--data-urlencode "sort=email" \
--data-urlencode "order=asc" \
--data-urlencode "limit=100"{
"data": [
{
"object": "contact",
"id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
"email": "ada@example.com",
"first_name": "Ada",
"last_name": "Lovelace",
"custom_fields": {
"company": "Analytical Engines",
"plan": "pro"
},
"unsubscribed": false,
"audiences": [
{
"id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
"name": "Newsletter",
"subscribed": true
}
],
"created_at": "2026-10-01T10:20:31.704113Z",
"updated_at": "2026-10-01T10:20:31.704113Z"
},
{
"object": "contact",
"id": "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7",
"email": "grace@example.com",
"first_name": "Grace",
"last_name": "Hopper",
"custom_fields": {},
"unsubscribed": true,
"audiences": [],
"created_at": "2026-09-28T07:55:02.118342Z",
"updated_at": "2026-09-30T18:11:40.902215Z"
}
],
"total_records": 2,
"next_page_url": null,
"previous_page_url": null
}Hromadná úprava kontaktů
Provede jednu akci až se 100 kontakty v jediném požadavku.
/contacts/bulkVyžaduje API klíč s oprávněním full. Každé ID musí patřit kontaktu ve workspace, jinak se nic nezmění a odpověď vypíše chybějící ID v poli missing. Každý kontakt vyvolá stejné události jako endpointy pro jednotlivé kontakty. Pokud seznam kontaktů během add_to_audience dosáhne limitu odběratelů vašeho tarifu, požadavek skončí s 422 a kontakty zpracované do té doby zůstanou přidané.
| Akce | Co dělá |
|---|---|
delete |
Smaže kontakty a jejich členství v seznamech kontaktů, stejně jako Smazání kontaktu. |
add_to_audience |
Přidá kontakty do seznamu audience_id. Kontakty, které v něm už jsou, zůstanou beze změny. |
remove_from_audience |
Odebere kontakty ze seznamu audience_id. |
unsubscribe |
Nastaví unsubscribed na true, takže kampaně kontakty přeskočí. |
resubscribe |
Nastaví unsubscribed na false. |
Parametry v těle požadavku
actionstringpovinnédelete, add_to_audience, remove_from_audience, unsubscribe nebo resubscribe.idsstring[]povinnécon_…), od 1 do 100. E-mailové adresy se tu nepřijímají. Duplicity se ignorují.audience_idstringadd_to_audience a remove_from_audience.Odpověď
objectstringcontact_bulk.actionstringprocessedintegeridsstring[]{
"object": "contact_bulk",
"action": "add_to_audience",
"processed": 2,
"ids": ["con_4K9kQdrXth7am0TPKvPrR5yd2oo", "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7"]
}{
"error": "A maximum of 100 contacts can be updated per request"
}{
"error": "One or more contacts were not found",
"missing": ["con_4K3pZc1Q9nWm2LrT8vYb5Hd0XaE"]
}{
"error": "Pro includes 50,000 subscribers per audience.",
"usage": {
"used": 50000,
"limit": 50000,
"plan": "pro"
}
}Export kontaktů
Stáhne odpovídající kontakty jako soubor CSV nebo XLSX.
/contacts/exportVyžaduje API klíč s oprávněním full. Přijímá stejné parametry vyhledávání, filtrování a řazení jako Výpis kontaktů, předané v řetězci dotazu, ale bez stránkování. POST /contacts/export funguje stejně. Export může obsahovat nejvýše 10 000 kontaktů; pokud jich odpovídá víc, požadavek vrátí 422, takže filtry zužte.
Parametry dotazu
formatstringvýchozí: csvcsv, nebo xlsx.search, audience_id, unsubscribed, sort, order, match, key.conditionstringOdpověď
Vrací soubor jako přílohu: contacts.csv (text/csv; charset=utf-8), nebo contacts.xlsx. Každý řádek je jeden kontakt s těmito sloupci:
| Sloupec | Obsah |
|---|---|
email |
E-mailová adresa. |
first_name, last_name |
Křestní jméno a příjmení. |
unsubscribed |
true, nebo false. |
audiences |
Názvy seznamů kontaktů, do kterých kontakt patří, oddělené ; . |
| Jeden sloupec pro každé vlastní pole | Hodnota každého vlastního pole definovaného ve workspace; sloupec se jmenuje podle klíče pole. Více hodnot se spojuje znakem ;. |
created_at, updated_at |
Časová razítka ISO 8601. |
email,first_name,last_name,unsubscribed,audiences,company,plan,created_at,updated_at
ada@example.com,Ada,Lovelace,false,Newsletter,Analytical Engines,pro,2026-10-01T10:20:31.000000Z,2026-10-01T10:20:31.000000Z{
"error": "format must be csv or xlsx"
}{
"error": "Export is limited to 10000 contacts. Narrow your filters and try again."
}Smazání kontaktu
Trvale smaže kontakt a všechna jeho členství v seznamech kontaktů.
/contacts/{id}Vyžaduje API klíč s oprávněním full. Smazání nelze vrátit zpět. Pokud chcete někomu přestat posílat e-maily, ale jeho záznam si ponechat, upravte kontakt a nastavte unsubscribed: true, nebo adresu přidejte na seznam blokovaných adres. Vyvolá subscriber.deleted pro každé členství a potom contact.deleted.
Parametry v cestě
idstringpovinnécon_…), nebo e-mailová adresa kontaktu zakódovaná pro URL.Odpověď
objectstringcontact.idstringemailstringdeletedbooleantrue.{
"object": "contact",
"id": "con_4Kt4ZXloQR8WGcMsYx8PFCUjokM",
"email": "alan@example.com",
"deleted": true
}{
"error": "Contact not found"
}