Server-sent events of a send: a snapshot event at once and on every change, heartbeats as comments
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/live/stream"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/live/stream';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/live/stream \ --header 'Authorization: Bearer <token>'Permission: campaigns:view
Each snapshot event carries the whole live state; its id is the snapshot version, so a reconnecting EventSource resumes with Last-Event-ID.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Workspace slug
Workspace slug
Campaign id
Campaign id
Header Parameters
Section titled “Header Parameters”Resume after this event id (the snapshot version)
Resume after this event id (the snapshot version)
Query Parameters
Section titled “Query Parameters”Same as the Last-Event-ID header, for clients that reconnect by themselves
Same as the Last-Event-ID header, for clients that reconnect by themselves
The language the snapshots’ words read in (en, vi); like Accept-Language, for clients that can’t set headers
The language the snapshots’ words read in (en, vi); like Accept-Language, for clients that can’t set headers
Responses
Section titled “Responses”OK
Each oneOf object in the array represents one possible Server Sent Events (SSE) message, serialized as UTF-8 text according to the SSE specification.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Messages per second; absent = the provider’s full rate
object
object
Messages per second now
object
object
object
object
Milliseconds since the epoch; the SSE event id
The event name.
The event ID.
The retry time in milliseconds.
default
Section titled “default”Error
object
Stable error code, e.g. permission_denied
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
Members who hold the missing permission
A URI reference that identifies the specific occurrence of the problem.
object
The missing permission key
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}