Skip to main content
Endpoint /messages vám umožňuje sbalit až 10 objektů zpráv, každý s až 10 příjemci, do jednoho API volání. To znamená až 100 odesílání na jeden HTTP požadavek. Je to nejjednodušší způsob pro zvýšení propustnosti odesílání. Pokud potřebujete odeslat tisíce až statisíce zpráv, můžete místo mnoha HTTP požadavků nahrát jeden JSONL soubor — viz Hromadné nahrání souboru přes REST API níže.

Dvě cesty hromadného odesílání

Potřebujete odeslat více než 100 příjemců najednou? Použijte hromadné nahrání JSONL souboru přes REST API (POST /messaging/url, viz REST API). Skill smsmanager-bulk-messaging z balíčku SmsManager skills umí soubor vygenerovat, nahrát a naplánovat za vás.

Kdy použít hromadné odesílání

  • Kampaně — odesílejte marketingový obsah seznamu odběratelů v co nejmenším počtu API volání.
  • Skupinová oznámení — informujte tým, třídu nebo zákaznický segment jediným požadavkem.
  • Personalizované zprávy — dejte každému objektu zprávy vlastní body nebo flow pro přizpůsobení na příjemce, bez API volání na osobu.

Jak hromadné odesílání funguje

Místo odeslání jednoho objektu zprávy na POST /message odešlete pole objektů zpráv na POST /messages. Každý prvek pole je nezávislá zpráva s vlastním body, to, flow, tag, callback a payload.
Tělo požadavku
Tento příklad odešle 3 zprávy (zpráva “Ahoj Alice!” bude doručena na 2 telefonní čísla, zpráva “Ahoj Bobe!” bude doručena na jedno telefonní číslo).
cURL

Formát odpovědi

Odpověď obsahuje request_id na nejvyšší úrovni a dvě pole — accepted (dva požadavky zařazené k doručení) a rejected (požadavky, které selhaly při validaci). Každý přijatý požadavek obsahuje key (index objektu zprávy v poli) a message_id pro sledování.
Odpověď
Pokud objekty zpráv selžou při validaci (například chybný formát telefonního čísla), objeví se v rejected s key odpovídajícím jejich pozici v poli a popisem chyby. Platné objekty zpráv ve stejném požadavku jsou i tak přijaty a zařazeny.

Získání message ID pro jednotlivé příjemce

Každý příjemce dostane vlastní message_id odvozené z dávkového message_id pomocí přípony indexu od nuly: -0, -1, -2 atd. Například, u message_id e27ff0ac-87b5-4e1d-b644-5fc6029e2a11 požadavku, který má dva příjemce: Doručovací webhooky obsahují tato ID s příponou, takže můžete propojit každou událost doručení zpět na konkrétního příjemce.

Smíšené kanály v dávce

Každý objekt zprávy v poli má vlastní nezávislé flow. To znamená, že můžete odeslat SMS jedné skupině a Viber zprávu (s SMS zálohou) jiné skupině ve stejném API volání.
Dávka smíšených kanálů

Limity

Pokud potřebujete oslovit více než 100 příjemců, rozdělte seznam a odešlete více volání /messages. U tisíců a více zpráv je jednodušší nahrát jeden JSONL soubor na rest-api.smsmngr.com — nemusíte řešit tisíce HTTP požadavků, jejich rychlost, opakování ani návratové kódy.

Kompletní cURL příklad

cURL

Hromadné nahrání souboru přes REST API

Když odesíláte tisíce až statisíce zpráv, je volání /messages po stovkách příjemců nepraktické: musíte řídit souběžnost a rychlost požadavků, ošetřit návratový kód každého z nich a opakovat neúspěšná volání. REST API endpoint POST /messaging/url vám místo toho vrátí předpodepsanou URL, na kterou nahrajete celý seznam zpráv jako jeden JSONL soubor (JSON Lines — jeden objekt zprávy na řádek) jediným file uploadem. Zpracování zpráv pak probíhá na straně SmsManager.
Endpoint /messaging/url patří do REST API, nikoli do JSON API v2. Základní URL je https://rest-api.smsmngr.com/v1, autentizace je stejná — hlavička x-api-key se stejným API klíčem.
1

Připravte JSONL soubor

Každý řádek souboru je jeden objekt zprávy ve stejném formátu jako u JSON API v2 — tedy stejný objekt, jaký posíláte na POST /message nebo jako prvek pole na POST /messages. Používejte kódování UTF-8, jeden JSON objekt na řádek, bez obalujícího pole a bez čárek mezi řádky.
messages.jsonl
Na každém řádku můžete použít všechna pole objektu zprávy — to s až 10 příjemci, flow se smíšenými kanály, tag, callback, payload, datetime i delivery_time. Pro velké soubory doporučujeme gzip kompresi:
gzip
2

Získejte URL pro nahrání

Zavolejte POST /messaging/url s vlastním identifikátorem dávky a typem souboru.
cURL
Odpověď
3

Nahrajte soubor

Na vrácenou URL odešlete soubor metodou PUT. Hlavička Content-Type musí odpovídat zvolenému filetype: application/jsonl pro jsonl, application/gzip pro gz.
cURL (JSONL)
cURL (gzip)
Předpodepsaná URL platí jen 60 sekund. Vyžádejte si ji až těsně před nahráním a soubor mějte připravený předem. Nahrávejte metodou PUT s tělem tvořeným přímo obsahem souboru — ne přes POST ani multipart/form-data. Do samotného PUT požadavku neposílejte x-api-key; oprávnění je součástí URL.
4

Sledujte doručení přes webhooky

Nahraný soubor se zpracovává asynchronně — úspěšný PUT znamená pouze, že soubor byl přijat. Výsledek každé zprávy (přijetí, odeslání, doručení nebo odmítnutí) dostanete jako sentMessage webhook na callback uvedený u zprávy, případně na výchozí callback URL vašeho účtu. Žádný samostatný endpoint pro stav celé dávky neexistuje.Každý příjemce má vlastní message_id; u řádků s více příjemci se message_id odvozuje stejně jako u /messages — příponou indexu -0, -1 atd. Podrobnosti najdete v průvodci Webhooky a v konceptu Přijetí požadavku.

Plánování a zrušení

Pole datetime v těle POST /messaging/url naplánuje zpracování celého souboru na zadaný čas v UTC. Platí stejná pravidla jako pro plánování jednotlivých zpráv.
cURL
Naplánované nahrání zrušíte voláním POST /messaging/cancel s jeho bulk_id:
cURL
Pole datetime uvnitř jednotlivých řádků souboru se vztahuje k dané zprávě a uplatní se při jejím zpracování. Zpracování souboru samotného řídí jen datetime z požadavku na URL.

Chyby

Chyby při samotném PUT (například vypršelá URL nebo neodpovídající Content-Type) vrací úložiště přímo jako HTTP chybu bez těla ve formátu SmsManager. V takovém případě si vyžádejte novou URL a nahrání zopakujte.
U velkých kampaní použijte gzip (filetype: "gz") — výrazně zmenší přenášený objem. Marketingové zprávy nechte ve výchozí frontě promotional (viz Fronty odesílání); prioritní fronta není pro hromadné odesílání určena.

Další kroky

Webhooky

Přijímejte stav doručení pro každého příjemce ve vaší dávce přes webhooky.

REST API reference

Referenční popis endpointů /messaging/url a /messaging/cancel pro hromadné nahrání souborů.

Plánování

Naplánujte odeslání pomocí datetime a omezte doručení na povolené hodiny přes delivery_time.

Odeslat Viber

Zjistěte, jak nakonfigurovat Viber flow pro použití v dávkových požadavcích.

Odeslat WhatsApp

Přidejte WhatsApp šablonové zprávy do svých dávek se smíšenými kanály.

Odeslat SMS

Zkontrolujte všechny možnosti SMS flow dostupné v dávkových zprávách.