버전 관리
정책
/v1 접두사는 와이어 포맷이 깨질 때만 바뀝니다. 페이로드에 필드를 추가하는 것은 호환성을 깨는 변경이 아닙니다. 관대하게 파싱하고 모르는 것은 무시하십시오. 무언가를 없애야 할 때는 여기에 지원 중단으로 표시하고 최소 180일간 계속 동작하게 합니다. GET /v1/meta/versions가 이 표를 반환합니다.
버전
| 버전 | 상태 | 변경 사항 |
|---|---|---|
2026-10-05 | 현재 | tweet.edit: an edited post is delivered as tweet.edit, carrying the new version and edit_of, the version it replaces (it used to arrive as a new tweet.create) account.status: the account became protected, suspended or unavailable (deactivated, deleted, not visible), or active again; d carries old, new and X's reason a new account category in GET /v1/meta/event-types; subscriptions that take every type ([]) receive the two new types, explicit lists do not change post events carry author as a full User (bio, avatar, banner, counts, verification, location, link, join date), the same object as a search.match author; a thin first frame carries the account as last read every event's target carries name, the account's display name, beside id and screen_name |
2026-10-04 | 지원 중 | a thin first frame carries author.screen_name and a url with the account's handle (it had neither) post payloads carry kind_final; a thin first tweet.create can still turn out to be a quote, and the update that settles it is tweet.quote with kind_was: tweet an update that changes a post's type reaches every key whose choice includes either type (it was filtered by the new type only, so a key taking tweet.create but not tweet.quote never learned its post was a quote) tweet.delete ts is when the deletion was detected; it was the deleted post's own time post payloads carry article for X Articles: title, preview, full text, cover and images Target push_ready means every event type the subscription asks for is collected live documented: system.hello targets is the count when the connection opened and replay_from echoes ?last_id=; close code 1012 and how to resume a monitored account is its user id: POST /v1/monitor/targets and batch items take user_id instead of screen_name, and /v1/monitor/targets/{target} takes the user id, the current handle or a former handle an account that changes its handle keeps being delivered, later events carry the new target.screen_name, and profile.screen_name / profile.name report the change; Target objects carry previous_screen_names two keys asking for the same unknown account at once are both subscribed (the second request used to replace the first) |
2026-09-26 | 지원 중 | the WebSocket reads Authorization: Bearer like every REST endpoint; before this, only X-API-Key and ?api_key= were read there although the authentication guide listed all three, so a Bearer-only client was closed with 4001 a 4001 close reason names the problem: missing_api_key, invalid_api_key or key_revoked (documented) |
2026-09-25 | 지원 중 | a subscription can be narrowed to chosen event types: event_types on POST /v1/monitor/targets and on batch add items, and PATCH /v1/monitor/targets/{screen_name}; null or [] means every type Target objects carry event_types and event_types_all the filter applies to the stream, webhooks and GET /v1/events alike; an open connection picks up a change on its next refresh |
2026-09-17 | 지원 중 | every key is served alike: the tier and priority fields, PATCH /v1/monitor/targets/{screen_name}, the batch patch op and the tier:ultra scope are gone; subscriptions cannot be narrowed by event type keywords no longer take interval_s; how often a keyword is searched is decided on our side keyword matches reach only the keys that watch the keyword; there is no operator broadcast event envelope no longer carries src or lat; payloads no longer carry push_type, x_push_ts, ts_estimated, confirmed, deep /v1/status reports component state only; /v1/meta/event-types reports category and second_frame Authorization: Bearer accepted alongside X-API-Key 401 key_revoked distinguished from invalid_api_key 402 plan_limit replaces target_limit and keyword_limit X-RateLimit-* headers and 429 rate_limited per key Idempotency-Key on writes, ETag / If-None-Match on reads, If-Match on PATCH POST /v1/monitor/targets:batch GET /v1/monitor/targets/{screen_name} with queued / failed resolution state cursor paging on /v1/monitor/targets and /v1/events /v1/meta/* public metadata PUT /v1/account/webhook keeps the secret when the URL is unchanged |
2026-09-08 | 지원 중 | Initial v1: targets, keywords, stream, replay, webhooks, reads |