about summary refs log tree commit diff
path: root/docs/Using-the-API/Streaming-API.md
blob: b6d41ab0e51464b29c2578cd891b6458418423ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Streaming API
=============

Your application can use a server-sent events endpoint to receive updates in real-time. Server-sent events is an incredibly simple transport method that relies entirely on chunked-encoding transfer, i.e. the HTTP connection is kept open and receives new data periodically.

### Endpoints:

**GET /api/v1/streaming/user**

Returns events that are relevant to the authorized user, i.e. home timeline and notifications

**GET /api/v1/streaming/public**

Returns all public statuses

**GET /api/v1/streaming/hashtag**

Returns all public statuses for a particular hashtag (query param `tag`)

### Stream contents

The stream will contain events as well as heartbeat comments. Lines that begin with a colon (`:`) can be ignored by parsers, they are simply there to keep the connection open. Events have this structure:

```
event: name
data: payload

```

[See MDN](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)

### Event types

|Event|Description|What's in the payload|
|-----|-----------|---------------------|
|`update`|A new status has appeared!|Status|
|`notification`|A new notification|Notification|
|`delete`|A status has been deleted|ID of the deleted status|

The payload is JSON-encoded.