SideQuest Companion#

POST /api/epgp/device-authorizations#

Start a companion sign-in

Starts a browser sign-in for SideQuest Companion and returns a code to show the member. No sign-in needed.

Request body

Model: EpgpDeviceAuthorizationCreate

Field

Type

Required

Description

device_name

string

yes

Response 201 — The device code, the code to show, and the page to open.

Model: EpgpDeviceAuthorizationCreated

Field

Type

Required

Description

device_code

string

yes

user_code

string

yes

verification_uri

string

yes

verification_uri_complete

string

yes

expires_in

integer

yes

interval

integer

yes

POST /api/epgp/device-authorizations/token#

Check a companion sign-in

Returns whether a companion sign-in is still waiting, approved (with its sync token) or denied. Always 200, so it never reveals whether a code exists.

Request body

Model: EpgpDeviceAuthorizationPoll

Field

Type

Required

Description

device_code

string

yes

Response 200 — The sign-in’s status.

Model: EpgpDeviceAuthorizationPollResult

Field

Type

Required

Description

status

DeviceAuthorizationPollStatus

yes

token

string | null

no

name

string | null

no

GET /api/epgp/device-authorizations/{user_code}#

Get a companion sign-in

Returns a waiting companion sign-in, so the member can check it before approving.

Parameters

Name

In

Type

Required

Description

user_code

path

string

yes

The code the companion shows.

Response 200 — The sign-in’s status.

Model: EpgpDeviceAuthorizationStatus

Field

Type

Required

Description

user_code

string

yes

device_name

string

yes

created_at

string (date-time)

yes

expires_at

string (date-time)

yes

status

DeviceAuthorizationStatus

yes

POST /api/epgp/device-authorizations/{user_code}/approve#

Approve a companion sign-in

Approves a waiting companion sign-in, which gives the companion a sync token for this member.

Parameters

Name

In

Type

Required

Description

user_code

path

string

yes

The code the companion shows.

Response 204 — The sign-in was approved.

POST /api/epgp/device-authorizations/{user_code}/deny#

Deny a companion sign-in

Denies a waiting companion sign-in.

Parameters

Name

In

Type

Required

Description

user_code

path

string

yes

The code the companion shows.

Response 204 — The sign-in was denied.

GET /api/epgp/sync-tokens#

List my sync tokens

Returns the signed-in member’s own sync tokens that are not revoked.

Response 200 — The sync tokens.

Model: EpgpSyncTokenList

Field

Type

Required

Description

tokens

array of EpgpSyncTokenSummary

yes

DELETE /api/epgp/sync-tokens/me#

Revoke this sync token

Revokes the Bearer sync token sent with the request, so SideQuest Companion can sign out.

Response 204 — The sync token was revoked.

GET /api/epgp/sync-tokens/me#

Get the sync token owner’s profile

Returns what the Bearer sync token’s owner can see about themselves, for SideQuest Companion.

Response 200 — The token owner’s profile.

Model: EpgpSyncTokenMe

Field

Type

Required

Description

display_name

string

yes

avatar_url

string | null

yes

is_officer

boolean

yes

is_guild_member

boolean

yes

calendar_url

string | null

yes

token_name

string

yes

DELETE /api/epgp/sync-tokens/{token_id}#

Revoke one of my sync tokens

Revokes one of the signed-in member’s own sync tokens.

Parameters

Name

In

Type

Required

Description

token_id

path

string (uuid)

yes

The sync token’s ID.

Response 204 — The sync token was revoked.