├── .github
├── ISSUE_TEMPLATE
│ └── config.yml
└── workflows
│ └── build.yml
├── .gitignore
├── CONTRIBUTING.md
├── README.md
├── config.yml
└── docs
├── CNAME
├── extra.css
├── guilded.svg
├── images.md
├── images
├── example_dm_channel_message.png
├── example_message.png
├── example_status.png
└── webhooks_identical.png
├── index.md
├── logo.png
├── overrides
└── main.html
├── reference.md
├── resources
├── channel.md
├── emoji.md
├── group.md
├── team.md
├── user.md
└── webhook.md
└── topics
├── community-resources.md
├── media.md
└── status-codes.md
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 | contact_links:
3 | - name: Developer Documentation
4 | url: https://guildedapi.com
5 | about: Documentation & examples for the API.
6 | - name: Community Server
7 | url: https://guilded.gg/guilded-api
8 | about: Need help with the API? Ask us here!
9 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Publish docs via GitHub Pages
2 | on:
3 | push:
4 | branches:
5 | - main
6 |
7 | jobs:
8 | build:
9 | name: Deploy docs
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout main
13 | uses: actions/checkout@v2
14 |
15 | - name: Deploy docs
16 | uses: mhausenblas/mkdocs-deploy-gh-pages@master
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19 | CONFIG_FILE: config.yml
20 | EXTRA_PACKAGES: build-base
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/.gitignore
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Wanted Changes
2 |
3 | 1. Fixes to incorrect statements or inaccuracies within the documentation.
4 | 2. Rewording or extending documentation to clarify unclear wording or complicated explanations.
5 | 3. Additions that fill gaps or missing pieces in the current documentation.
6 | 4. Fixing of spelling and grammatical errors in the documentation.
7 |
8 | ## Unwanted Changes
9 |
10 | 1. Whitespace or formatting changes.
11 | 2. Modifications to the overall structure and format of the API docs.
12 | 3. Additions that replicate or needlessly restructure current documentation.
13 |
14 | Contributions to this repository should conform to [Guilded's ToU](https://guilded.gg/terms), i.e. don't promote the breaching of ToU.
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Warning: Archived
2 |
3 | This project is no longer maintained by me. The domain guildedapi.com has been deleted and can be purchased again if you wish to use it for your own purposes. All of the content previously hosted on this domain is still available:
4 |
5 | - Original docs: https://guildedapi.github.io/docs
6 | - Rewritten docs: https://guilded-client.apidog.io
7 | - Issues checklist: https://bot-api-issues.vercel.app
8 |
9 | # Guilded Unofficial API Documentation
10 |
11 | This repo contains some unofficial API documentation for Guilded, which can be [viewed online here](https://guildedapi.github.io/docs). Before submitting pull requests, please remember to _fully_ read the [Contributing](CONTRIBUTING.md) guidelines.
12 |
--------------------------------------------------------------------------------
/config.yml:
--------------------------------------------------------------------------------
1 | site_name: Guilded API Documentation
2 | site_description: Unofficial documentation for Guilded's REST API.
3 | site_author: Guilded Developer Resources
4 | repo_url: https://github.com/guildedapi/docs
5 | repo_name: GitHub
6 | edit_uri: blob/main/docs/
7 | copyright: Copyright © shay (shayypy) 2021-2022
8 | site_dir: build/
9 | docs_dir: docs/
10 | theme:
11 | name: material
12 | custom_dir: docs/overrides
13 | logo: guilded.svg
14 | favicon: logo.png
15 | features:
16 | - navigation.sections
17 | - navigation.expand
18 | - navigation.instant
19 | - toc.integrate
20 | extra_css: [extra.css]
21 | dev_addr: 127.0.0.1:80
22 | markdown_extensions:
23 | - admonition
24 | - pymdownx.highlight
25 | - pymdownx.superfences
26 | - toc:
27 | permalink: 🔗
28 | toc_depth: 3
29 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | guildedapi.com
--------------------------------------------------------------------------------
/docs/extra.css:
--------------------------------------------------------------------------------
1 | :root>* {
2 | --md-default-fg-color: #ececee;
3 | --md-primary-fg-color: #f5c400;
4 | --md-primary-fg-color--dark: #f5c400;
5 | --md-default-fg-color--light: #ececee;
6 | --md-default-fg-color--lighter: #1F2126;
7 | --md-primary-bg-color: black;
8 | --md-default-bg-color: #3c3e48;
9 | --md-accent-fg-color: #EDD658;
10 |
11 | --md-code-bg-color: #292b32;
12 | --md-code-fg-color: hsla(0, 0%, 96%, 1);
13 | --md-code-hl-keyword-color: #dbdcdc;
14 | --md-code-hl-string-color: #e6db74;
15 | --md-code-hl-number-color: #ae81ff;
16 | --md-code-hl-name-color: #ae81ff;
17 | --md-code-hl-punctuation-color: #bd2760;
18 |
19 | --md-footer-bg-color: #2F313A
20 | }
21 |
22 | body {
23 | font-family: 'Gotham Narrow', Arial, sans-serif;
24 | color: var(--md-default-fg-color--light);
25 | }
26 | h1 {font-weight: bold !important}
27 | h6 {font-size: 16px !important}
28 |
29 | @font-face {
30 | font-family: 'Gotham Narrow';
31 | src: url('https://www.guilded.gg/fonts/gotham-narrow-book.woff2') format('woff2'),
32 | url('https://www.guilded.gg/fonts/gotham-narrow-book.woff') format('woff');
33 | font-weight: normal;
34 | font-style: normal;
35 | font-display: swap;
36 | }
37 | @font-face {
38 | font-family: 'Gotham Narrow';
39 | src: url('https://www.guilded.gg/fonts/gotham-narrow-book-italic.woff2') format('woff2'),
40 | url('https://www.guilded.gg/fonts/gotham-narrow-book-italic.woff') format('woff');
41 | font-weight: normal;
42 | font-style: italic;
43 | font-display: swap;
44 | }
45 | @font-face {
46 | font-family: 'Gotham Narrow';
47 | src: url('https://www.guilded.gg/fonts/gotham-narrow-bold.woff2') format('woff2'),
48 | url('https://www.guilded.gg/fonts/gotham-narrow-bold.woff') format('woff');
49 | font-weight: bold;
50 | font-style: normal;
51 | font-display: swap;
52 | }
53 | @font-face {
54 | font-family: 'Gotham Narrow';
55 | src: url('https://www.guilded.gg/fonts/gotham-narrow-bold-italic.woff2') format('woff2'),
56 | url('https://www.guilded.gg/fonts/gotham-narrow-bold-italic.woff') format('woff');
57 | font-weight: bold;
58 | font-style: italic;
59 | font-display: swap;
60 | }
61 |
62 | .md-typeset table:not([class]) {background-color: var(--md-code-bg-color);}
63 | th {background-color: var(--md-primary-bg-color)!important; color:var(--md-default-fg-color)!important;}
64 | .http-verb {
65 | font-size: 20px;
66 | color: var(--md-primary-fg-color);
67 | font-family: Menlo,Consolas,Monaco,monospace;
68 | text-transform: uppercase;
69 | margin-right: 10px;
70 | }
71 | .http-path {
72 | font-family: Menlo,Consolas,Monaco,monospace;
73 | font-size: 18px;
74 | }
75 | .http-container {margin: 0 !important}
76 | h2 {margin-bottom: 0 !important;}
77 |
--------------------------------------------------------------------------------
/docs/images.md:
--------------------------------------------------------------------------------
1 | # Images
2 |
3 | Here is an (incomplete) selection of "official images" collected from the Guilded client & website. They are owned by guilded.gg and are presented here without approval from Guilded/guilded.gg.
4 |
5 | ## Members
6 | 
7 |
8 | ## Members (in color)
9 | from [/jobs](https://guilded.gg/jobs)
10 | 
11 |
12 | ## Recruitment
13 | 
14 |
15 | ## Overview
16 | 
17 |
18 | ## Forums
19 | 
20 |
21 | ## Calendar
22 | 
23 |
24 | ## Docs
25 | 
26 |
27 | ## Media
28 | 
29 |
30 | ## Roster
31 | 
32 |
33 | ## Streams
34 | 
35 |
36 | ## Matches
37 | 
38 |
39 | ## Nothing Here
40 | 
41 |
42 | ## Not found
43 | 
44 |
45 | ## Gilmoji
46 | 
47 |
48 | ## Default Avatars
49 |
50 | ### 1
51 | 
52 |
53 | ### 2
54 | 
55 |
56 | ### 3
57 | 
58 |
59 | ### 4
60 | 
61 |
62 | ### 5
63 | 
64 |
65 | ## Denied
66 | 
67 |
68 | ## Stonks Rising
69 | from the referral popup
70 | 
71 |
72 | ## Desktop Screenshot
73 | from [/downloads](https://guilded.gg/downloads)
74 | 
75 |
76 | ## Under Construction
77 | [!under-construction](https://img.guildedcdn.com/asset/GenericMessages/under-construction.png)
78 |
--------------------------------------------------------------------------------
/docs/images/example_dm_channel_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/docs/images/example_dm_channel_message.png
--------------------------------------------------------------------------------
/docs/images/example_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/docs/images/example_message.png
--------------------------------------------------------------------------------
/docs/images/example_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/docs/images/example_status.png
--------------------------------------------------------------------------------
/docs/images/webhooks_identical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/docs/images/webhooks_identical.png
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | Hey, welcome! This is some documentation for [Guilded](https://guilded.gg)'s user API. This [documentation is on GitHub](https://github.com/guildedapi/docs), so you know what to do there.
4 |
5 | ## Userbots & You
6 |
7 | Guilded's terms forbid the automation of user accounts. For this reason, these pages are for building applications that make requests to Guilded as an anonymous third party ([here are some examples!](/topics/community-resources#exemplary-projects)). User authentication details will not be covered here.
8 |
9 | You can apply for Guilded's early access bot API in the "Bots" tab of any server's settings or at [API-Official](https://www.guilded.gg/API-Official).
10 |
11 | ## Support
12 |
13 | Need some help? Come ask over at [the community API server](https://www.guilded.gg/guilded-api)!
14 |
--------------------------------------------------------------------------------
/docs/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GuildedAPI/docs/abb165dacab14c1f99df350403c202aa748b7f01/docs/logo.png
--------------------------------------------------------------------------------
/docs/overrides/main.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block extrahead %}
4 | {% set title = config.site_name %}
5 | {% if page and page.meta and page.meta.title %}
6 | {% set title = title ~ " - " ~ page.meta.title %}
7 | {% elif page and page.title and not page.is_homepage %}
8 | {% set title = title ~ " - " ~ page.title | striptags %}
9 | {% endif %}
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | {% endblock %}
22 |
--------------------------------------------------------------------------------
/docs/reference.md:
--------------------------------------------------------------------------------
1 | # Reference
2 |
3 | Guilded's API features a WebSocket gateway for receiving live events, but it requires user authentication and thus will not be covered here.
4 |
5 | ###### Base URL
6 |
7 | ```
8 | https://www.guilded.gg/api
9 | ```
10 |
11 | ## Error Messages
12 |
13 | Your typical error message should look like this:
14 |
15 | ```json
16 | {
17 | "code": "BadRequestError",
18 | "message": "That's no good. Try again with a different payload."
19 | }
20 | ```
21 |
22 | ... along with an appropriate [HTTP status code](/topics/status-codes#http).
23 |
24 | ## IDs
25 |
26 | ### Types
27 |
28 | Unlike Discord, Guilded does not use [Snowflakes](https://discord.com/developers/docs/reference#snowflakes) for any of its IDs - instead, you will find a mix of [UUIDs](https://wikipedia.org/wiki/Universally_unique_identifier), 8-character alphanumeric strings (hereafter "generic" IDs), and incremental & random integer IDs.
29 |
30 | ### Uniqueness of IDs by scope
31 |
32 | | Resource | ID Type | Data Type | Scope |
33 | |---------------------------------------------------------------------------|-------------|-----------|-------------|
34 | | All content replies | Incremental | integer | per-content |
35 | | Announcement | Generic | string | ? |
36 | | Availability | Incremental | integer | global |
37 | | [CalendarEvent](https://guilded.gg/docs/api/calendarEvents/CalendarEvent) | Incremental | integer | global |
38 | | [Channel](/resources/channel#channel-object) | UUID | string | global |
39 | | [Doc](https://guilded.gg/docs/api/docs/Doc) | Incremental | integer | global |
40 | | [Emoji](/resources/emoji#custom-emoji-object) (emote) | Incremental | integer | global |
41 | | [ForumTopic](https://guilded.gg/docs/api/forums/ForumTopic) | Random | integer | ? |
42 | | [Group](/resources/group#group-object) | Generic | string | global |
43 | | [ListItem](https://guilded.gg/docs/api/listItems/ListItem) | UUID | string | ? |
44 | | Media | Incremental | integer | global |
45 | | [Message](/resources/channel#message-object) | UUID | string | ? |
46 | | Role | Incremental | integer | global |
47 | | [Team](/resources/team#team-object) (server) | Generic | string | global |
48 | | [User](/resources/user#user-object) | Generic | string | global |
49 | | [Webhook](/resources/webhook#webhook-object) | UUID | string | global |
50 |
51 | ## ISO8601 Date/Time
52 |
53 | Guilded utilizes the [ISO8601 format](https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0038_iso_wd_8601-1_2016-02-16.pdf) for most Date/Times returned. This format is referred to as type `ISO8601 timestamp` within tables in this documentation.
54 |
55 | ## Nullable and Optional Resource Fields
56 |
57 | Resource fields that may contain a `null` value have types that are prefixed with a question mark.
58 | Resource fields that are optional have names that are suffixed with a question mark.
59 |
60 | ###### Example Nullable and Optional Fields
61 |
62 | | Field | Type |
63 | |------------------------------|---------|
64 | | optional_field? | string |
65 | | nullable_field | ?string |
66 | | optional_and_nullable_field? | ?string |
67 |
68 | ## HTTP API
69 |
70 | ### Rate Limiting
71 |
72 | The HTTP API has very loose rate limits. Because of this, we do not know much about how rate limiting works on Guilded. A good rule of thumb is to not spam the API with repetitive requests and to simply stay reasonable.
73 |
74 | ## Message Formatting
75 |
76 | Guilded uses markdown for writing messages in clients. Message are returned via the API in a very 'stacked' format. Each aspect of a message's content, such as text formatting, a mention, or anything else, is provided in a different leaf of the current node. Fortunately, this is not a format you have to *send*; you can instead use pure markdown by providing `markdown-plain-text` as your `type`.
77 |
78 | todo: fact check above
79 |
80 | ## Image Formatting
81 |
82 | ###### Image Base URLs
83 |
84 | ```
85 | https://img.guildedcdn.com/
86 | https://s3-us-west-2.amazonaws.com/www.guilded.gg/
87 | ```
88 |
89 | Guilded uses hashes for its images. These hashes are not returned alone in most HTTP API requests, however--instead you are returned a full URL on the Amazon AWS platform.
90 |
91 | Below are the formats, size limitations, and CDN endpoints for images in Guilded. The returned format can be changed by changing the [extension name](#image-formats) at the end of the URL. The returned size can be changed by appending a `-{Size}` to the URL, just before the file extension. [See below](#sizes) for available size formats.
92 |
93 | It is important to note that, while URLs using the CDN domain are shorter than, and serve the same purpose as, AWS URLs, they will not display properly in embeds (in constrast to AWS URLs).
94 |
95 | ###### Image Formats
96 |
97 | | Name | Extension |
98 | |------|-------------|
99 | | PNG | .png |
100 | | aPNG | .png |
101 | | JPEG | .jpg, .jpeg |
102 | | WebP | .webp |
103 | | GIF | .gif |
104 |
105 | ###### CDN Endpoints
106 |
107 | | Type | Path | Supports |
108 | |----------------|--------------------------|------------|
109 | | User Avatar | UserAvatar/hash.png | PNG, GIF |
110 | | Profile Banner | UserBanner/hash.png | PNG |
111 | | Image in Chat | ContentMedia/hash.webp | WebP |
112 | | Team Emoji | CustomReaction/hash.webp | WebP, aPNG |
113 | | Team Icon | TeamAvatar/hash.png | PNG |
114 | | Team Banner | TeamBanner/hash.png | PNG |
115 |
116 | ###### Sizes
117 |
118 | Your `-{Size}` can be one of `-Small`, `-Medium`, `-Large`, and sometimes `-Hero`. Banners can only be `Hero`, but avatars are never `Hero`.
119 |
120 | ###### Example CDN URL
121 |
122 | The below example is for a "large" sized User Avatar on AWS:
123 |
124 | ```
125 | https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/{hash}-Large.png
126 | ```
127 |
--------------------------------------------------------------------------------
/docs/resources/channel.md:
--------------------------------------------------------------------------------
1 | # Channels
2 |
3 | ### Channel Object
4 |
5 | Represents a team (server) or DM channel.
6 |
7 | ###### Team Channel Structure
8 |
9 | | Field | Type | Description |
10 | |---------------------|--------------------|----------------------------------------------------------------------------------------------------------|
11 | | id | uuid | the id of this channel |
12 | | type | string | the [type of channel](#channel-types) |
13 | | createdAt | ISO8601 timestamp | when this channel was created |
14 | | createdBy | user id | who created this channel |
15 | | updatedAt | ?ISO8601 timestamp | when this channel was last modified |
16 | | name | string | the name of this channel |
17 | | contentType | string | the [content type of channel](#channel-content-types) (text, voice, etc) |
18 | | archivedAt | ?ISO8601 timestamp | if this channel is archived, this is when it was archived |
19 | | parentChannelId | ?uuid | if this channel has a parent channel, this is that channel's id |
20 | | autoArchiveAt | ?ISO8601 timestamp | when this channel will be automatically archived (only applicable to threads) |
21 | | deletedAt | ?ISO8601 timestamp | if this channel is deleted, this is when it was deleted |
22 | | archivedBy | ?user id | if this channel is archived, this is who archived it |
23 | | description | ?string | the channel description |
24 | | createdByWebhookId | ?uuid | if a webhook created this channel, this is the webhook's id |
25 | | archivedByWebhookId | ?uuid | if a webhook archived this channel, this is the webhook's id |
26 | | teamId | ?team id | if this is a team channel (not a DM channel), this is the team's id |
27 | | channelCategoryId | ?uuid | if this channel is in a category, this is the category's id |
28 | | addedAt | ?ISO8601 timestamp | ??? |
29 | | channelId | ?uuid | same as `id` |
30 | | isRoleSynced | ?bool | if this channel's roles are synced with the linked Discord guild's roles |
31 | | roles | ?array | a list of roles that (have overwrites in \| are synced with) this channel |
32 | | userPermissions | ?array | a list of users who have overwrites in this channel |
33 | | tournamentRoles | ?array | ??? |
34 | | isPublic | bool | whether this channel is marked as public (can be seen without being a member of the team) |
35 | | priority | integer | ??? |
36 | | groupId | ?group id | if this is a team channel, this is the group's id this channel belongs to |
37 | | settings | ??? | ??? |
38 | | groupType | string | ??? |
39 | | rolesById | dictionary | mapping of roleId: role object with undescript permissions |
40 | | tournamentRolesById | dictionary | ??? |
41 | | createdByInfo | dictionary | contains the `id`, `name`, `profilePicture`, and `profilePictureSm` of the user who created this channel |
42 |
43 | ###### Channel Types
44 |
45 | | Type | Description |
46 | |------|--------------------------------|
47 | | Team | a channel within a server |
48 | | DM | a direct message between users |
49 |
50 | ###### Channel Content Types
51 |
52 | | Type | Description |
53 | |--------------|--------------------------|
54 | | announcement | an announcement channel |
55 | | chat\* | a chat channel or thread |
56 | | doc | a docs channel |
57 | | forum | a forum channel |
58 | | media | a media channel |
59 | | list | a list channel |
60 | | scheduling | a scheduling channel |
61 | | streaming\* | a streaming channel |
62 | | voice\* | a voice channel |
63 |
64 | \* Voice channels and streaming channels are messageable just like chat channels. Threads inside these channels will have the `chat` content type despite their parent's content type.
65 |
66 | ###### Example Team Chat Channel
67 |
68 | ```json
69 | {
70 | "priority": 4,
71 | "id": "d2242862-401c-42f8-9ce2-0c75977475a6",
72 | "type": "Team",
73 | "name": "general",
74 | "description": "wacky hi-jinks ensue!",
75 | "settings": null,
76 | "roles": null,
77 | "rolesById": {},
78 | "tournamentRolesById": {},
79 | "teamId": "4R5q39VR",
80 | "channelCategoryId": null,
81 | "addedAt": null,
82 | "channelId": "d2242862-401c-42f8-9ce2-0c75977475a6",
83 | "isRoleSynced": null,
84 | "isPublic": false,
85 | "groupId": "WD56qLmd",
86 | "createdAt": "2020-07-31T18:51:19.563Z",
87 | "createdBy": "EdVMVKR4",
88 | "updatedAt": "2020-07-31T18:51:19.563Z",
89 | "contentType": "chat",
90 | "archivedAt": null,
91 | "parentChannelId": null,
92 | "autoArchiveAt": null,
93 | "deletedAt": null,
94 | "archivedBy": null,
95 | "createdByWebhookId": null,
96 | "archivedByWebhookId": null,
97 | "userPermissions": null,
98 | "tournamentRoles": null,
99 | "voiceParticipants": [],
100 | "userStreams": []
101 | }
102 | ```
103 |
104 | ### Message Object
105 |
106 | Represents a message sent in a channel within Guilded.
107 |
108 | ###### Message Structure
109 |
110 | | Field | Type | Description |
111 | |------------|------------------------------------------------------|-----------------------------------------------------------------------------|
112 | | id | uuid | id of the message |
113 | | channelId | [channel id](#channel-object) | id of the channel the message was sent in |
114 | | createdBy | user id | the author's id of this message |
115 | | content | [message content](#message-content-structure) object | contents of the message (including text, embeds, mentions, and attachments) |
116 | | createdAt | ISO8601 timestamp | when this message was sent |
117 | | editedAt | ?ISO8601 timestamp | when this message was edited (or null if never) |
118 | | deletedAt | ?ISO8601 timestamp | when this message was deleted (or null if it has not been deleted) |
119 | | reactions | array of [reaction](#reaction-object) objects | reactions to the message |
120 | | isPinned | boolean | whether this message is pinned |
121 | | pinnedBy | ?user id | if the message is pinned, this is the user's id who pinned it |
122 | | webhookId | ?user id | if the message is generated by a webhook, this is the webhook's id |
123 | | type | string | the [type of message](#message-types) |
124 |
125 | ###### Example Message
126 |
127 | ```json
128 | {
129 | "id": "b943384a-d951-4323-8e26-8e3e6b7c431a",
130 | "content": {
131 | "object": "value",
132 | "document": {
133 | "object": "document",
134 | "data": {},
135 | "nodes": [
136 | {
137 | "object": "block",
138 | "type": "paragraph",
139 | "data": {},
140 | "nodes": [
141 | {
142 | "object": "text",
143 | "leaves": [
144 | {
145 | "object": "leaf",
146 | "text": "cool message with an ",
147 | "marks": []
148 | }
149 | ]
150 | },
151 | {
152 | "object": "inline",
153 | "type": "reaction",
154 | "data": {
155 | "reaction": {
156 | "id": 90001815,
157 | "customReactionId": 90001815
158 | }
159 | },
160 | "nodes": [
161 | {
162 | "object": "text",
163 | "leaves": [
164 | {
165 | "object": "leaf",
166 | "text": ":tada:",
167 | "marks": []
168 | }
169 | ]
170 | }
171 | ]
172 | },
173 | {
174 | "object": "text",
175 | "leaves": [
176 | {
177 | "object": "leaf",
178 | "text": " emoji, some ",
179 | "marks": []
180 | },
181 | {
182 | "object": "leaf",
183 | "text": "bold formatting",
184 | "marks": [
185 | {
186 | "object": "mark",
187 | "type": "italic",
188 | "data": {}
189 | }
190 | ]
191 | },
192 | {
193 | "object": "leaf",
194 | "text": ", maybe even a ",
195 | "marks": []
196 | }
197 | ]
198 | },
199 | {
200 | "object": "inline",
201 | "type": "reaction",
202 | "data": {
203 | "reaction": {
204 | "id": 294637,
205 | "customReactionId": 294637
206 | }
207 | },
208 | "nodes": [
209 | {
210 | "object": "text",
211 | "leaves": [
212 | {
213 | "object": "leaf",
214 | "text": ":thinkingwithblobs:",
215 | "marks": []
216 | }
217 | ]
218 | }
219 | ]
220 | },
221 | {
222 | "object": "text",
223 | "leaves": [
224 | {
225 | "object": "leaf",
226 | "text": " custom emoji?",
227 | "marks": []
228 | }
229 | ]
230 | }
231 | ]
232 | }
233 | ]
234 | }
235 | }
236 | }
237 | ```
238 |
239 | ##### Message Types
240 |
241 | | Type | Description |
242 | |---------|-----------------------------------------------------------|
243 | | default | a message sent by a user |
244 | | system | a system message, usually noting an action done by a user |
245 |
246 | ### Unfurl Embed Object
247 |
248 | ###### Unfurl Embed Structure
249 |
250 | !!! info
251 | All of the below fields are optional and nullable.
252 |
253 | | Field | Type | Description |
254 | |---------------|--------|----------------------------------------------|
255 | | ogTitle | string | og:title |
256 | | ogDescription | string | og:description |
257 | | ogSiteName | string | og:site_name |
258 | | ogUrl | string | og:url |
259 | | ogImage.url | string | proxied og:image |
260 | | siteType | string | the [type of site](#unfurl-embed-site-types) |
261 |
262 | ###### Example Unfurl Embed
263 |
264 | ```json
265 | {
266 | "ogTitle": "Guilded - Chat for Gaming Communities",
267 | "ogDescription": "Guilded upgrades your group chat and equips your server with integrated event calendars, forums, and more – 100% free.",
268 | "ogSiteName": "Guilded - Chat for Gaming Communities",
269 | "ogUrl": "https://www.guilded.gg/",
270 | "ogImage": {
271 | "url": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/ExternalOGEmbedImage/11066c41a2569c628f119f2b2e32aa00-Full.png?w=1024&h=1024"
272 | },
273 | "siteType": "guilded"
274 | }
275 | ```
276 |
277 | ### Unfurl Embed Site Types
278 |
279 | | Value | Domain |
280 | |----------|----------------|
281 | | facebook | facebook.com |
282 | | github | github.com |
283 | | guilded | guilded.gg |
284 | | reddit | www.reddit.com |
285 | | twitch | twitch.tv |
286 | | twitter | twitter.com/\* |
287 | | vimeo | vimeo.com |
288 | | youtube | youtube.com/\* |
289 |
290 | ### Embed Object
291 |
292 | Embeds objects in Guilded are the same as in Discord, with the exception of `iconUrl` being preferred over `icon_url` for `embed.author`s and `embed.footer`s.
293 |
294 | ###### Embed Structure
295 |
296 | | Field | Type | Description |
297 | |--------------|--------------------------------------------------------|----------------------------|
298 | | title? | string | title of embed |
299 | | description? | string | description of embed |
300 | | url? | string | url of embed |
301 | | timestamp? | ISO8601 timestamp | timestamp of embed content |
302 | | color? | integer | color code of the embed |
303 | | footer? | [embed footer](#embed-footer-structure) object | footer information |
304 | | image? | [embed image](#embed-image-structure) object | image information |
305 | | thumbnail? | [embed thumbnail](#embed-thumbnail-structure) object | thumbnail information |
306 | | video? | [embed video](#embed-video-structure) object | video information |
307 | | provider? | [embed provider](#embed-provider-structure) object | provider information |
308 | | author? | [embed author](#embed-author-structure) object | author information |
309 | | fields? | array of [embed field](#embed-field-structure) objects | fields information |
310 |
311 | ###### Embed Thumbnail Structure
312 |
313 | | Field | Type | Description |
314 | |---------|---------|------------------------------------------------|
315 | | url? | string | source url of thumbnail. only supports http(s) |
316 | | height? | integer | height of thumbnail |
317 | | width? | integer | width of thumbnail |
318 |
319 | ###### Embed Video Structure
320 |
321 | | Field | Type | Description |
322 | |---------|---------|----------------------------|
323 | | url? | string | source url of video |
324 | | height? | integer | height of video |
325 | | width? | integer | width of video |
326 |
327 | ###### Embed Image Structure
328 |
329 | | Field | Type | Description |
330 | |---------|---------|--------------------------------------------|
331 | | url? | string | source url of image. only supports http(s) |
332 | | height? | integer | height of image |
333 | | width? | integer | width of image |
334 |
335 | ###### Embed Provider Structure
336 |
337 | | Field | Type | Description |
338 | |-------|--------|------------------|
339 | | name? | string | name of provider |
340 | | url? | string | url of provider |
341 |
342 | ###### Embed Author Structure
343 |
344 | | Field | Type | Description |
345 | |-------------|--------|-------------------------------------------|
346 | | name? | string | name of author |
347 | | url? | string | url of author |
348 | | iconUrl?\* | string | url of author icon. only supports http(s) |
349 | | icon_url?\* | string | url of author icon. only supports http(s) |
350 |
351 | \* You may provide either `iconUrl` or `icon_url`, but `icon_url` will only show up on mobile devices. For this reason, `iconUrl` is recommend instead.
352 |
353 | ###### Embed Footer Structure
354 |
355 | | Field | Type | Description |
356 | |-------------|--------|-------------------------------------------|
357 | | text | string | footer text |
358 | | iconUrl?\* | string | url of footer icon. only supports http(s) |
359 | | icon_url?\* | string | url of footer icon. only supports http(s) |
360 |
361 | \* You may provide either `iconUrl` or `icon_url`, but `icon_url` will only show up on mobile devices. For this reason, `iconUrl` is recommend instead.
362 |
363 | ###### Embed Field Structure
364 |
365 | | Field | Type | Description |
366 | |---------|---------|-------------------------------------------------|
367 | | name | string | name of the field |
368 | | value | string | value of the field |
369 | | inline? | boolean | whether or not this field should display inline |
370 |
371 | ## Get Embed for URL
372 | GET/content/embed_info
373 |
374 | Generate embed data for a specific URL. Returns a special [unfurl embed object](#unfurl-embed-object) on success. On failure, this will return an empty dictionary with status code 200.
375 |
376 | ###### Query Params
377 |
378 | | Field | Type | Description | Required |
379 | |-------|--------|------------------------------|----------|
380 | | url | string | the url to get an embed for | true |
381 |
382 | ## Embed Limits
383 |
384 | Leading and trailing whitespace characters are included in the following limits; they are kept intact despite not being visible in the desktop client.
385 |
386 | | Field | Limit |
387 | |----------------------------------------------------------|------------------|
388 | | title | 256 characters |
389 | | description | 2048 characters |
390 | | fields | 25 field objects |
391 | | [field.name](/resources/channel#embed-field-structure) | 256 characters |
392 | | [field.value](/resources/channel#embed-field-structure) | 1024 characters |
393 | | [footer.text](/resources/channel#embed-footer-structure) | 2048 characters |
394 | | [author.name](/resources/channel#embed-author-structure) | 256 characters |
395 |
396 | There is no explicit character limit for the sum of all the above fields, however utilizing every text slot you may fit a total of 36,608 characters per embed.
397 |
398 | ## Get Channel
399 | GET/content/route/metadata?route=//channels/{[channel.id](/resources/channel#channel-object)}/chat
400 |
401 | Get a channel by ID. Returns a [channel](#channel-object) object wrapped in `metadata.channel` on success.
402 |
403 | | Field | Type | Description | Required |
404 | |-----------|-------------------------------|-------------------------------------|----------|
405 | | route | string (metadata path) | the channel to get the message from | true |
406 |
407 | ## Get Channel Messages
408 | GET/channels/{[channel.id](/resources/channel#channel-object)}/messages
409 |
410 | Returns the messages for a channel. Only available if the channel is public. Returns an array of [message](/resources/channel#message-object) objects and a boolean `hasPastMessages` detailing if there are messages preceeding this array on success.
411 |
412 | ###### Query String Params
413 |
414 | | Field | Type | Description | Required | Default |
415 | |------------|-------------------|-----------------------------------------------------------|----------|---------|
416 | | limit | integer | max number of messages to return (0-2^63)\* | false | 51 |
417 | | beforeDate | ISO8601 timestamp | filters messages by those made before a certain timestamp | false | now |
418 | | afterDate | ISO8601 timestamp | filters messages by those made after a certain timestamp | false | epoch? |
419 |
420 | \* `limit` is interpreted as a bigint value and therefore can be as high as 2^63. Anything over this value will quickly return a 500 error code.
421 |
422 | ## Get Channel Message
423 | GET/content/route/metadata?route=//channels/{[channel.id](/resources/channel#channel-object)}/chat?messageId={[message.id](/resources/channel#message-object)}
424 |
425 | Get a specific message in the channel. Only available if the message's channel is public. On success, returns a [message](#message-object) object (`metadata.message`) and the message's [channel](#channel-object) object (`metadata.channel`).
426 |
427 | ###### Query String Params
428 |
429 | | Field | Type | Description | Required |
430 | |-----------|-------------------------------|-------------------------------------|----------|
431 | | route | string (metadata path) | the channel to get the message from | true |
432 | | messageId | [message id](#message-object) | the message to get | true |
433 |
434 | ## Get Pinned Messages
435 | GET/channels/{[channel.id](/resources/channel#channel-object)}/pins
436 |
437 | Returns all pinned messages in the channel as an array of [message](/resources/channel#message-object) objects inside a `message` key.
438 |
--------------------------------------------------------------------------------
/docs/resources/emoji.md:
--------------------------------------------------------------------------------
1 | # Custom Reactions/Emojis
2 |
3 | A "custom reaction" refers to a custom server emoji in Guilded. However, since this name is silly and confusing, this page will refer to this concept as "emojis", "custom emoijs", or "team emojis".
4 |
5 | ### Custom Emoji Object
6 |
7 | ###### Custom Emoji Structure
8 |
9 | | Field | Type | Description |
10 | |-----------------|-----------------------------------------|--------------------------------------------------------------|
11 | | id | integer | emoji's id (cannot be used for forming a cdn url) |
12 | | name | string | emoji's name |
13 | | createdBy | [user id](/resources/user#user-object) | user's id that created this emoji |
14 | | createdAt | ISO8601 timestamp | when this emoji was created |
15 | | png | string | aws url to this emoji's image file |
16 | | webp | string | aws url to this emoji's image file |
17 | | apng | string | aws url to this emoji's image file |
18 | | aliases | array of strings | an array of aliases this emoji can be used with |
19 | | teamId | [team id](/resources/team#team-object) | team's id that this emoji is from |
20 | | isDeleted | boolean | whether this emoji has been deleted |
21 | | discordEmojiId | ?snowflake | the discord emoji's id this emoji corresponds to |
22 | | discordSyncedAt | ?ISO8601 timestamp | when this emoji was last synced with its discord counterpart |
23 |
24 | ###### Emoji Example
25 |
26 | ```json
27 | {
28 | "id": 239839,
29 | "name": "beepboop",
30 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/36b263b547cf38de0d55ef01e1ab55ab-Full.webp?w=120&h=120",
31 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/36b263b547cf38de0d55ef01e1ab55ab-Full.webp?w=120&h=120",
32 | "apng": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/36b263b547cf38de0d55ef01e1ab55ab-Full.webp?w=120&h=120",
33 | "aliases": [],
34 | "createdAt": "2020-07-28T06:48:56.525Z",
35 | "createdBy": "EdVMVKR4",
36 | "teamId": "NRgqXnPE",
37 | "isDeleted": false,
38 | "discordEmojiId": null,
39 | "discordSyncedAt": "2020-07-28T06:49:03.668Z"
40 | }
41 | ```
42 |
43 | ### Emoji Pack Object
44 |
45 | !!! info
46 | Emoji packs can include a maximum of 50 emojis.
47 |
48 | ###### Emoji Pack Structure
49 |
50 | | Field | Type | Description |
51 | |--------|-------------------------|----------------------------------------------------------------------------------------------|
52 | | name | string | name of the emoji pack |
53 | | author | string | author of the emoji pack |
54 | | emojis | array of partial emojis | list of emojis to import. each item should include a `name` (alphanumberic only) and a `url` |
55 |
56 | ###### Example Emoji Pack
57 |
58 | ```json
59 | {
60 | "name": "Guilded emojis",
61 | "author": "emoji.gg",
62 | "emotes": [
63 | {
64 | "name": "gil_wut",
65 | "url": "https://emoji.gg/assets/emoji/6017_gil_wut.png"
66 | },
67 | {
68 | "name": "gil_woah",
69 | "url": "https://emoji.gg/assets/emoji/9837_gil_woah.png"
70 | },
71 | {
72 | "name": "gil_thumb",
73 | "url": "https://emoji.gg/assets/emoji/8264_gil_thumb.png"
74 | },
75 | {
76 | "name": "gil_think",
77 | "url": "https://emoji.gg/assets/emoji/2294_gil_think.png"
78 | },
79 | {
80 | "name": "gil_sweat",
81 | "url": "https://emoji.gg/assets/emoji/5722_gil_sweat.png"
82 | },
83 | {
84 | "name": "gil_smug",
85 | "url": "https://emoji.gg/assets/emoji/7756_gil_smug.png"
86 | },
87 | {
88 | "name": "gil_shrug",
89 | "url": "https://emoji.gg/assets/emoji/3769_gil_shrug.png"
90 | },
91 | {
92 | "name": "gil_scared",
93 | "url": "https://emoji.gg/assets/emoji/2002_gil_scared.png"
94 | },
95 | {
96 | "name": "gil_salute",
97 | "url": "https://emoji.gg/assets/emoji/7259_gil_salute.png"
98 | },
99 | {
100 | "name": "gil_ree",
101 | "url": "https://emoji.gg/assets/emoji/6400_gil_ree.png"
102 | },
103 | {
104 | "name": "gil_stare",
105 | "url": "https://emoji.gg/assets/emoji/9969_gil_stare.png"
106 | },
107 | {
108 | "name": "gil_notlikethis",
109 | "url": "https://emoji.gg/assets/emoji/1616_gil_notlikethis.png"
110 | },
111 | {
112 | "name": "gil_lul",
113 | "url": "https://emoji.gg/assets/emoji/5606_gil_lul.png"
114 | },
115 | {
116 | "name": "gil_lol",
117 | "url": "https://emoji.gg/assets/emoji/7890_gil_lol.png"
118 | },
119 | {
120 | "name": "gil_wave",
121 | "url": "https://emoji.gg/assets/emoji/2469_gil_wave.png"
122 | },
123 | {
124 | "name": "gil_heh",
125 | "url": "https://emoji.gg/assets/emoji/6192_gil_heh.png"
126 | },
127 | {
128 | "name": "guilded",
129 | "url": "https://emoji.gg/assets/emoji/7391_guilded.png"
130 | },
131 | {
132 | "name": "gil_facepalm",
133 | "url": "https://emoji.gg/assets/emoji/7256_gil_facepalm.png"
134 | },
135 | {
136 | "name": "gil_eyes",
137 | "url": "https://emoji.gg/assets/emoji/6197_gil_eyes.png"
138 | },
139 | {
140 | "name": "gil_doge",
141 | "url": "https://emoji.gg/assets/emoji/1037_gil_doge.png"
142 | },
143 | {
144 | "name": "gil_deal_with_it",
145 | "url": "https://emoji.gg/assets/emoji/2315_gil_deal_with_it.png"
146 | },
147 | {
148 | "name": "gil_dab",
149 | "url": "https://emoji.gg/assets/emoji/5387_gil_dab.png"
150 | },
151 | {
152 | "name": "gil_cry",
153 | "url": "https://emoji.gg/assets/emoji/4846_gil_cry.png"
154 | },
155 | {
156 | "name": "cheer_gil",
157 | "url": "https://emoji.gg/assets/emoji/8188_cheer_gil.png"
158 | }
159 | ]
160 | }
161 | ```
162 |
163 | ## Get Team Emojis
164 | GET/teams/{[team.id](/resources/team#team-object)}/customReactions
165 |
166 | Returns a list of [emoji](#custom-emoji-object) objects for the given team.
167 |
168 | ###### Query Params
169 |
170 | | Field | Type | Description | Required | Default |
171 | |------------------|----------------------------------------|----------------------------------------------------------------------|----------|---------|
172 | | maxItems | integer | the maximum number of emojis to return | | |
173 | | when[upperValue] | ISO8601 timestamp | return emojis created after this time | false | |
174 | | when[lowerValue] | ISO8601 timestamp | return emojis created before this time | false | |
175 | | createdBy | [user id](/resources/user#user-object) | return emojis created by this user's id | false | |
176 | | searchTerm | string | search emoji names with a string | false | |
177 | | beforeId | [emoji id](#custom-emoji-object) | return emojis created before this emoji was created (for pagination) | false | |
178 |
179 | ## Emoji Packs
180 |
181 | This section has been moved to [Media Endpoints](/topics/media#get-custom-emoji-pack).
182 |
183 | ## Get Team Emoji Creators
184 | GET/teams/{[team.id](/resources/team#team-object)}/customReactionCreators
185 |
186 | Get a list of users who have created emojis in this team.
187 |
188 | !!! info
189 | This will return each user once. To see how many emojis a specific user has uploaded, consider filtering the response from [Get Team Emojis](#get-team-emojis)
190 |
191 | ###### Example Response
192 |
193 | ```json
194 | [
195 | {"userId": "EdVMVKR4"},
196 | {"userId": "lAeMagzA"}
197 | ]
198 | ```
199 |
--------------------------------------------------------------------------------
/docs/resources/group.md:
--------------------------------------------------------------------------------
1 | # Groups
2 |
3 | A group is a sub-section of a [team](/resources/team) that allows for custom membership based on roles. They can have a custom icon and name (under the main team's name) in the sidebar, making them somewhat of a middle ground between a permission-locked category and a separate team entirely.
4 |
5 | ### Group Object
6 |
7 | ###### Group Structure
8 |
9 | | Field | Type | Description |
10 | |---------------------------------|-------------------------------|-----------------------------------------------------------------------|
11 | | id | [generic id](/reference#ids) | the id of this group |
12 | | name | string | the name of this group |
13 | | description | ?string | the description of this group |
14 | | priority | integer | where this group is visually the sidebar (base group is 1, not 0) |
15 | | type | string | the type of this group. unsure in what context it would not be 'team' |
16 | | avatar | ?string | the group's avatar url |
17 | | banner | ?string | the group's banner url |
18 | | teamId | [generic id](/reference#ids) | the id of the team that this group is part of |
19 | | gameId | ?integer | the id of the game (if any) that this group has been assigned |
20 | | additionalGameInfo | dictionary | ??? |
21 | | visibilityTeamRoleId | integer | the primary role id that is allowed to view this group |
22 | | visibilityTeamRoleIds | array of integer | all role ids that are allowed to view this group |
23 | | additionalVisibilityTeamRoleIds | ?array of integer | extra role ids that are allowed to view this group |
24 | | membershipTeamRoleId | integer | the primary role id that is a member of this group |
25 | | membershipTeamRoleIds | array of integer | all role ids that are a member of this group |
26 | | additionalMembershipTeamRoleIds | ?array of integer | extra role ids that are a member of this group |
27 | | isBase | boolean | whether this group is the base group, or "Server home" in the UI |
28 | | createdAt | ISO8601 timestamp | when this group was created |
29 | | createdBy | ?[generic id](/reference#ids) | the id of the user who created this group (null if base) |
30 | | updatedAt | ?ISO8601 timestamp | when this group was last updated (edited) |
31 | | updatedBy | ?[generic id](/reference#ids) | the id of the user who last updated (edited) this group |
32 | | deletedAt | ?ISO8601 timestamp | when this group was deleted |
33 | | customReactionId | ?integer | the custom emoji assigned to this group (just spitballing here) |
34 | | isPublic | boolean | whether this group can be seen without being in the server |
35 | | archivedAt | ?ISO8601 timestamp | when this group was archived |
36 | | archivedBy | ?[generic id](/reference#ids) | the id of the user who archived this group |
37 | | membershipUpdates | array | ??? |
38 |
--------------------------------------------------------------------------------
/docs/resources/team.md:
--------------------------------------------------------------------------------
1 | # Teams
2 |
3 | The meat of communication on Guilded. They are referred to as "servers" in the UI.
4 |
5 | ### Team Object
6 |
7 | ###### Team Structure
8 |
9 | | Field | Type | Description |
10 | |-----------------------|--------------------------------------------------------|---------------------------------------------------------------------------------|
11 | | id | [generic id](/reference#ids) | the team's id |
12 | | name | string | the team's name |
13 | | subdomain | ?string | custom "url" of the team. equivalent to discord's `vanity_url_code` |
14 | | description | ?string | the team's description |
15 | | bio (deprecated) | ?string | the team's bio - deprecated in favor of `description` |
16 | | profilePicture | ?string | the team's avatar url |
17 | | teamDashImage | ?string | the team's banner url |
18 | | ownerId | [user id](/reference#ids) | id of the team's owner |
19 | | createdAt | ISO8601 timestamp | when the team was created |
20 | | type | string | the [type of team](#team-types) |
21 | | members?\* | array of [members](#team-member-object) | the members in this team |
22 | | bots?\*\* | array of flow-bots | the flow-bots in this team |
23 | | webhooks?\*\* | array of [webhooks](/resources/webhook#webhook-object) | the webhooks in this team |
24 | | baseGroup | [group](/resources/group#group-object) | the team's base group |
25 | | visibility | string | the team's [visibility setting](#team-visibility) |
26 | | isRecruiting | boolean | whether the team is accepting new applications |
27 | | isVerified | boolean | whether the team is verified |
28 | | isPro | boolean | whether the team is "pro" - probably deprecated |
29 | | isPublic | boolean | whether the team is public. true when `visibility` is `open-entry` |
30 | | isDiscoverable | boolean | whether the team will show up in search results & the server directory |
31 | | rolesById | object | mapping of role id (string) to role, plus a duplicate `baseRole` |
32 | | userFollowsTeam | boolean | whether the current users follows the team |
33 | | isUserApplicant? | boolean | whether the current user has a pending application in the team |
34 | | isUserInvited? | boolean | whether the current user has been invited to the team |
35 | | isUserBannedFromTeam? | boolean | whether the current user is banned from the team |
36 | | followerCount | ?integer | the number of followers the team has (approximate) |
37 | | memberCount | ?string | the number of members the team has (approximate) |
38 | | onlineMemberCount? | ?string | the number of non-offline members in the team |
39 | | measurements? | object | a [team measurements](#team-measurements-object) object for the team |
40 | | games? | array of [games ids](/resources/user#game-ids) | the games that the team plays |
41 | | additionalGameInfo | object | mapping of game id to `region` and `platformps4,xbox,pc`, both optional strings |
42 |
43 | \* `members` will only contain the current user's member data for the [Get Team Info](#get-team-info) response.
44 |
45 | \*\* `bots` and `webhooks` are not present for the [Get Team Info](#get-team-info) response.
46 |
47 | ###### Example Team
48 |
49 | ```json
50 | {
51 | "id": "4R5q39VR",
52 | "name": "Guilded-API",
53 | "subdomain": "guilded-api",
54 | "bio": null,
55 | "status": null,
56 | "timezone": "America/New York (EST/EDT)",
57 | "description": "The unofficial resource hub for all API-related projects and development to do with the Guilded API. API docs: guildedapi.com",
58 | "type": "community",
59 | "visibility": "open-entry",
60 | "createdAt": "2020-07-31T18:10:35.302Z",
61 | "ownerId": "EdVMVKR4",
62 | "profilePicture": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/TeamAvatar/a66e23924a4bc49fbf9242a98d955a7c-Large.png?w=450&h=450",
63 | "teamDashImage": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/TeamBanner/62d94db23c910fa3a209b5edf2cf7387-Hero.png?w=1067&h=600",
64 | "homeBannerImageSm": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/TeamBanner/62d94db23c910fa3a209b5edf2cf7387-Hero.png?w=1067&h=600",
65 | "homeBannerImageMd": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/TeamBanner/62d94db23c910fa3a209b5edf2cf7387-Hero.png?w=1067&h=600",
66 | "homeBannerImageLg": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/TeamBanner/62d94db23c910fa3a209b5edf2cf7387-Hero.png?w=1067&h=600",
67 | "additionalInfo": {
68 | "platform": "native"
69 | },
70 | "additionalGameInfo": {},
71 | "teamPreferences": null,
72 | "socialInfo": {
73 | "twitter": "@GuildedAPI"
74 | },
75 | "isRecruiting": false,
76 | "isVerified": false,
77 | "isPro": false,
78 | "isPublic": true,
79 | "notificationPreference": null,
80 | "isDiscoverable": true,
81 | "baseGroup": {
82 | "id": "l3GmAe9d",
83 | "type": "team",
84 | "name": "Server home",
85 | "description": null,
86 | "avatar": null,
87 | "banner": null,
88 | "priority": 1,
89 | "teamId": "4R5q39VR",
90 | "gameId": null,
91 | "visibilityTeamRoleId": 23138884,
92 | "membershipTeamRoleId": 23138884,
93 | "isBase": true,
94 | "isPublic": true,
95 | "additionalGameInfo": {},
96 | "createdBy": null,
97 | "createdAt": "2020-07-31T18:10:35.376Z",
98 | "updatedBy": "EdVMVKR4",
99 | "customReactionId": null,
100 | "updatedAt": "2021-05-03T19:20:08.249Z",
101 | "deletedAt": null,
102 | "archivedAt": null,
103 | "archivedBy": null
104 | },
105 | "followingGroups": [],
106 | "rolesById": {
107 | "26302427": {
108 | "id": 26302427,
109 | "name": "Bot",
110 | "color": "#ffffff",
111 | "permissions": {"xp":1,"bots":1,"chat":503,"docs":15,"forms":18,"lists":63,"media":15,"voice":8179,"forums":123,"general":130100,"streams":51,"brackets":3,"calendar":31,"scheduling":11,"matchmaking":21,"recruitment":55,"announcements":7,"customization":49},
112 | "priority": 17,
113 | "teamId": "4R5q39VR",
114 | "createdAt": "2021-12-01T17:11:43.610Z",
115 | "updatedAt": "2022-03-02T22:47:11.473Z",
116 | "isBase": false,
117 | "discordRoleId": null,
118 | "discordSyncedAt": null,
119 | "isMentionable": false,
120 | "isSelfAssignable": false,
121 | "isDisplayedSeparately": false,
122 | "botScope": {"userId":null}
123 | },
124 | "baseRole": {
125 | "id": 23138884,
126 | "name": "Member",
127 | "color": "#ececee",
128 | "permissions": {"chat":243,"docs":2,"forms":16,"lists":2,"media":2,"voice":6211,"forums":67,"streams":51,"calendar":2,"scheduling":3,"announcements":2,"customization":16},
129 | "priority": 1,
130 | "teamId": "4R5q39VR",
131 | "createdAt": "2020-07-31T18:10:35.350Z",
132 | "updatedAt": "2022-03-02T22:47:11.473Z",
133 | "isBase": true,
134 | "discordRoleId": null,
135 | "discordSyncedAt": null,
136 | "isMentionable": true,
137 | "isSelfAssignable": false,
138 | "isDisplayedSeparately": true,
139 | "botScope": null
140 | }
141 | },
142 | "userFollowsTeam": false,
143 | "followerCount": 88,
144 | "memberCount": "1958",
145 | "members": [
146 | {
147 | "id": "EdVMVKR4",
148 | "name": "shay",
149 | "type": "user",
150 | "membershipRole": "admin",
151 | "profilePicture": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/c2da767cf9795e7c73facc399159fefc-Large.png?w=450&h=450",
152 | "roleIds": [23138891,23281097,23138936,23139118,23138883]
153 | }
154 | ],
155 | "upsell": null,
156 | "serverSubscriptionPlans": [],
157 | "teamPaymentInfo": null,
158 | "games": [],
159 | "bannerImages": {},
160 | "lfmStatusByGameId": {},
161 | "drawbridgeGateEnabled": false,
162 | "flair": [
163 | {
164 | "id": 3
165 | }
166 | ],
167 | "socialLinks": []
168 | }
169 | ```
170 |
171 | ##### Team Types
172 |
173 | Team types are probably used in server discovery.
174 |
175 | | Value |
176 | |--------------|
177 | | team |
178 | | organization |
179 | | community |
180 | | clan |
181 | | guild |
182 | | friends |
183 | | streaming |
184 | | other |
185 |
186 | ##### Team Visibility
187 |
188 | Reflects the team's [privacy setting](https://www.guilded.gg/blog/server-privacy).
189 |
190 | | Value | Meaning | Default |
191 | |------------|-------------------------------------------------------------------------------------------------------------------|---------|
192 | | private | the team is not visible through its direct link and cannot show up in search results | false |
193 | | default | the team is visible through its direct link and will show up in search results if `team.isDiscoverable` is `true` | true |
194 | | open-entry | `default`, but the team does not require an invite to join | false |
195 |
196 | ### Team Measurements Object
197 |
198 | This object contains some statistics about the team. When available, you should prefer this object's `numMembers` over `team.memberCount` because it is more accurate.
199 |
200 | ###### Team Measurements Structure
201 |
202 | | Field | Type | Description |
203 | |------------------------------------------|-------------------|-------------------------------------------------------------------------------------------------------------------------|
204 | | numMembers | integer | the number of members the team has |
205 | | numFollowers | integer or string | the number of followers the team has |
206 | | numRecentMatches | integer | the number of matches the team has participated in recently |
207 | | numRecentMatchWins | integer | the number of matches the team has won recently |
208 | | matchmakingGameRanks | array | |
209 | | numFollowersAndMembers | integer | `numMembers` + `numFollowers` |
210 | | numMembersAddedInLastDay | integer | the number of members who have joined the team in the last 24 hours |
211 | | numMembersAddedInLastWeek | integer | the number of members who have joined the team in the last 7 days |
212 | | numMembersAddedInLastMonth | integer | the number of members who have joined the team in the last 30 days |
213 | | mostRecentMemberLastOnline | integer | unix timestamp of the last time a member was not offline in the team |
214 | | subscriptionMonthsRemaining (deprecated) | ?integer | the number of months remaining on the team's [guilded gold subscription](https://www.guilded.gg/p/new-feature-november) |
215 |
216 | ### Team Member Object
217 |
218 | ###### Team Member Structure
219 |
220 | | Field | Type | Description |
221 | |---------------------|-------------------------------------------------------------|---------------------------------------------------------------------------|
222 | | id | [generic id](/reference#ids) | the user's id |
223 | | name | string | the user's username, not unique across the platform |
224 | | nickname | string | the member's team-specific nickname |
225 | | badges | ?array | the badges that this member has ("GuildedStaff", "PartnerProgram", ?) |
226 | | membershipRole | string | ? |
227 | | profilePicture | string (url) | the user's avatar url |
228 | | profileBannerBlur | ?string (url) | the user's banner url |
229 | | joinDate | ISO8601 timestamp | when this member joined their team |
230 | | userStatus | [user status object](/resources/user#user-status-object) | this user's current activity/"status" |
231 | | userPresenceStatus | integer | this [user's presence](/resources/user#user-presence) (online, idle, etc) |
232 | | userTransientStatus | [transient status object](/resources/user#transient-status) | this user's transient status (game, streaming, ?) |
233 | | aliases | array | the linked games on the user's profile |
234 | | lastOnline | ISO8601 timestamp | when the user was last online |
235 | | roleIds | array of integer | the roles' ids that the member has |
236 | | subscriptionType | ?integer(?) | guilded gold-related value |
237 | | socialLinks | array of dictionaries | each item has `type` - the platform, `handle` - the user's username on that platform, and `additionalInfo` - unknown |
238 | | teamXp | integer | how much xp the member has in this team |
239 |
240 | ###### Example Team Member
241 |
242 | ```json
243 | {
244 | "id": "EdVMVKR4",
245 | "name": "shay",
246 | "nickname": null,
247 | "badges": null,
248 | "joinDate": "2020-07-31T18:10:35.302Z",
249 | "membershipRole": "admin",
250 | "lastOnline": "2021-03-07T05:22:09.597Z",
251 | "profilePicture": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/74bfc8be9425a926a1f48d9b078509bc-Large.png?w=450&h=450",
252 | "profileBannerBlur": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserBanner/acaa9d0f78dd8cdd93f3ce44d14c0260-Hero.png?w=1500&h=500",
253 | "userStatus": {
254 | "content": null,
255 | "customReactionId": 294765,
256 | "customReaction": {
257 | "id": 294765,
258 | "name": "ablobwobwork",
259 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
260 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
261 | "apng": null
262 | }
263 | },
264 | "roleIds": [
265 | 23138883,
266 | 23138891,
267 | 23138936,
268 | 23139118,
269 | 23281097
270 | ],
271 | "subscriptionType": null,
272 | "socialLinks": [
273 | {
274 | "type": "twitter",
275 | "handle": "GuildedAPI",
276 | "additionalInfo": {}
277 | }
278 | ],
279 | "aliases": [],
280 | "userPresenceStatus": 1,
281 | "userTransientStatus": null,
282 | "teamXp": 0
283 | }
284 | ```
285 |
286 | ### Ban Object
287 |
288 | ###### Ban Structure
289 |
290 | | Field | Type | Description |
291 | |-----------|-------------------------------------------------|------------------------------------------------------|
292 | | reason | string | the reason for the ban (can be empty, won't be null) |
293 | | userId | [user id](/resources/user#user-object) | the banned user's id |
294 | | bannedBy | [user id](/resources/user#user-object) | the moderator who banned this user |
295 | | createdAt | ISO8601 timestamp | when this ban was created |
296 |
297 | ###### Example Ban
298 |
299 | ```json
300 | {
301 | "reason": "something funny here, idk",
302 | "userId": "2d2Wg8Pm",
303 | "bannedBy": "EdVMVKR4",
304 | "createdAt": "2021-03-13T18:15:53.622Z"
305 | }
306 | ```
307 |
308 | ### Invite Object
309 |
310 | ###### Invite Structure
311 |
312 | | Field | Type | Description |
313 | |-----------|-----------------------------------------|----------------------------------------------------------------|
314 | | id | [generic id](/reference#ids) | the invite's id, referred to as an 'invite code' in the client |
315 | | createdAt | ISO8601 timestamp | when the invite was created |
316 | | teamId | [team id](#team-object) | the team's id that the invite is for |
317 | | invitedBy | [user id](/resources/user#user-object) | the user's id who created the invite |
318 | | userBy | ?[user id](/resources/user#user-object) | a user's id who used the invite? |
319 | | gameId | ?integer | the game's id that the invite is for |
320 | | useCount | integer | how many times the invite has been used |
321 |
322 | ###### Example Invite
323 |
324 | ```json
325 | {
326 | "id": "XENGAmn2",
327 | "createdAt": "2021-02-26T22:43:52.380Z",
328 | "teamId": "4R5q39VR",
329 | "invitedBy": "EdVMVKR4",
330 | "usedBy": null,
331 | "gameId": null,
332 | "useCount": 0
333 | }
334 | ```
335 |
336 | ## Get Team Info
337 | GET/teams/{[team.id](#team-object)}/info
338 |
339 | Returns a [team](#team-object) object wrapped in a `team` key on success. If the team is invalid or private, this returns HTTP 404.
340 |
341 | ## Get Team Channels
342 | GET/teams/{[team.id](#team-object)}/channels
343 |
344 | Returns a list of team [channel](/resources/channel#channel-object) objects.
345 |
346 | ## List Team Members
347 | GET/teams/{[team.id](#team-object)}/members
348 |
349 | Returns a list of partial [team members](#team-member-object), flow bots, and [webhooks](/topics/webhook#webhook-object) under `members`, `bots`, and `webhooks` keys respectively. A partial team member object includes, at minimum, `id` and `name`, but may also include one or multiple of `profilePicture`, `roleIds`, `userPresenceStatus`, and `nickname`.
350 |
351 | ## Detail Team Members
352 | POST/teams/{[team.id](#team-object)}/members/detail
353 |
354 | Returns an object of provided user IDs to [team members](#team-member-object).
355 |
356 | ###### JSON Params
357 |
358 | | Field | Type | Description |
359 | |------------------|----------------------------------------|-----------------------------------------------------------------------------------------------|
360 | | userIds | array of [generic ids](/reference#ids) | the members' IDs to get member details for |
361 | | idsForBasicInfo? | array of [generic ids](/reference#ids) | if an ID is included here, its entry in the response will also include basic user information |
362 |
363 | ###### Example Response
364 |
365 | ```json
366 | {
367 | "EdVMVKR4": {
368 | "userStatus": {
369 | "content": null,
370 | "customReactionId": 925765,
371 | "customReaction": {
372 | "id": 925765,
373 | "name": "blobspider",
374 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/b721e28333392c335fcff52eb27997fd-Full.webp?w=120&h=120",
375 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/b721e28333392c335fcff52eb27997fd-Full.webp?w=120&h=120",
376 | "apng": null
377 | }
378 | },
379 | "id": "EdVMVKR4",
380 | "name": "shay",
381 | "membershipRole": "admin",
382 | "profilePicture": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/c2da767cf9795e7c73facc399159fefc-Large.png?w=450&h=450",
383 | "userTransientStatus": null,
384 | "teamXp": 117,
385 | "lastOnline": "2022-04-29T21:10:42.120Z",
386 | "joinDate": "2020-07-31T18:10:35.302Z",
387 | "stonks": 56
388 | }
389 | }
390 | ```
391 |
--------------------------------------------------------------------------------
/docs/resources/user.md:
--------------------------------------------------------------------------------
1 | # Users
2 |
3 | Users are everywhere. They're in our servers, our DMs, our friends lists.. and in this documentation page!
4 |
5 | ### User Object
6 |
7 | ###### User Structure
8 |
9 | | Field | Type | Description |
10 | |------------------------|--------------------------------------------------------|-----------------------------------------------------------------------|
11 | | id | [generic id](/reference#ids) | the user's id |
12 | | name | string | the user's username, not unique across the platform |
13 | | type | string | the [type of user](#user-types) |
14 | | subdomain | ?string | the user's unique profile url |
15 | | aliases | array | the linked games on the user's profile |
16 | | email | ?string | the user's email. null if this is not you |
17 | | serviceEmail | ?string | ? |
18 | | profilePicture | string (url) | the user's avatar url |
19 | | profilePictureSm | string (url) | ^ |
20 | | profilePictureLg | string (url) | ^ |
21 | | profilePictureBlur | string (url) | ^ |
22 | | profileBannerSm | ?string (url) | the user's banner url |
23 | | profileBannerLg | ?string (url) | ^ |
24 | | profileBannerBlur | ?string (url) | ^ |
25 | | createdAt | ISO8601 timestamp | when the user's account was created |
26 | | joinDate? (deprecated) | ISO8601 timestamp | when the user's account was created. `createdAt` may appear instead |
27 | | steamId | ?string | this user's steam id, if linked |
28 | | userStatus | [user status object](#user-status-object) | this user's current activity/"status" |
29 | | userPresenceStatus | integer | this [user's presence](#user-presence) (online, idle, etc) |
30 | | userTransientStatus | [transient status object](#transient-status) | this user's transient status (game, streaming, ?) |
31 | | moderationStatus | ?string | this user's moderation status (e.g. banned, deleted) |
32 | | aboutInfo | [about info object](#about-info-object) | this user's bio and tagline |
33 | | lastOnline | ISO8601 timestamp | when this user was last online |
34 | | stonks? | integer | number of "stonks" the user has gotten from inviting people |
35 | | flairInfos? | array of [flair objects](#flair-object) | the flairs the user has on their profile |
36 | | teams? | boolean, array of [teams](/resources/team#team-object) | `false` if the user is not yourself, otherwise an array of your teams |
37 |
38 | ###### Example User
39 |
40 | ```json
41 | {
42 | "id": "EdVMVKR4",
43 | "name": "shay",
44 | "type": "user",
45 | "subdomain": "shayy",
46 | "aliases": [
47 | {
48 | "alias": "shay",
49 | "discriminator": null,
50 | "name": "shay",
51 | "createdAt": "2021-03-03T21:02:19.901444+00:00",
52 | "userId": "EdVMVKR4",
53 | "gameId": 220015,
54 | "socialLinkSource": null,
55 | "additionalInfo": {},
56 | "editedAt": "2021-03-03T21:02:19.901444+00:00",
57 | "socialLinkHandle": null,
58 | "playerInfo": null
59 | }
60 | ],
61 | "email": null,
62 | "profilePicture": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/74bfc8be9425a926a1f48d9b078509bc-Large.png?w=450&h=450",
63 | // Some profilePicture and banner keys removed for brevity
64 | "createdAt": "2020-07-27T14:07:28.336Z",
65 | "steamId": null,
66 | "userStatus": {
67 | "content": null,
68 | "customReactionId": 294765,
69 | "customReaction": {
70 | "id": 294765,
71 | "name": "ablobwobwork",
72 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
73 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
74 | "apng": null
75 | }
76 | },
77 | "moderationStatus": null,
78 | "aboutInfo": {
79 | "tagLine": "computer user"
80 | },
81 | "lastOnline": "2021-03-08T00:24:49.144Z",
82 | "serviceEmail": null,
83 | "userPresenceStatus": 1,
84 | "userTransientStatus": null,
85 | "stonks": 2
86 | }
87 | ```
88 |
89 | ##### User Types
90 |
91 | | Type | Description |
92 | |------|------------------------|
93 | | user | the account is a human |
94 | | bot | the account is a bot |
95 |
96 | ### User Presence
97 |
98 | | Value | Meaning |
99 | |-------|-------------------|
100 | | 1 | online |
101 | | 2 | idle |
102 | | 3 | dnd |
103 | | 4 | offline/invisible |
104 |
105 | ### Transient Status Object
106 |
107 | | Field | Type | Description |
108 | |-----------------|-------------------------------------|------------------------------------------|
109 | | id | integer | |
110 | | gameId | ?integer | the game's id this status is for (see the game ids table below for known valid values) |
111 | | name? | string | the game's name (should be included if gameId is null) |
112 | | type | string | the type of status ("gamepresence", ?) |
113 | | startedAt | ISO8601 timestamp | when this status started |
114 | | guildedClientId | [uuid](/reference#ids) | the client's id that this status is from |
115 |
116 | ###### Game IDs
117 |
118 | If you want to use this list in your application, feel free to grab it in [JSON format from our datatables repo](https://git.guildedapi.com/datatables/blob/main/games.json).
119 |
120 | | ID | Game |
121 | |--------|------------------------------------------|
122 | | 10100 | Overwatch |
123 | | 10200 | League of Legends |
124 | | 10300 | CounterStrike: Global Offensive |
125 | | 10400 | Dota 2 |
126 | | 10500 | Minecraft |
127 | | 10600 | World of Tanks |
128 | | 10700 | Battlefield 4 |
129 | | 10800 | World of Warcraft |
130 | | 10900 | Call of Duty: Black Ops III |
131 | | 101000 | Smite |
132 | | 101100 | Heroes of the Storm |
133 | | 101200 | Halo 5: Guardians |
134 | | 101300 | Tom Clancy’s The Division |
135 | | 101400 | Guild Wars 2 |
136 | | 101500 | Final Fantasy XIV: Shadowbringers |
137 | | 101600 | Starcraft II |
138 | | 101700 | The Elder Scrolls Online |
139 | | 101800 | Team Fortress II |
140 | | 101900 | Destiny |
141 | | 102000 | Terraria |
142 | | 102100 | Star Wars: The Old Republic |
143 | | 102200 | ArcheAge Unchained |
144 | | 102300 | Runescape |
145 | | 102400 | Diablo III |
146 | | 102500 | Vainglory |
147 | | 102600 | Clash of Clans |
148 | | 102700 | Rocket League |
149 | | 102800 | Pokémon GO |
150 | | 102900 | Grand Theft Auto V |
151 | | 103000 | EVE Online |
152 | | 103100 | ARK: Survival Evolved |
153 | | 103200 | Arma 3 |
154 | | 103300 | Battlefield 1 |
155 | | 103400 | Black Desert Online |
156 | | 103500 | Call of Duty: Infinite Warfare |
157 | | 103600 | DayZ |
158 | | 103700 | Elite Dangerous |
159 | | 103800 | H1Z1: Just Survive |
160 | | 103900 | Miscreated |
161 | | 104000 | Neverwinter |
162 | | 104100 | Path of Exile |
163 | | 104200 | Rainbow Six Siege |
164 | | 104300 | Rust |
165 | | 104400 | Starbound |
166 | | 104500 | Star Citizen |
167 | | 104600 | Tabletop Simulator |
168 | | 104700 | Secret World Legends |
169 | | 104800 | Titanfall |
170 | | 104900 | Titanfall 2 |
171 | | 105000 | Total War: WARHAMMER |
172 | | 105100 | Warframe |
173 | | 105200 | No Man's Sky |
174 | | 105300 | Dragon Quest X |
175 | | 105400 | Ingress |
176 | | 105500 | Phantasy Star Online 2 |
177 | | 105600 | Skyforge |
178 | | 105700 | Tera |
179 | | 105800 | Wildstar |
180 | | 105900 | Metal Gear Online |
181 | | 106000 | Super Smash Bros. for Wii U |
182 | | 106100 | 7 Days to Die |
183 | | 106200 | Air Mech |
184 | | 106300 | Battleborn |
185 | | 106400 | Blacklight: Retribution |
186 | | 106500 | Battlecry |
187 | | 106600 | Chivalry |
188 | | 106700 | Civilization VI |
189 | | 106800 | Dragon Ball Xenoverse 2 |
190 | | 106900 | Dragon Nest |
191 | | 107000 | The Elder Scrolls: Legends |
192 | | 107100 | EVE: Valkyrie |
193 | | 107200 | For Honor |
194 | | 107300 | Forza Horizon 3 |
195 | | 107400 | Gears of War 4 |
196 | | 107500 | Gigantic |
197 | | 107600 | Gran Turismo Sport |
198 | | 107700 | Halo Wars 2 |
199 | | 107800 | Hawken |
200 | | 107900 | Hearthstone |
201 | | 108000 | Heroes of Newerth |
202 | | 108100 | LawBreakers |
203 | | 108200 | Marvel Heroes |
204 | | 108300 | Paragon |
205 | | 108400 | Portal Knights |
206 | | 108500 | Riders of Icarus |
207 | | 108600 | Scrolls |
208 | | 108700 | Stardew Valley |
209 | | 108800 | Star Wars Battlefront |
210 | | 108900 | Street Fighter V |
211 | | 109000 | Strife |
212 | | 109100 | Tekken 7 |
213 | | 109200 | The Crew |
214 | | 109300 | Trove |
215 | | 109400 | Warhammer 40000: Eternal Crusade |
216 | | 109500 | XCOM2 |
217 | | 109600 | Halo Wars |
218 | | 109700 | APB Reloaded |
219 | | 109800 | Arena of Fate |
220 | | 109900 | Call of Duty: Advanced Warfare |
221 | | 110000 | Crossout |
222 | | 110100 | Crusader Kings 2 |
223 | | 110200 | Duelyst |
224 | | 110300 | Dungeon Fighter Online |
225 | | 110400 | Evolve |
226 | | 110500 | Ghost Recon: Wildlands |
227 | | 110600 | Guns of Icarus |
228 | | 110700 | Heroes & Generals |
229 | | 110800 | Killing Floor 2 |
230 | | 110900 | King of Fighters XIV |
231 | | 111000 | Master of Orion |
232 | | 111100 | Battlefield Hardline |
233 | | 111200 | Of Kings And Men |
234 | | 111300 | Planetside 2 |
235 | | 111400 | Robocraft |
236 | | 111500 | Savage Resurrection |
237 | | 111600 | Shop Heroes |
238 | | 111700 | Warface |
239 | | 111800 | War Thunder |
240 | | 111900 | The Walking Dead: Road to Survival |
241 | | 112100 | Aion |
242 | | 112200 | Armello |
243 | | 112300 | Atlas Reactor |
244 | | 112400 | Blade & Soul |
245 | | 112500 | Camelot Unchained |
246 | | 112600 | Lineage 2 |
247 | | 112700 | Master X Master |
248 | | 112800 | Onward |
249 | | 112900 | RIGS Mechanized Combat League |
250 | | 113000 | The Black Watchmen |
251 | | 113100 | Critical Ops |
252 | | 113200 | Dead Or Alive 5 |
253 | | 113300 | Depth |
254 | | 113400 | DirtyBomb |
255 | | 113500 | Plants vs Zombies 2 |
256 | | 113600 | Pro Evolution Soccer |
257 | | 113700 | Star Trek Online |
258 | | 113800 | Strike Vector |
259 | | 113900 | The Tomorrow Children |
260 | | 114000 | Transformers: Fall of Cybertron |
261 | | 115000 | Ashes of the Singularity |
262 | | 116000 | Battlerite |
263 | | 117000 | Borderlands |
264 | | 118000 | Borderlands: The Pre-Sequel |
265 | | 119000 | Civilization: Beyond Earth |
266 | | 120000 | Creativerse |
267 | | 121000 | Day of Infamy |
268 | | 122000 | Dead by Daylight |
269 | | 123000 | Divinity: Original Sin |
270 | | 124000 | Divinity: Original Sin 2 |
271 | | 125000 | Endless Space 2 |
272 | | 126000 | E.T. Armies |
273 | | 127000 | EverQuest 2 |
274 | | 128000 | Faeria |
275 | | 129000 | FIFA 17 |
276 | | 130000 | Formula One 2016 |
277 | | 131000 | Fractured Space |
278 | | 132000 | Garry's Mod |
279 | | 133000 | Helldivers |
280 | | 134000 | Homeworld |
281 | | 135000 | Hybrid Wars |
282 | | 136000 | Insurgency |
283 | | 137000 | Left 4 Dead 2 |
284 | | 139000 | Loadout |
285 | | 140000 | Looterkings |
286 | | 141000 | Madden NFL 17 |
287 | | 142000 | MechWarrior Online |
288 | | 143000 | Mercenary Kings |
289 | | 144000 | Metal Gear Survive |
290 | | 145000 | Mirage: Arcane Warfare |
291 | | 146000 | Morphies Law |
292 | | 147000 | NBA 2K17 |
293 | | 148000 | Osiris: New Dawn |
294 | | 149000 | Out of Ammo |
295 | | 150000 | Paladins |
296 | | 151000 | Pit People |
297 | | 152000 | Pokken Tournament |
298 | | 153000 | Quake Champions |
299 | | 154000 | Sea of Thieves |
300 | | 155000 | Shard Games |
301 | | 156000 | ShootMania Storm |
302 | | 157000 | SMASH+GRAB |
303 | | 158000 | Splatoon |
304 | | 159000 | Summoners War |
305 | | 160000 | TowerFall |
306 | | 161000 | Toxikk |
307 | | 162000 | Tribes: Ascend |
308 | | 163000 | Umbrella Corps |
309 | | 164000 | Uncharted 4 |
310 | | 165000 | Unreal Tournament |
311 | | 166000 | Versus: Battle of the Gladiator |
312 | | 168000 | Armored Warfare |
313 | | 169000 | Breakaway |
314 | | 170000 | Clash Royale |
315 | | 171000 | H1Z1: King of the Kill |
316 | | 172000 | Infinite Tanks |
317 | | 173000 | Midair |
318 | | 174000 | Nidhogg |
319 | | 175000 | Nidhogg 2 |
320 | | 176000 | Redout |
321 | | 177000 | Shards Online |
322 | | 178000 | Space Hulk: Deathwing |
323 | | 179000 | Watch Dogs 2 |
324 | | 180000 | World of Warplanes |
325 | | 181000 | World of Warships |
326 | | 182000 | Astroneer |
327 | | 183000 | Endless Legend |
328 | | 184000 | Order & Chaos Online |
329 | | 185000 | Project Genom |
330 | | 186000 | Squad |
331 | | 187000 | Order & Chaos 2 |
332 | | 188000 | Conan Exiles |
333 | | 189000 | MU Legend |
334 | | 190000 | Mutant Football League |
335 | | 191000 | Revelation Online |
336 | | 192000 | Snow |
337 | | 193000 | Absolver |
338 | | 194000 | Agents of Mayhem |
339 | | 195000 | A Hat in Time |
340 | | 196000 | Battalion 1944 |
341 | | 197000 | Battletech |
342 | | 198000 | Crackdown 3 |
343 | | 199000 | Dauntless |
344 | | 200000 | EverQuest |
345 | | 201000 | Fortnite Battle Royale |
346 | | 202000 | Friday the 13th: The Game |
347 | | 203000 | Mass Effect: Andromeda |
348 | | 204000 | Lord of the Rings Online |
349 | | 205000 | Pantheon |
350 | | 206000 | Pillars of Eternity 2 |
351 | | 207000 | Red Dead Redemption 2 |
352 | | 208000 | Rift |
353 | | 209000 | State of Decay 2 |
354 | | 210000 | Albion Online |
355 | | 211000 | Chronicles of Elyria |
356 | | 212000 | Dark and Light |
357 | | 213000 | Grim Dawn |
358 | | 214000 | Playerunknown's Battlegrounds |
359 | | 215000 | Blockstorm |
360 | | 216000 | Destiny 2 |
361 | | 217000 | MapleStory |
362 | | 218000 | Gloria Victis |
363 | | 219000 | Starcraft |
364 | | 220000 | Tribal Wars 2 |
365 | | 220001 | Asta Online |
366 | | 220002 | Awesomenauts |
367 | | 220003 | Bless |
368 | | 220004 | Devilian |
369 | | 220005 | Gwent |
370 | | 220006 | STEAM HAMMER |
371 | | 220007 | The Unspoken |
372 | | 220008 | Titan Siege |
373 | | 220009 | Call of Duty: WWII |
374 | | 220010 | Age of Empires II |
375 | | 220011 | Crossfire |
376 | | 220012 | Foxhole |
377 | | 220013 | Hearts of Iron 4 |
378 | | 220014 | Kingdom Hearts Union χ |
379 | | 220015 | Mario Kart 8 |
380 | | 220016 | Marvel vs Capcom: Infinite |
381 | | 220017 | Rising Storm 2: Vietnam |
382 | | 220018 | Star Wars Galaxy of Heroes |
383 | | 220019 | Stellaris |
384 | | 220020 | Surviving Mars |
385 | | 220022 | Wakfu |
386 | | 220023 | Worlds Adrift |
387 | | 220024 | Arena of Valor |
388 | | 220025 | Aura Kingdom |
389 | | 220026 | Black Squad |
390 | | 220027 | Castle Story |
391 | | 220028 | Citadel |
392 | | 220029 | Crowfall |
393 | | 220030 | Crusaders of Light |
394 | | 220031 | Divekick |
395 | | 220032 | Escape from Tarkov |
396 | | 220033 | Everybody's Golf |
397 | | 220034 | FutureFight |
398 | | 220035 | Hyper Universe |
399 | | 220036 | Keystone |
400 | | 220037 | Kritika Online |
401 | | 220038 | Livelock |
402 | | 220039 | MOBA Legends |
403 | | 220040 | NextDay |
404 | | 220041 | Payday 2 |
405 | | 220042 | Planet Coaster |
406 | | 220043 | PWND |
407 | | 220044 | Roblox |
408 | | 220045 | Shadowverse |
409 | | 220046 | Spiral Knights |
410 | | 220047 | Splatoon 2 |
411 | | 220048 | Tower Unite |
412 | | 220049 | Tree of Life |
413 | | 220050 | Witch It |
414 | | 220051 | Alicia Online |
415 | | 220052 | Elyon - Ascent: Infinite Realm |
416 | | 220053 | Ashes of Creation |
417 | | 220054 | Brawl Stars |
418 | | 220055 | Darkfall: New Dawn |
419 | | 220056 | Darwin Project |
420 | | 220057 | Dissidia: Final Fantasy NT |
421 | | 220058 | Dofus |
422 | | 220059 | Dragon Ball FighterZ |
423 | | 220060 | Dual Universe |
424 | | 220061 | Dungeons & Dragons Online |
425 | | 220062 | Elsword |
426 | | 220063 | Heliborne |
427 | | 220064 | Lineage 2: Revolution |
428 | | 220065 | Lost Ark |
429 | | 220066 | Orcs Must Die! Unchained |
430 | | 220067 | Raiders of the Broken Planet |
431 | | 220068 | Star Wars Battlefront II |
432 | | 220069 | Tantra Rumble |
433 | | 220070 | The Exiled |
434 | | 220071 | Total War: ARENA |
435 | | 220072 | Total War: WARHAMMER II |
436 | | 220073 | Unison League |
437 | | 220074 | ValnirRok |
438 | | 221074 | Brawlhalla |
439 | | 222074 | Age of Conan: Unchained |
440 | | 223074 | Clash of Kings |
441 | | 224074 | Closers |
442 | | 225074 | Dungeons & Dragons |
443 | | 226074 | Eternal |
444 | | 227074 | Fantasy Strike |
445 | | 228074 | Fractured |
446 | | 229074 | Free Fire |
447 | | 230074 | Harry Potter: Wizards Unite |
448 | | 231074 | Hell Let Loose |
449 | | 232074 | Holdfast: Nations At War |
450 | | 233074 | Honkai Impact 3rd |
451 | | 234074 | iRacing |
452 | | 235074 | Ironsight |
453 | | 236074 | Kerbal Space Program |
454 | | 237074 | King of Avalon |
455 | | 238074 | Laser League |
456 | | 239074 | Maelstrom |
457 | | 240074 | Magic: The Gathering |
458 | | 241074 | Monster Hunter: World |
459 | | 242074 | OrbusVR |
460 | | 243074 | Pathfinder |
461 | | 244074 | Post Scriptum |
462 | | 245074 | Shadowrun |
463 | | 246074 | SoulWorker |
464 | | 247074 | Space Junkies |
465 | | 248074 | SpellForce 3 |
466 | | 249074 | Squids From Space |
467 | | 250074 | Stick Fight: The Game |
468 | | 251074 | 13th Age |
469 | | 252074 | The Wild Eight |
470 | | 253074 | Tree of Savior |
471 | | 254074 | Valiant Force |
472 | | 255074 | VRChat |
473 | | 256074 | War Dragons |
474 | | 257074 | Ylands |
475 | | 258074 | MapleStory 2 |
476 | | 259074 | Call of Duty: Black Ops 4 |
477 | | 260074 | Sky Noon |
478 | | 261074 | Unturned |
479 | | 262074 | War Robots |
480 | | 263074 | Game of Thrones: Conquest |
481 | | 264074 | Marvel Strike Force |
482 | | 265074 | Pokémon TCG Online |
483 | | 266074 | SCP: Secret Laboratory |
484 | | 267074 | Star Wars Commander |
485 | | 268074 | Raft |
486 | | 269074 | Tibia |
487 | | 270074 | TerraTech |
488 | | 271074 | Project: Gorgon |
489 | | 272074 | Life Is Feudal: MMO |
490 | | 273074 | Battlefield V |
491 | | 274074 | World of Tanks Blitz |
492 | | 275074 | Fallout: 76 |
493 | | 276074 | Infinite Flight |
494 | | 277074 | Europa Universalis IV |
495 | | 278074 | Rage 2 |
496 | | 279074 | Realm Royale |
497 | | 280074 | Skull & Bones |
498 | | 281074 | Super Smash Bros. Ultimate |
499 | | 282074 | Gears 5 |
500 | | 283074 | The Elder Scrolls: Blades |
501 | | 284074 | Generation Zero |
502 | | 285074 | Rend |
503 | | 286074 | The Division 2 |
504 | | 287074 | Defiance 2050 |
505 | | 288074 | Mavericks |
506 | | 289074 | Strange Brigade |
507 | | 290074 | Mario Tennis Aces |
508 | | 291074 | Eco |
509 | | 292074 | Town of Salem |
510 | | 293074 | Legends of Aria |
511 | | 294074 | Ragnarok Online |
512 | | 295074 | The Crew 2 |
513 | | 296074 | Captain Tsubasa: Dream Team |
514 | | 297074 | Remnant: From the Ashes |
515 | | 298074 | FIFA 19 |
516 | | 299074 | Madden NFL 19 |
517 | | 300074 | Fractured Lands |
518 | | 301074 | Planet of Heroes |
519 | | 302074 | Satisfactory |
520 | | 303074 | Roof Rage |
521 | | 304074 | Lords Mobile |
522 | | 305074 | TrackMania |
523 | | 306074 | Heroes Evolved |
524 | | 307074 | PixARK |
525 | | 308074 | Avorion |
526 | | 309074 | PUBG Mobile |
527 | | 310074 | Football Manager |
528 | | 311074 | Adventure Quest 3D |
529 | | 312074 | Anthem |
530 | | 313074 | Celtic Heroes |
531 | | 314074 | Dungeon Hunter Champions |
532 | | 315074 | Modern Combat Versus |
533 | | 316074 | Space Engineers |
534 | | 317074 | SCUM |
535 | | 318074 | Artifact |
536 | | 319074 | Don't Starve Together |
537 | | 320074 | Warhammer: Vermintide II |
538 | | 321074 | Interstellar Rift |
539 | | 322074 | Battlerite Royale |
540 | | 323074 | osu" |
541 | | 324074 | Rise of Kingdoms |
542 | | 325074 | New World |
543 | | 326074 | GunBound |
544 | | 327074 | Mount & Blade Warband |
545 | | 328074 | SoulCalibur VI |
546 | | 329074 | World War 3 |
547 | | 332074 | America's Army: Proving Grounds |
548 | | 333074 | Project CARS 2 |
549 | | 334074 | Forza Horizon 4 |
550 | | 335074 | Warcraft III: Reforged |
551 | | 336074 | Rise of Agon |
552 | | 337074 | Ring of Elysium |
553 | | 338074 | Temtem |
554 | | 339074 | FIFA Mobile |
555 | | 340074 | Atlas |
556 | | 341074 | Digital Combat Simulator |
557 | | 342074 | Last Year: The Nightmare |
558 | | 343074 | The Forest |
559 | | 344074 | Eden Rising |
560 | | 345074 | Creative Destruction |
561 | | 346074 | Final Fantasy XI |
562 | | 347074 | Insurgency: Sandstorm |
563 | | 348074 | Hurtworld |
564 | | 349074 | Mortal Kombat 11 |
565 | | 350074 | World of Warcraft Classic |
566 | | 351074 | Pantropy |
567 | | 352074 | Apex Legends |
568 | | 353074 | Rules of Survival |
569 | | 354074 | Allods Online |
570 | | 355074 | Star Trek Fleet Command |
571 | | 356074 | Empyrion: Galactic Survival |
572 | | 357074 | Mordhau |
573 | | 358074 | Echo Arena |
574 | | 359074 | Echo Combat |
575 | | 360074 | Planetside Arena |
576 | | 361074 | Halo |
577 | | 362074 | Halo 2 |
578 | | 363074 | Halo 3 |
579 | | 364074 | Halo: Reach |
580 | | 365074 | Halo 4 |
581 | | 366074 | Risk of Rain 2 |
582 | | 367074 | Tiny Tanks |
583 | | 368074 | Mobile Legends: Bang Bang |
584 | | 369074 | LifeAfter |
585 | | 370074 | Splitgate: Arena Warfare |
586 | | 371074 | Total War: Three Kingdoms |
587 | | 372074 | Astellia Online |
588 | | 373074 | FRAG Pro Shooter |
589 | | 374074 | Rocket Arena |
590 | | 375074 | Auto Chess |
591 | | 376074 | Bleeding Edge |
592 | | 377074 | Dota Underlords |
593 | | 378074 | Halo Infinite |
594 | | 379074 | Last Oasis |
595 | | 380074 | Midnight Ghost Hunt |
596 | | 381074 | Minecraft Dungeons |
597 | | 382074 | Outriders |
598 | | 383074 | Roller Champions |
599 | | 384074 | Teamfight Tactics |
600 | | 385074 | Battletoads |
601 | | 386074 | Clans of Reign |
602 | | 387074 | Hytale |
603 | | 388074 | Killsquad |
604 | | 389074 | Kingdom Under Fire 2 |
605 | | 390074 | Krunker |
606 | | 391074 | Call of Duty: Modern Warfare |
607 | | 392074 | Pokemon Sword & Shield |
608 | | 393074 | Skyweaver |
609 | | 394074 | Streets of Rage 4 |
610 | | 395074 | SYNCED: Off-Planet |
611 | | 396074 | The Cycle |
612 | | 397074 | Call of Duty: Mobile |
613 | | 398074 | FIFA 20 |
614 | | 399074 | Borderlands 3 |
615 | | 400074 | Warhammer 40K: Inquisitor - Martyr |
616 | | 401074 | Black Desert Mobile |
617 | | 402074 | GTFO |
618 | | 403074 | Hunt: Showdown |
619 | | 404074 | Old School RuneScape |
620 | | 405074 | Warfield |
621 | | 406074 | Magic the Gathering: Arena |
622 | | 407074 | Legends of Runeterra |
623 | | 408074 | Wolcen |
624 | | 409074 | American Truck Simulator |
625 | | 410074 | Boundless |
626 | | 411074 | Broomstick League |
627 | | 412074 | Call of Duty: Warzone |
628 | | 413074 | Disintegration |
629 | | 414074 | Euro Truck Simulator 2 |
630 | | 415074 | Kerbal Space Program 2 |
631 | | 416074 | Quantum League |
632 | | 417074 | Spellbreak |
633 | | 418074 | State of Survival |
634 | | 419074 | Rogue Company |
635 | | 420074 | Black Mesa |
636 | | 422074 | Valorant |
637 | | 423074 | Starborne |
638 | | 424074 | Torchlight III |
639 | | 425074 | Chivalry II |
640 | | 426074 | Predator: Hunting Grounds |
641 | | 427074 | Crucible |
642 | | 428074 | KartRider: Drift |
643 | | 429074 | Ninjala |
644 | | 430074 | Assetto Corsa |
645 | | 431074 | Assetto Corsa Competizione |
646 | | 432074 | Boom Beach |
647 | | 433074 | Conqueror's Blade |
648 | | 434074 | Crossfire X |
649 | | 435074 | DeadSide |
650 | | 436074 | Dragalia Lost |
651 | | 437074 | Killer Instinct |
652 | | 438074 | Pokémon Unite |
653 | | 439074 | Star Wars: Squadrons |
654 | | 440074 | TrackMania |
655 | | 441074 | World of Warships: Legends |
656 | | 442074 | Seven Deadly Sins: Grand Cross |
657 | | 443074 | ARMS |
658 | | 444074 | Blightbound |
659 | | 445074 | Contractors |
660 | | 446074 | Crash Team Racing: Nitro-Fueled |
661 | | 447074 | Tom Clancy's Elite Squad |
662 | | 448074 | Fragsurf |
663 | | 449074 | Grounded |
664 | | 450074 | Marvel's Avengers |
665 | | 451074 | Hyper Scape |
666 | | 452074 | NBA 2K21 |
667 | | 453074 | Need For Speed Heat |
668 | | 454074 | Plan 8 |
669 | | 455074 | Teppen |
670 | | 456074 | Fall Guys |
671 | | 457074 | Million Lords |
672 | | 458074 | Tetris 99 |
673 | | 459074 | Among Us |
674 | | 460074 | Diabotical |
675 | | 461074 | League of Legends Wild Rift |
676 | | 462074 | Genshin Impact |
677 | | 463074 | EVE Echoes |
678 | | 464074 | Baldur's Gate III |
679 | | 465074 | Phasmophobia |
680 | | 466074 | Call of Duty: Black Ops Cold War |
681 | | 467074 | SWORD ART ONLINE Alicization Lycoris |
682 | | 468074 | NARUTO TO BORUTO: Shinobi Striker |
683 | | 469074 | NARUTO SHIPPUDEN: Ultimate Ninja Storm 4 |
684 | | 470074 | Super Buckyball Tournament |
685 | | 471074 | PokerStars |
686 | | 472074 | FIFA 21 |
687 | | 473074 | Jackbox Party |
688 | | 474074 | Craftopia |
689 | | 475074 | Valheim |
690 | | 476074 | Knockout City |
691 | | 477074 | Farming Simulator 19 |
692 |
693 | ### User Status Object
694 |
695 | ###### User Status Structure
696 |
697 | | Field | Type | Description |
698 | |------------------|------------------------------------------------------------|-----------------------------------------------|
699 | | content | ?[user status content object](#user-status-content-object) | the actual content of the status |
700 | | customReactionId | ?integer | the emoji's id that goes alongside the status |
701 | | customReaction? | [emoji object](/resources/team#team-emoji-object) | the emoji that goes alongside the status |
702 |
703 | ###### Example User Status
704 |
705 | ```json
706 | {
707 | "content": {
708 | "object": "value",
709 | "document": {
710 | "data": {},
711 | "nodes": [
712 | {
713 | "data": {},
714 | "type": "paragraph",
715 | "nodes": [
716 | {
717 | "leaves": [
718 | {
719 | "text": "g.gg/guilded-api",
720 | "marks": [],
721 | "object": "leaf"
722 | }
723 | ],
724 | "object": "text"
725 | },
726 | {
727 | "data": {
728 | "reaction": {
729 | "id": 294745,
730 | "customReaction": {
731 | "id": 294745,
732 | "name": "blobcouple",
733 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/448cff53087b93e72298bae9d47708f1-Full.webp?w=120&h=120",
734 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/448cff53087b93e72298bae9d47708f1-Full.webp?w=120&h=120",
735 | "apng": null
736 | },
737 | "customReactionId": 294745
738 | }
739 | },
740 | "type": "reaction",
741 | "nodes": [
742 | {
743 | "leaves": [
744 | {
745 | "text": ":blobcouple:",
746 | "marks": [],
747 | "object": "leaf"
748 | }
749 | ],
750 | "object": "text"
751 | }
752 | ],
753 | "object": "inline"
754 | },
755 | {
756 | "leaves": [
757 | {
758 | "text": "g.gg/blob-emoji ",
759 | "marks": [],
760 | "object": "leaf"
761 | }
762 | ],
763 | "object": "text"
764 | },
765 | {
766 | "data": {
767 | "reaction": {
768 | "id": 294677,
769 | "customReaction": {
770 | "id": 294677,
771 | "name": "blobpats",
772 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/ff03be6efe491bc934b1c217d70da9ce-Full.webp?w=120&h=120",
773 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/ff03be6efe491bc934b1c217d70da9ce-Full.webp?w=120&h=120",
774 | "apng": null
775 | },
776 | "customReactionId": 294677
777 | }
778 | },
779 | "type": "reaction",
780 | "nodes": [
781 | {
782 | "leaves": [
783 | {
784 | "text": ":blobpats:",
785 | "marks": [],
786 | "object": "leaf"
787 | }
788 | ],
789 | "object": "text"
790 | }
791 | ],
792 | "object": "inline"
793 | }
794 | ],
795 | "object": "block"
796 | }
797 | ],
798 | "object": "document"
799 | }
800 | },
801 | "customReactionId": 294765,
802 | "customReaction": {
803 | "id": 294765,
804 | "name": "ablobwobwork",
805 | "png": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
806 | "webp": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/CustomReaction/d7cf013a4d01460a81186e65f1f8c12a-Full.webp?w=120&h=120&ia=1",
807 | "apng": null
808 | }
809 | }
810 | ```
811 |
812 | 
813 |
814 | ### User Status Content Object
815 |
816 | Status content is an example of "stacked" content, much like message data. It's pretty difficult to portray its structure in a table, so I've simply not done that. The useful part of the object is the `document.nodes[0].nodes` list. Refer to [this example](#example-user-status) and parse it as you will.
817 |
818 | ### Flair Object
819 |
820 | Represents a profile flair. Does not include stonks, those can be found at [`user.stonks`](#user-object).
821 |
822 | ###### Flair Structure
823 |
824 | | Field | Type | Description | Known Values |
825 | |--------|---------|------------------------------------------------------------------------|--------------|
826 | | flair | string | name of the flair | `'gil_gang'` |
827 | | amount | integer | quantity of this flair that the user has, probably intended for stonks | |
828 |
829 | ## Get User
830 | GET/users/{[user.id](#user-object)}
831 |
832 | Returns a [user](#user-object) object for a given user ID.
833 |
834 | ## Get User Profile
835 | GET/users/{[user.id](#user-object)}/profilev3
836 |
837 | Returns a [user](#user-object) object for a given user ID. This slightly differs from [Get User](#get-user).
838 |
839 | ## Get User Posts
840 | GET/users/{[user.id](#user-object)}/posts
841 |
842 | Get the list of posts this user has on their profile.
843 |
844 | ###### Query Params
845 |
846 | | Field | Type | Description | Required | Default Value |
847 | |----------|---------|---------------------------------------|----------|---------------|
848 | | maxPosts | integer | the maximum amount of posts to return | false | 7 |
849 | | offset | integer | ? | false | 0 |
850 |
--------------------------------------------------------------------------------
/docs/resources/webhook.md:
--------------------------------------------------------------------------------
1 | # Webhooks
2 |
3 | Webhooks are an easy way to post messages to team channels. They do not require any authentication to use other than the webhook ID & token itself (keep tokens secret!).
4 |
5 | ### Webhook Object
6 |
7 | ###### Webhook Structure
8 |
9 | | Field | Type | Description |
10 | |------------|----------------------------------------|---------------------------------------------|
11 | | id | uuid | the id of the webhook |
12 | | name | string | the default name of the webhook |
13 | | token? | string | the webhook's token. required for execution |
14 | | channelId | uuid | the channel id this webhook is for |
15 | | teamId | [team id](/resources/team#team-object) | the team's id this webhook is for |
16 | | iconUrl | ?string | the default avatar of the webhook |
17 | | createdBy | [user id](/resources/user#user-object) | the user's id who created this webhook |
18 | | createdAt | ISO8601 timestamp | when this webhook was created |
19 | | deletedAt | ?ISO8601 timestamp | when this webhook was deleted |
20 |
21 | ###### Example Webhook
22 |
23 | ```json
24 | {
25 | "id": "5b3723f8-c82e-404d-bb56-02bbfb242e47",
26 | "name": "cool webhook for cool people",
27 | "token": "yXEUjW1HskqGwsCWZBqGiYW4MGWAWq0sqCp8igYgQWcgNmYMu6gswa24CgoE2Akqk00YS8GYMkeqKUKKlAUYua",
28 | "channelId": "b1b9451a-f758-4e49-aa81-0b148939ffeb",
29 | "teamId": "4R5q39VR",
30 | "iconUrl": "https://s3-us-west-2.amazonaws.com/www.guilded.gg/UserAvatar/74bfc8be9425a926a1f48d9b078509bc-Large.png?w=450&h=450",
31 | "createdBy": "EdVMVKR4",
32 | "createdAt": "2021-03-18T23:39:21.320Z",
33 | "deletedAt": null
34 | }
35 | ```
36 |
37 | ## Execute Webhook
38 | POSThttps://media.guilded.gg/webhooks/{[webhook.id](#webhook-object)}/{[webhook.token](#webhook-object)}
39 |
40 | !!! info
41 | This endpoint no longer supports GitHub payloads. See [guilded-webhook-proxy](https://github.com/shayypy/guilded-webhook-proxy) for an alternative.
42 |
43 | Send a message through a webhook. Returns a [message](/resources/channel#message-object) object.
44 |
45 | ###### JSON/Form Params
46 |
47 | | Field | Type | Description | Required |
48 | |----------------|----------------------------------------------------|----------------------------------------------|----------------------------|
49 | | content | string | the message contents (up to 2000 characters) | one of content, embeds |
50 | | embeds | array of [embeds](/resources/channel#embed-object) | up to 10 embeds | one of content, embeds |
51 | | files[n]\* | file contents | up to 10 files | false |
52 | | payload_json\* | string | JSON encoded body of non-file params | `multipart/form-data` only |
53 | | username | string | override the webhook's default username | false |
54 | | avatar_url | string | override the webhook's default avatar | false |
55 |
56 | \* See [Uploading Files](https://discord.dev/reference#uploading-files) for details.
57 |
--------------------------------------------------------------------------------
/docs/topics/community-resources.md:
--------------------------------------------------------------------------------
1 | # Community Resources
2 |
3 | ## Libraries
4 |
5 | Guilded's bot API is currently in early access, so you will need explicit approval from a Guilded staff member to use it, and by extension, any of the libraries listed below. The following libraries are not approved, created, or endorsed by Guilded.
6 |
7 | ###### Guilded Libraries (alphabetical)
8 |
9 | | Name | Language |
10 | | ------------------------------------------------------------- | ---------- |
11 | | [guilded.js](https://github.com/guildedjs/guilded.js) | JavaScript |
12 | | [Guilded.NET](https://github.com/Guilded-NET/Guilded.NET) | C# |
13 | | [guilded.py](https://github.com/shayypy/guilded.py) | Python |
14 | | [Guilded4J](https://github.com/MCUmbrella/Guilded4J) | Java |
15 | | [TouchGuild](https://github.com/DinographicPixels/TouchGuild) | Javascript |
16 |
17 | ## Embed Visualizers
18 |
19 | Discord and Guilded both use relatively the same [embed structure](/resources/channel/#embed-object). Sent embeds look a bit different in the official client, but you can use the following resources to easily compose some JSON for use in your Guilded messages.
20 |
21 | - [LeoV's Embed Visualizer](https://leovoel.github.io/embed-visualizer)
22 | - [Discohook](https://discohook.app) (click on "JSON Data Editor" when you're done)
23 |
24 | ## Exemplary Projects
25 |
26 | You may have been confused by [the preamble in this site's introduction](/#userbots-you). Here are a few cool projects that use Guilded's API without automating a user account.
27 |
28 | - [guilded-shields](https://github.com/yoki-labs/guilded-shields)
29 | - [Blogsbot](https://blogsbot.shay.cat)
30 | - [Guilded Authlink](https://authlink.app)
31 | - [Server Guard](https://serverguard.xyz)
32 |
--------------------------------------------------------------------------------
/docs/topics/media.md:
--------------------------------------------------------------------------------
1 | # Media Endpoints
2 |
3 | !!! warning
4 | Endpoints on this page should use the base URL `https://media.guilded.gg`, *not* `https://www.guilded.gg/api`.
5 |
6 | ## Dynamic Media Types
7 |
8 | | Type | Description |
9 | |---------------------------|---------------------------------------------------------------|
10 | | CustomReaction | custom server emoji |
11 | | ContentMedia (deprecated) | any media - deprecated in favor of `ContentMediaGenericFiles` |
12 | | ContentMediaGenericFiles | any media or file |
13 | | UserAvatar | user avatar |
14 | | UserBanner | profile banner |
15 | | TeamAvatar | team icon |
16 | | TeamBanner | team banner |
17 | | GroupAvatar | group icon |
18 |
19 | ## Binary File Data
20 |
21 | This can probably be handled by your HTTP library/something built-in to your language. Here are some code examples:
22 |
23 |
24 |
25 | **Python**
26 |
27 | ```
28 | # with aiohttp
29 |
30 | import aiohttp
31 | async def upload_file(path_to_file, media_type):
32 | file = open(path_to_file, 'rb') # or another bytes-like object
33 | async with aiohttp.ClientSession() as session:
34 | response = await session.post(
35 | 'https://media.guilded.gg/media/upload',
36 | data={'file': file},
37 | params={'dynamicMediaTypeId': media_type}
38 | )
39 | data = await response.json()
40 | return data['url']
41 |
42 |
43 | # with requests
44 |
45 | import requests
46 | def upload_file(path_to_file, media_type):
47 | file = open(path_to_file, 'rb') # or another bytes-like object
48 | response = requests.post(
49 | 'https://media.guilded.gg/media/upload',
50 | data={'file': file},
51 | params={'dynamicMediaTypeId': media_type}
52 | )
53 | data = response.json()
54 | return data['url']
55 | ```
56 |
57 | ## Upload Media
58 | POST/media/upload
59 |
60 | Upload a media file to Guilded.
61 |
62 | ###### Form Data
63 |
64 | | Field | Type | Description |
65 | |-------|----------------------------------|----------------------|
66 | | file | [binary data](#binary-file-data) | the data of the file |
67 |
68 | ###### Query Args
69 |
70 | | Field | Type | Description | Required | Accepted Values |
71 | |--------------------|--------|------------------------------------------|----------|----------------------------------------------------|
72 | | dynamicMediaTypeId | string | the type of media that you are uploading | true | a valid [dynamic media type](#dynamic-media-types) |
73 |
74 | ###### JSON Response
75 |
76 | | Field | Type | Description |
77 | |-------|--------|---------------------------------------|
78 | | url | string | the full CDN url to the uploaded file |
79 |
80 | ## Upload File
81 | POST/media/file_upload
82 |
83 | Upload a generic non-media file to Guilded.
84 |
85 | ###### Form Data
86 |
87 | | Field | Type | Description |
88 | |-------|----------------------------------|----------------------|
89 | | file | [binary data](#binary-file-data) | the data of the file |
90 |
91 | ###### Query Args
92 |
93 | | Field | Type | Description | Required | Accepted Values |
94 | |--------------------|--------|------------------------------------------|----------|--------------------------|
95 | | dynamicMediaTypeId | string | the type of media that you are uploading | true | ContentMediaGenericFiles |
96 |
97 | ###### JSON Response
98 |
99 | | Field | Type | Description |
100 | |-------|--------|---------------------------------------|
101 | | url | string | the full CDN url to the uploaded file |
102 |
103 | ## Get Custom Emoji Pack
104 | POST/media/fetch_emote_pack
105 |
106 | Get the contents of an emoji pack.
107 |
108 | ###### JSON Params
109 |
110 | | Field | Type | Description |
111 | |-------|--------|--------------------------------------------------------------------------------|
112 | | url | string | the emoji pack to get (must return a valid JSON-formatted emoji pack response) |
113 |
114 | ## Upload Custom Emoji Pack
115 | POST/media/import_emote_pack
116 |
117 | Upload the contents of an emoji pack to Guilded. Returns an array of `{url: url, name: name}` on success, where `url` is the URL to the uploaded image on Guilded's CDN, and `name` is the name of the emoji from the emoji pack.
118 |
119 | ###### JSON Params
120 |
121 | | Field | Type | Description |
122 | |-------------------|--------|-----------------------------------------------------------------------------------|
123 | | url | string | the emoji pack to import (must return a valid JSON-formatted emoji pack response) |
124 | | uploadTrackingId? | string | unknown. looks like "r-0123456-7891234" |
125 |
--------------------------------------------------------------------------------
/docs/topics/status-codes.md:
--------------------------------------------------------------------------------
1 | # Status Codes in the API
2 |
3 | Similarly to any other REST API, HTTP response codes are returned based on the success of each of your requests. The following table can be used as a reference. It is a modified version of [Discord's table for the same purpose](https://discord.com/developers/docs/topics/opcodes-and-status-codes#http-http-response-codes).
4 |
5 | ###### HTTP Response Codes
6 |
7 | | Code | Meaning |
8 | |---------------------------|--------------------------------------------------------------------------------------|
9 | | 200 (OK) | The request completed successfully. |
10 | | 201 (CREATED) | The entity was created successfully. |
11 | | 204 (NO CONTENT) | The request completed successfully and returned no content. |
12 | | 304 (NOT MODIFIED) | The entity was not modified (no action was taken). |
13 | | 400 (BAD REQUEST) | The request was improperly formatted, or the server couldn't understand it. |
14 | | 401 (UNAUTHORIZED) | Proper authorization was not passed or passed improperly. |
15 | | 403 (FORBIDDEN) | The authorization you passed is not allowed to access this resource. |
16 | | 404 (NOT FOUND) | The resource at the location specified doesn't exist. |
17 | | 405 (METHOD NOT ALLOWED) | The HTTP method used is not valid for the location specified. |
18 | | 429 (TOO MANY REQUESTS) | You are being rate limited. |
19 | | 502 (GATEWAY UNAVAILABLE) | There was not a gateway available to process your request. Wait a bit and retry. |
20 | | 5xx (SERVER ERROR) | The server had an error processing your request (these are rare). |
21 |
--------------------------------------------------------------------------------