# Guild Hub ## `GET /api/guild/announcements` **GetAnnouncements** **Response `200` — Request fulfilled, document follows** Model: {ref}`GuildAnnouncementsPage ` | Field | Type | Required | Description | |---|---|---|---| | `items` | array of {ref}`GuildAnnouncementRow ` | yes | | ## `POST /api/guild/announcements` **CreateAnnouncement** **Request body** Model: {ref}`GuildAnnouncementCreate ` | Field | Type | Required | Description | |---|---|---|---| | `text` | string | yes | | | `discord` | boolean | no | | **Response `201` — Document created, URL follows** Model: {ref}`GuildAnnouncementRow ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `text` | string | yes | | | `author` | string | yes | | | `at` | string (date-time) | yes | | | `source` | {ref}`AnnouncementSource ` | yes | | | `posted_at` | string (date-time) \| null | yes | | ## `GET /api/guild/bank` **GetBank** **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `limit` | query | integer | no | | | `before` | query | string (date-time) \| null | no | | **Response `200` — Request fulfilled, document follows** Model: {ref}`GuildBankPage ` | Field | Type | Required | Description | |---|---|---|---| | `rows` | array of {ref}`GuildBankRow ` | yes | | | `totals` | {ref}`GuildBankTotals ` | yes | | ## `GET /api/guild/crafters` **GetCrafters** **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `q` | query | string \| null | no | | | `profession` | query | string \| null | no | | **Response `200` — Request fulfilled, document follows** Model: {ref}`GuildCrafters ` | Field | Type | Required | Description | |---|---|---|---| | `results` | array of {ref}`GuildCrafterResult ` | yes | | | `professions` | array of {ref}`GuildCrafterProfessionCount ` | yes | | ## `GET /api/guild/news` **GetNews** **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `limit` | query | integer | no | | **Response `200` — Request fulfilled, document follows** Model: {ref}`GuildNewsPage ` | Field | Type | Required | Description | |---|---|---|---| | `items` | array of {ref}`GuildNewsItem ` | yes | | ## `GET /api/guild/roster` **GetRoster** **Response `200` — Request fulfilled, document follows** Model: {ref}`GuildRoster ` | Field | Type | Required | Description | |---|---|---|---| | `taken_at` | string (date-time) \| null | yes | | | `members` | array of {ref}`GuildRosterMember ` | yes | | | `unlinked` | array of {ref}`GuildRosterUnlinked ` | yes | | ## `GET /api/guilds/{guild_id}/announcements/pending` **GetPending** **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `guild_id` | path | integer | yes | | **Response `200` — Request fulfilled, document follows** Model: {ref}`PendingAnnouncementsPage ` | Field | Type | Required | Description | |---|---|---|---| | `items` | array of {ref}`PendingAnnouncement ` | yes | | ## `POST /api/guilds/{guild_id}/announcements/{announcement_id}/posted` **MarkPosted** **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `guild_id` | path | integer | yes | | | `announcement_id` | path | string (uuid) | yes | | **Request body** Model: {ref}`AnnouncementPosted ` | Field | Type | Required | Description | |---|---|---|---| | `message_id` | integer | yes | | **Response `200` — Request fulfilled, document follows** Model: {ref}`AnnouncementPostedResult ` | Field | Type | Required | Description | |---|---|---|---| | `message_id` | integer | yes | |