API dokumentace

Posty API, MCP a CLI reference

Tato stránka je kompletní referenční příručka programovatelných rozhraní Posty: každý veřejný REST endpoint, všechny příkazy nástroje příkazové řádky a nástroje MCP serveru. Pokud jste se ještě nerozhodli, které rozhraní potřebujete, začněte přehledem pro vývojáře.

Ke každému endpointu je v kompletní dokumentaci samostatná stránka, s parametry a spustitelnými příklady: posty.hu/dokumentacio/api/vegpontok.

Jak to funguje

Posty přes tři rozhraní spravuje stejný pracovní prostor jako webová aplikace. REST API z vašeho vlastního kódu, nástroj příkazové řádky z terminálu a vašich skriptů, MCP server z AI agenta. Všechna tři používají stejná oprávnění a limity, proto co zvládnete na jednom, zvládnete i na ostatních.

Základní adresa REST API je https://api.posty.hu/public/v1. Verze je v cestě a každá odpověď je JSON.

Připojení ve třech krocích

1. Zaregistrujte se na posty.hu/regisztracio. Žádný prodejní hovor, žádná čekací listina.
2. V rozhraní propojte alespoň jeden sociální účet. Tento krok z API neuděláte, protože platforma chce souhlas od člověka.
3. Vytvořte si klíč: Automatizace → Vývojáři. Klíč se ukáže jen jednou, v okamžiku vytvoření.

Prvním voláním si ověříte, že je vše na svém místě. Tento endpoint odpoví i bez klíče a řekne vám, kde najdete všechno:

curl https://api.posty.hu/public/v1/status

První ověřené volání vypíše vaše kanály:

curl https://api.posty.hu/public/v1/integrations \
  -H "Authorization: psty_a_kulcsod"

Autentizace

Fungují dva typy přihlašovacích údajů. API klíč je celá hodnota hlavičky Authorization (psty_…) a je určený pro váš vlastní kód. Přístupový token OAuth 2.1 (Bearer pos_…) potřebujete, když k Posty přistupuje jiná aplikace jménem vašich uživatelů. Průběh používá PKCE a metadata jsou strojově čitelná.

Oprávnění klíče se řídí aktuální rolí jeho vlastníka. Když je někdo přeřazen na nižší roli nebo odebrán z pracovního prostoru, klíč umí hned jen to, co smí on. Pokud klíč patří k více pracovním prostorům, hlavička showorg mezi nimi vybere.

Endpointy

Každá cesta je pod https://api.posty.hu/public/v1. Sloupec „Oprávnění" ukazuje, jaký scope klíč potřebuje. Když chybí, odpověď je 403 a pojmenuje, co chybí.

MetodaCestaCo děláOprávnění
GET/statusStav a zjišťování. Odpovídá i bez klíče.
POST/signup/startPošle jednorázový kód na e-mailovou adresu uživatele. Lze volat bez klíče a pro každou adresu vrací stejnou odpověď.
POST/signup/completeS kódem a souhlasem uživatele (acceptTerms: true) vytvoří účet a jednou zobrazí úplný klíč pracovního prostoru (psty_sa_). Zkušební období zdarma není, dalším krokem je checkout. 409, pokud k adrese už účet existuje.
GET/is-connectedOvěří, zda klíč ukazuje na platný pracovní prostor.
GET/workspacesPracovní prostory, na které klíč dosáhne. `current` označuje ten, na který dotaz přišel. Pokud klíč platí pro více pracovních prostorů, ostatní cesty očekávají ID pracovního prostoru v hlavičce `showorg`.
GET/integrationsPřipojené kanály: ID, název, @handle, platforma a zda kanál může právě publikovat.channels:read
GET/integration-settings/:idPravidla publikování a schéma nastavení kanálu, s limitem znaků platným pro daný účet.channels:read
POST/integration-trigger/:idDotaz specifický pro platformu na kanálu: seznamy nástěnek, subredditů, stránek.channels:read
GET/social/:integrationVrátí adresu platformy, kterou musí člověk otevřít, aby kanál připojil.channels:write
GET/groupsSkupiny zákazníků, do kterých jsou kanály zařazeny.channels:read
GET/postsKalendář za dané období: každý příspěvek se stavem a časem.posts:read
POST/postsVytvoří příspěvek: koncept, naplánovaný nebo okamžitě publikovaný, na jeden či více kanálů.posts:draft (pro publikování také posts:publish)
DELETE/posts/:idSmaže jen tento jeden příspěvek (jeden kanál) s jeho vláknem. Ostatní kanály skupiny zůstanou.posts:draft
DELETE/posts/group/:groupSmaže celou skupinu na všech kanálech: jednu úpravu odeslanou na více kanálů.posts:draft
PUT/posts/:id/statusPřesune příspěvek mezi stavem konceptu a naplánovaným stavem.posts:publish
GET/posts/:id/missingŘekne, co příspěvku ještě chybí k publikování.posts:read
PUT/posts/:id/release-idZaznamená ID a adresu příspěvku, který byl publikován mimo platformu.posts:publish
GET/find-slot/:idNejbližší volný termín podle plánu pracovního prostoru.posts:read
POST/uploadNahraje obrázek nebo video do knihovny médií, nejvýše 1 GB.media:write
POST/upload-from-urlStáhne mediální soubor z veřejné adresy URL do knihovny médií.media:write
POST/upload-linkOdkaz pro nahrání v prohlížeči, když je soubor v zařízení uživatele.media:write
GET/upload-link/:idSoubory přijaté přes odkaz pro nahrání, s adresou, kterou lze vložit do příspěvku.media:write
GET/analytics/:integrationStatistiky kanálu za požadované období.analytics:read
GET/analytics/post/:postIdStatistiky publikovaného příspěvku z platformy.analytics:read
GET/notificationsOznámení pracovního prostoru, po stránkách.posts:read
GET/fotoai/statusZda je připojen účet FotoAI vlastníka klíče, pod kým, a zůstatek kreditů FotoAI.media:write
GET/fotoai/modelsObrazové a video modely FotoAI s parametry (poměr stran, rozlišení, délka) a cenou v kreditech.media:write
POST/fotoai/quotePřesná cena generování a quote_id platné 10 minut. Nic neutratí.media:write
POST/fotoai/generationsSpustí generování z kreditů FotoAI uživatele, s cenovým stropem (max_millicredits nebo quote_id) a klíčem idempotence. Výsledek jde do knihovny médií.media:write
GET/fotoai/generationsNedávná generování FotoAI uživatele ze všech zdrojů, označená, pokud už jsou v knihovně médií tohoto pracovního prostoru.media:write
GET/fotoai/generations/:idStav generování; po dokončení obrázky a videa uložené v knihovně médií s adresou pro příspěvek.media:write
POST/fotoai/generations/:id/importImportuje libovolné generování FotoAI (i vytvořené na fotoai.hu) do knihovny médií. Druhý import vrátí stejná média.media:write
GET/plansČtyři tarify (Alap, Pro, Kreátor, Csapat) s měsíční a roční cenou ve forintech, eurech, švýcarských francích a amerických dolarech, hlavní limity, pravidlo zkušebního období a aktuální tarif pracovního prostoru. Odpovídá bez omezení tarifem.
GET/subscriptionStav předplatného, které řídí pracovní prostor (none, trialing, active, past_due, read_only, cancelled), tarif, konec období a nezaplacený checkout zahájený za poslední hodinu. Zjistěte to po zaplacení.
POST/subscriptions/checkoutOdkaz na Stripe Checkout pro zvolený tarif a období. Nic nestrhne: uživatel odkaz otevře a zaplatí vlastní peněženkou Link nebo kartou. Volat ho může jen token OAuth nebo úplný klíč pracovního prostoru (psty_sa_) plátce.
GET/subscription/portalKrátkodobý odkaz na fakturační portál Stripe: změna tarifu, zrušení, faktury, karta. Stejné pravidlo ověření jako u checkoutu.

Přesná schémata požadavku a odpovědi, pole po poli, najdete v popisu OpenAPI 3. Z něj si můžete nechat vygenerovat i kód klienta.

Příklad: naplánovaný příspěvek

Datum je vždy UTC, ve formátu ISO 8601. type může být draft, schedule nebo now.

curl -X POST https://api.posty.hu/public/v1/posts \
  -H "Authorization: psty_a_kulcsod" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "schedule",
    "date": "2026-09-15T09:00:00.000Z",
    "shortLink": false,
    "posts": [{
      "integration": { "id": "id_vaseho_kanalu" },
      "value": [{ "content": "<p>Ahoj všichni!</p>" }]
    }]
  }'

Odpověď vrací jeden řádek na kanál, s hodnotou postId, kterou použijete při mazání a při změně stavu.

Chyby

Každá chyba je JSON. U chyb, které vyvolá Posty, nese lidskou větu pole msg. Volání, která neprojdou kontrolou formátu požadavku, dostanou tvar frameworku (statusCode, message, error). Oprávnění 403 pojmenuje chybějící scope a roli vlastníka klíče, protože nejčastější příčina není špatný klíč, ale uživatel se sníženou rolí.

Stavový kód řekne, jestli má smysl to zkusit znovu: 400, 401, 403 a 404 nezmizí, dokud něco nezměníte. 429 a 5xx ano. Schéma ApiError toto všechno popisuje i strojově čitelně v dokumentu OpenAPI.

Limity volání

Každá odpověď nese hlavičky RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (v sekundách, ne jako časové razítko) a RateLimit-Policy. S kódem 429 přijde i Retry-After. Každá cesta má vlastní okno, na klíč. Nečekejte na 429: ze zbývající hodnoty můžete zpomalit předem.

Verze a vyřazování

Verze je v cestě: každé veřejné volání žije pod /public/v1. Nekompatibilní změna by se objevila jako nová verze (/public/v2) a v1 si drží svou smlouvu. Rozšíření (nové volitelné pole, nová cesta, nová hodnota výčtu) probíhá uvnitř v1, proto váš kód ignoruje pole, která nezná.

Kdybychom cestu vyřazovali, odpověď by dostala hlavičku Deprecation: true a v hlavičce Sunset datum, po kterém už nebude fungovat. Toto datum není nikdy blíž než 180 dní. Každá odpověď nese i hlavičku Link se vztahem rel="sunset", která ukazuje na tuto sekci. Momentálně není nic ve vyřazování.

Nástroj příkazové řádky

posty-cli používá stejné API, jen z terminálu. Instalace a přihlášení:

npm install -g posty-cli
posty auth:login
posty integrations:list

Přihlášení otevře prohlížeč a klíč uloží na váš počítač, takže ho nemusíte vkládat do skriptů. Každý příkaz umí dát výstup --json, který je určený ke strojovému zpracování.

Authentication
posty auth:loginSign in through the browser. The machine stores the key.
posty auth:signup --email <address>A new account with a code sent by email, without a free trial. The machine stores the key, then comes billing:subscribe.
posty auth:statusWhich workspace this machine is linked to.
posty auth:logoutDelete the stored key.
Channels
posty integrations:listThe connected channels, with IDs.
posty integrations:settings <id>A channel's rules and settings.
posty integrations:trigger <id> <method>A platform-specific lookup on the channel.
Posting
posty posts:create -c "text" --date "..." -i "<id>"A scheduled post to one or more channels.
posty posts:create -c "text" -t draft ...The same as a draft, without publishing.
posty posts:create --json file.jsonThe full request from a file, for scripts.
Management
posty posts:listThe calendar contents.
posty posts:delete <id>Delete one post (one channel).
posty posts:delete-group <group>Delete the whole group, from every channel.
posty posts:status <id> --status draftSwitch between draft and scheduled.
posty posts:find-slot <id>The next free time slot.
posty upload <file>Upload media to the media library.
posty upload:linkA browser upload link, for when the file is not on this machine.
posty upload:files <id>What has arrived on the upload link.
Analytics
posty analytics:platform <id> -d 30Channel statistics for the last N days.
posty analytics:post <id>A post's statistics.
posty posts:missing <id>What a post still needs.
FotoAI
posty fotoai:statusWhether FotoAI is connected, as whom, and the credit balance.
posty fotoai:models --category imageFotoAI's models with their parameters and price.
posty fotoai:generate -m <model> -p "prompt" --aspect 4:5Quote, confirm, generate with your own FotoAI credits; the result goes into the media library.
posty fotoai:get <id>A generation's status and the URLs of the files saved in the media library.
Subscription
posty billing:plansThe prices and limits of the four plans.
posty billing:subscribe --tier pro --period yearlyA Stripe Checkout link for the plan. --open opens it in the browser. The user pays.
posty billing:statusThe subscription status. Check it after payment.
posty billing:manageA link to the Stripe billing portal.

MCP server

Adresa MCP serveru je https://api.posty.hu/mcp-oauth, s přenosem streamable HTTP a autentizací OAuth 2.1. Váš agent vidí tyto nástroje:

NástrojCo děláZapisuje?
get_workspace_contextPřesný čas v UTC, časové pásmo uživatele a název pracovního prostoru.ne
list_workspacesVypíše pracovní prostory uživatele a označí ten, ve kterém připojení pracuje.ne
switch_workspacePřepne připojení do jiného pracovního prostoru. Všechny nástroje pak pracují tam.ano
list_integrationsPřipojené kanály s ID, @handle a stavem.ne
list_groupsSkupiny zákazníků.ne
get_integration_schemaPravidla kanálu a limit znaků platný pro daný účet.ne
get_channel_optionsHodnoty specifické pro platformu, ze kterých lze u kanálu vybírat.ano
preview_postUkáže, co by se odeslalo, pro každý kanál zvlášť. Nic nezapisuje.ne
list_postsKalendář v UTC i místním čase, s názvy kanálů.ne
delete_postSmaže nepublikovaný příspěvek (jeden kanál), s allChannels: true celou skupinu. Již zveřejněný odmítne.ano
create_postKoncept, naplánování nebo okamžité publikování.ano
upload_media_from_urlObrázek nebo video do knihovny médií z URL nebo data URL.ano
create_upload_linkOdkaz v prohlížeči, na který uživatel přetáhne soubor ze svého počítače. Platí dvě hodiny.ano
list_upload_link_filesCo přišlo přes odkaz pro nahrání, s adresou, kterou lze vložit do příspěvku.ne
fotoai_list_modelsObrazové a video modely FotoAI s parametry a cenou v kreditech.ne
fotoai_quotePřesná cena generování FotoAI. Nic neutratí.ne
fotoai_generateGeneruje z kreditů FotoAI uživatele podle schválené nabídky; výsledek jde do knihovny médií.ano
fotoai_get_generationStav generování a po dokončení adresy souborů uložených v knihovně médií, připravené pro příspěvek.ano
get_plansČtyři tarify s cenami ve forintech, eurech, švýcarských francích a amerických dolarech, limity, pravidlo zkušebního období a aktuální tarif. Jen když se uživatel zeptá.ne
subscribeOdkaz na Stripe Checkout pro zvolený tarif. Uživatel ho otevře a zaplatí vlastní peněženkou. Jen přes přihlášené (OAuth) připojení, pro vlastníka.ano
get_subscriptionStav předplatného a nezaplacený checkout. Po zaplacení jím agent ověří, že tarif je aktivní.ne
manage_subscriptionOdkaz na fakturační portál Stripe: změna tarifu, zrušení, faktury, karta. Jen přes připojení OAuth, pro plátce.ano
open_postyOtevře aplikaci Posty: kalendář, editor příspěvků a kanály. Je také v postranním panelu ChatGPT.ne
open_posty_panelStejná aplikace v bočním panelu konverzace v ChatGPT. Volá ji aplikace, ne model.ne
read_settingsNastavení uživatele: časové pásmo a pracovní prostor, ve kterém připojení pracuje, s hodnotami k výběru.ne
update_settingsUloží časové pásmo, nebo přepne připojení do jiného pracovního prostoru. Volá ho nastavení pluginu v ChatGPT.ano
search_mentionsKanály a nadcházející příspěvky pro nabídku @ v desktopové aplikaci ChatGPT. Volá ji aplikace, ne model.ne
get_postCelý příspěvek (příspěvky vlákna nebo komentáře, média, nastavení) pro editor aplikace Posty. Volá ji aplikace, ne model.ne
update_postZmění naplánovaný, rozpracovaný nebo neúspěšný příspěvek z editoru aplikace Posty. Publikovaný příspěvek odmítne. Volá ji aplikace, ne model.ano

Připojení žádá o autentizaci: bez přihlašovacích údajů server vrátí 401 a v hlavičce WWW-Authenticate řekne, kde požádat o oprávnění. To není chyba, ale začátek procesu podle standardu MCP. Seznam nástrojů se i tak dá přečíst z manifestu.

Strojově čitelné

Každý dokument, který agent nebo generátor požaduje:

Začněte ještě dnes

Získejte publikum, ne další směnu

Posty uspořádá vaše sociální účty do jednoho kalendáře. Zbude vám víc času na zájemce i na podnikání. Ať vám správa účtů nezabere deset hodin týdně.

Vyzkoušet zdarma
7 dní zdarma · dnes neplatíte nic · zrušení kdykoli