Newsletter
Endpointy „Newsletter” Zanfia Workspace API — ze schematami i przykładami kodu.
Zawartość produktów typu Newsletter, adresowana przez id produktu: lista zarchiwizowanych wydań (widok twórcy, razem z ukrytymi), widoczność, tryb wyświetlania i okładka pojedynczych wydań, ustawienia newslettera oraz pisanie wydań. Wydania zwykle powstają przez wysyłkę e-maili; API pozwala też napisać post bez wysyłki: POST …/issues tworzy ukryte wydanie w trybie artykułu, PUT …/issues/{issueId}/draft trzyma szkic w Markdownie, POST …/draft/publish go publikuje. Szkice nie dotykają opublikowanych pól aż do publikacji. Wszystkie endpointy wymagają nagłówka Authorization: Bearer — zobacz Uwierzytelnianie.
Lista wydań newslettera
/products/{productId}/newsletter/issuesAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Query Parameters
Opaque cursor from a previous page.
Page size 1-50 (default 20).
Response Body
application/json
application/json
curl -X GET "https://example.com/products/string/newsletter/issues"{ "items": [ { "id": "string", "emailId": "string", "subject": "string", "slug": "string", "status": "public", "landingPageVisibility": "public", "renderMode": "snapshot", "source": "email-loop", "thumbnailUrl": "string", "hasUnpublishedDraft": true, "createdAt": "string" } ], "nextCursor": "string", "hasMore": true}{ "error": "string", "message": "string"}Utwórz wydanie bez wysyłki
/products/{productId}/newsletter/issuesAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
"Write a post without sending": creates a HIDDEN, article-first issue with empty content. Fill it in via the draft routes, then publish the draft.
Response Body
application/json
application/json
curl -X POST "https://example.com/products/string/newsletter/issues" \ -H "Content-Type: application/json" \ -d '{ "subject": "string" }'{ "issue": { "id": "string", "emailId": "string", "subject": "string", "slug": "string", "status": "public", "landingPageVisibility": "public", "renderMode": "snapshot", "source": "email-loop", "thumbnailUrl": "string", "hasUnpublishedDraft": true, "createdAt": "string" }}{ "error": "string", "message": "string"}Skopiuj wydania do innych newsletterów
/products/{productId}/newsletter/issues/copyAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/products/string/newsletter/issues/copy" \ -H "Content-Type: application/json" \ -d '{ "issueIds": [ "string" ], "targetProductIds": [ "string" ] }'{ "copied": [ { "productId": "string", "newsletterId": "string", "issueIds": [ "string" ] } ], "skipped": [ { "productId": "string", "reason": "product-not-found" } ]}{ "error": "string", "message": "string"}Zmień widoczność i okładkę wydania
/products/{productId}/newsletter/issues/{issueId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Newsletter issue id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/products/string/newsletter/issues/string" \ -H "Content-Type: application/json" \ -d '{}'{ "issueId": "string", "updated": true}{ "error": "string", "message": "string"}Usuń wydanie
/products/{productId}/newsletter/issues/{issueId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Newsletter issue id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/products/string/newsletter/issues/string"{ "issueId": "string", "deleted": true}{ "error": "string", "message": "string"}Zapisz szkic wydania
/products/{productId}/newsletter/issues/{issueId}/draftAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Newsletter issue id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Unpublished draft fields of an issue. Presence-based: only the keys sent are written — a subject-only save never wipes a pending content draft; an explicit null clears that one draft field. At least one key required.
Response Body
application/json
application/json
curl -X PUT "https://example.com/products/string/newsletter/issues/string/draft" \ -H "Content-Type: application/json" \ -d '{}'{ "issueId": "string", "draft": { "subject": "string", "articleContent": "string" }}{ "error": "string", "message": "string"}Odrzuć szkic wydania
/products/{productId}/newsletter/issues/{issueId}/draftAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Newsletter issue id
Response Body
application/json
application/json
curl -X DELETE "https://example.com/products/string/newsletter/issues/string/draft"{ "issueId": "string", "discarded": true}{ "error": "string", "message": "string"}Opublikuj szkic wydania
/products/{productId}/newsletter/issues/{issueId}/draft/publishAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Newsletter issue id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/products/string/newsletter/issues/string/draft/publish" \ -H "Content-Type: application/json" \ -d '{}'{ "issueId": "string", "promotion": { "subject": "string", "articleContent": "string", "renderMode": "snapshot", "slug": "string", "status": "public" }}{ "error": "string", "message": "string"}Aktualizuj ustawienia newslettera
/products/{productId}/newsletter/settingsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Product id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Partial settings patch. archive merges per-field over the current config; the other blocks replace whole. At least one block is required.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/products/string/newsletter/settings" \ -H "Content-Type: application/json" \ -d '{}'{ "updated": true}{ "error": "string", "message": "string"}Czy ten artykuł był pomocny?

