Reference: Server and settings
The server itself: settings, permissions, limits, the audit log, saved messages, chat filters, commands and live events.
Good to know
Authorization: Bearer tfy_…. Replace YOUR_SERVER_ID with your Discord server id. Errors are explained in Requests, errors and limits.GET /
GET /guilds/{guildId}
The server and its settings. The dashboard's root object.
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /audit
GET /guilds/{guildId}/audit
Who changed what, when. Filterable by action, actor, target and date. Discord commands are recorded as commands.used only when they take a permission: what staff do, not what members do for themselves with /verify or /update.
| Key permission | audit.read (See the audit log) |
Query parameters
Added to the address after a ?, like ?limit=10&order=asc.
| Field | Type | Required | What it is |
|---|---|---|---|
limit | integer | No | How many to answer with at most, 1 to 100.1 to 100 · default 25 |
cursor | string | No | The nextCursor of the page before, to get the next page. Absent: the first page.at most 64 characters |
order | "asc" | "desc" | No | desc for newest first, asc for oldest first.default "desc" |
action | string | No | at most 64 characters |
area | string | No | |
q | string | No | 1 to 64 characters |
actorId | string | No | at most 64 characters |
targetId | string | No | at most 64 characters |
from | string | No | ISO 8601 date and time |
to | string | No | ISO 8601 date and time |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/audit" \
-H "Authorization: Bearer $TECHNIFIED_KEY"{
"items": [
{
"id": "aud_01M5TXYME1JW71X8W2M1ETQRK0",
"action": "servers.broadcast",
"summary": "announce was broadcast to 1 live servers",
"actor": {
"type": "key",
"id": "key_01M5TXYJPZQGNT2KXZG3ZBA672",
"label": "key:test key"
},
"target": {
"type": "broadcast",
"id": "bct_01M5TXYMD267E378JYEXPZ920M"
},
"data": {
"addressed": 1
},
"requestId": "01M5TXYMB4N3DESQSC573DJ1JN",
"createdAt": "2026-10-26T01:42:12.161Z"
},
{
"id": "aud_01M5TXYMAZWCXHRXV6GJFV6QXR",
"action": "servers.command",
"summary": "message was sent to a live server",
"actor": {
"type": "key",
"id": "key_01M5TXYJPZQGNT2KXZG3ZBA672",
"label": "key:test key"
},
"target": {
"type": "command",
"id": "cmd_01M5TXYMA2NJ4NFTJYEP01BK35"
},
"data": {
"serverId": "gsv_01M5TXYM3M0AGW0A8F0KGGTY2W"
},
"requestId": "01M5TXYM8QF6C91MWVD7TCAWHR",
"createdAt": "2026-10-26T01:42:12.063Z"
}
],
"nextCursor": "aud_01M5TXYMAZWCXHRXV6GJFV6QXR"
}GET /audit/actors
GET /guilds/{guildId}/audit/actors
Everybody who appears in the log, for its "who" filter.
| Key permission | audit.read (See the audit log) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/audit/actors" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /commands
GET /guilds/{guildId}/commands
Every command the product offers, and what this server said about each.
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/commands" \
-H "Authorization: Bearer $TECHNIFIED_KEY"PATCH /commands/{command}
PATCH /guilds/{guildId}/commands/{command}
Switches one on or off, and sets who may use it.
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
command | string | Yes | A slash command’s name, like ban. |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
enabled | boolean | No | |
audience | "everyone" | "staff" | "administrators" | "roles" | "position" | No | |
roleIds | array of string | No | at most 25 items |
minRoleId | string or null | No | digits only |
Example
curl -X PATCH "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/commands/COMMAND" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{}'POST /commands/publish
POST /guilds/{guildId}/commands/publish
Hands the enabled set to Discord. Until this runs, nothing changed there.
| Key permission | settings.write (Change settings) |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/commands/publish" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /configuration/export
GET /guilds/{guildId}/configuration/export
Everything this server is set up as, as a document.
| Key permission | settings.write (Change settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/configuration/export" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /configuration/short-link
GET /guilds/{guildId}/configuration/short-link
The address the server always has (id), its short link (current), memberCount, names made from its own with whether they are free (suggestions), and its latest request.
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/configuration/short-link" \
-H "Authorization: Bearer $TECHNIFIED_KEY"PUT /configuration/short-link
PUT /guilds/{guildId}/configuration/short-link
Only { "slug": null }: gives the short link up. A new one is asked for (403 apply_for_short_link otherwise).
| Key permission | settings.write (Change settings) |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
slug | string or null | Yes |
Example
curl -X PUT "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/configuration/short-link" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"slug":"…"}'GET /events
GET /guilds/{guildId}/events
A server sent event stream of what is happening. See **Live updates**.
| Key permission | Any key of this server. |
Query parameters
Added to the address after a ?, like ?limit=10&order=asc.
| Field | Type | Required | What it is |
|---|---|---|---|
kinds | string | No | at most 500 characters |
lastEventId | integer | No | at least 0 |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/events" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /filters
GET /guilds/{guildId}/filters
Every rule Discord holds, with what we do on top of it.
| Key permission | filters.read (See chat filters) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /filters
POST /guilds/{guildId}/filters
Creates a rule on Discord and attaches our actions.
| Key permission | filters.write (Change chat filters) |
| Retry safely | Send an Idempotency-Key header; a retry with the same one is not done twice. |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
name | string | Yes | 1 to 100 characters |
trigger | "keyword" | "spam" | "keywordPreset" | "mentionSpam" | Yes | |
keywords | array of string | No | at most 1000 items · default [] |
regexPatterns | array of string | No | at most 10 items · default [] |
presets | array of "profanity" | "sexualContent" | "slurs" | No | at most 3 items · default [] |
allowList | array of string | No | at most 100 items · default [] |
mentionLimit | integer or null | No | 1 to 50 · default null |
blockMessage | string or null | No | at most 150 characters · default null |
alertChannelId | string or null | No | digits only · default null |
timeoutSeconds | integer or null | No | 60 to 2419200 · default null |
enabled | boolean | No | default true |
exemptRoleIds | array of string | No | at most 20 items · default [] |
exemptChannelIds | array of string | No | at most 50 items · default [] |
actions | array of object, one of the shapes below | No | at most 5 items · default [] |
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"…","trigger":"keyword"}'GET /filters/{ruleId}
GET /guilds/{guildId}/filters/{ruleId}
| Key permission | filters.read (See chat filters) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
ruleId | string | Yes | The chat filter’s Discord AutoMod rule id (digits), from GET /filters. |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters/RULEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"PATCH /filters/{ruleId}
PATCH /guilds/{guildId}/filters/{ruleId}
| Key permission | filters.write (Change chat filters) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
ruleId | string | Yes | The chat filter’s Discord AutoMod rule id (digits), from GET /filters. |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
name | string | No | 1 to 100 characters |
trigger | "keyword" | "spam" | "keywordPreset" | "mentionSpam" | No | |
keywords | array of string | No | at most 1000 items · default [] |
regexPatterns | array of string | No | at most 10 items · default [] |
presets | array of "profanity" | "sexualContent" | "slurs" | No | at most 3 items · default [] |
allowList | array of string | No | at most 100 items · default [] |
mentionLimit | integer or null | No | 1 to 50 · default null |
blockMessage | string or null | No | at most 150 characters · default null |
alertChannelId | string or null | No | digits only · default null |
timeoutSeconds | integer or null | No | 60 to 2419200 · default null |
enabled | boolean | No | default true |
exemptRoleIds | array of string | No | at most 20 items · default [] |
exemptChannelIds | array of string | No | at most 50 items · default [] |
actions | array of object, one of the shapes below | No | at most 5 items · default [] |
Example
curl -X PATCH "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters/RULEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{}'DELETE /filters/{ruleId}
DELETE /guilds/{guildId}/filters/{ruleId}
| Key permission | filters.write (Change chat filters) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
ruleId | string | Yes | The chat filter’s Discord AutoMod rule id (digits), from GET /filters. |
No request body.
Example
curl -X DELETE "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters/RULEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /filters/hits
GET /guilds/{guildId}/filters/hits
The log of what was caught and what was done about it.
| Key permission | filters.read (See chat filters) |
Query parameters
Added to the address after a ?, like ?limit=10&order=asc.
| Field | Type | Required | What it is |
|---|---|---|---|
limit | integer | No | How many to answer with at most, 1 to 100.1 to 100 · default 25 |
cursor | string | No | The nextCursor of the page before, to get the next page. Absent: the first page.at most 64 characters |
order | "asc" | "desc" | No | desc for newest first, asc for oldest first.default "desc" |
discordUserId | string | No | digits only |
discordRuleId | string | No | digits only |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/filters/hits" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /keys
GET /guilds/{guildId}/keys
The keys a server has. Never their secrets.
| Key permission | keys.read (See game keys) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/keys" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /media
GET /guilds/{guildId}/media
The pictures uploaded for messages, panels and the public page.
| Key permission | Any one of: settings.write (Change settings), tickets.write (Handle tickets) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/media" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /media
POST /guilds/{guildId}/media
Uploads a picture: PNG, JPEG, GIF or WebP, up to 8 MB.
| Key permission | Any one of: settings.write (Change settings), tickets.write (Handle tickets) |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/media" \
-H "Authorization: Bearer $TECHNIFIED_KEY"DELETE /media/{mediaId}
DELETE /guilds/{guildId}/media/{mediaId}
Deletes one. Its public address stops answering at once.
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
mediaId | string | Yes | A picture’s id (med_…). |
No request body.
Example
curl -X DELETE "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/media/MEDIAID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /messages
GET /guilds/{guildId}/messages
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /messages
POST /guilds/{guildId}/messages
| Key permission | settings.write (Change settings) |
Request body
JSON, sent with Content-Type: application/json.
kind: "embed"
| Field | Type | Required | What it is |
|---|---|---|---|
kind | "embed" | Yes | |
name | string | Yes | 1 to 60 characters |
content | string or null | No | at most 2000 characters · default null |
embed | object or null | No | default null |
embed.author | string or null | No | at most 256 characters · default null |
embed.title | string or null | No | at most 256 characters · default null |
embed.titleUrl | string or null | No | at most 500 characters · default null |
embed.description | string or null | No | at most 4000 characters · default null |
embed.colour | string or null | No | default null |
embed.fields | array of objects | No | at most 25 items · default [] |
embed.fields[].name | string | Yes | 1 to 256 characters |
embed.fields[].value | string | Yes | 1 to 1024 characters |
embed.fields[].inline | boolean | No | default false |
embed.imageUrl | string or null | No | at most 500 characters · default null |
embed.thumbnailUrl | string or null | No | at most 500 characters · default null |
embed.footer | string or null | No | at most 2048 characters · default null |
kind: "components"
| Field | Type | Required | What it is |
|---|---|---|---|
kind | "components" | Yes | |
name | string | Yes | 1 to 60 characters |
components | object | Yes | |
components.boxed | boolean | No | |
components.accentColour | string or null | No | default null |
components.spoiler | boolean | No | default false |
components.blocks | array of object, one of the shapes below | Yes | at most 30 items |
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"embed","name":"…"}'PATCH /messages/{messageId}
PATCH /guilds/{guildId}/messages/{messageId}
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
messageId | string | Yes | A saved message’s id (svm_…). |
Request body
JSON, sent with Content-Type: application/json.
kind: "embed"
| Field | Type | Required | What it is |
|---|---|---|---|
kind | "embed" | Yes | |
name | string | Yes | 1 to 60 characters |
content | string or null | No | at most 2000 characters · default null |
embed | object or null | No | default null |
embed.author | string or null | No | at most 256 characters · default null |
embed.title | string or null | No | at most 256 characters · default null |
embed.titleUrl | string or null | No | at most 500 characters · default null |
embed.description | string or null | No | at most 4000 characters · default null |
embed.colour | string or null | No | default null |
embed.fields | array of objects | No | at most 25 items · default [] |
embed.fields[].name | string | Yes | 1 to 256 characters |
embed.fields[].value | string | Yes | 1 to 1024 characters |
embed.fields[].inline | boolean | No | default false |
embed.imageUrl | string or null | No | at most 500 characters · default null |
embed.thumbnailUrl | string or null | No | at most 500 characters · default null |
embed.footer | string or null | No | at most 2048 characters · default null |
kind: "components"
| Field | Type | Required | What it is |
|---|---|---|---|
kind | "components" | Yes | |
name | string | Yes | 1 to 60 characters |
components | object | Yes | |
components.boxed | boolean | No | |
components.accentColour | string or null | No | default null |
components.spoiler | boolean | No | default false |
components.blocks | array of object, one of the shapes below | Yes | at most 30 items |
Example
curl -X PATCH "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages/MESSAGEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"embed","name":"…"}'DELETE /messages/{messageId}
DELETE /guilds/{guildId}/messages/{messageId}
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
messageId | string | Yes | A saved message’s id (svm_…). |
No request body.
Example
curl -X DELETE "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages/MESSAGEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /messages/{messageId}/post
POST /guilds/{guildId}/messages/{messageId}/post
Posts it into a channel.
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
messageId | string | Yes | A saved message’s id (svm_…). |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
channelId | string | Yes | digits only |
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages/MESSAGEID/post" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"channelId":"123456789012345678"}'POST /messages/{messageId}/update
POST /guilds/{guildId}/messages/{messageId}/update
Edits the one already posted, rather than posting again.
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
messageId | string | Yes | A saved message’s id (svm_…). |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/messages/MESSAGEID/update" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /organization
GET /guilds/{guildId}/organization
What this server's organization is, from the server's side.
| Key permission | Any key of this server. |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/organization" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /organization/invitations/{invitationId}/accept
POST /guilds/{guildId}/organization/invitations/{invitationId}/accept
Accepting from the server's side.
| Key permission | Any key of this server. |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
invitationId | string | Yes | An invitation’s id (inv_…). |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/organization/invitations/INVITATIONID/accept" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /organization/invitations/{invitationId}/decline
POST /guilds/{guildId}/organization/invitations/{invitationId}/decline
Declining.
| Key permission | Any key of this server. |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
invitationId | string | Yes | An invitation’s id (inv_…). |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/organization/invitations/INVITATIONID/decline" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /organization/leave
POST /guilds/{guildId}/organization/leave
Leaving on its own. The server lands in an organization of its own (409 last_guild when it is alone already).
| Key permission | Any key of this server. |
No request body.
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/organization/leave" \
-H "Authorization: Bearer $TECHNIFIED_KEY"POST /organization/requests
POST /guilds/{guildId}/organization/requests
Asking to join one.
| Key permission | Any key of this server. |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
organizationId | string | Yes | at most 40 characters |
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/organization/requests" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"organizationId":"…"}'GET /permissions
GET /guilds/{guildId}/permissions
What the caller may do here. Drive the whole navigation off this.
| Key permission | Any key of this server. |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/permissions" \
-H "Authorization: Bearer $TECHNIFIED_KEY"{
"permissions": [
"settings.read",
"settings.write",
"members.read",
"verification.read",
"verification.write",
"bindings.read",
"bindings.write",
"groups.read",
"groups.write",
"moderation.read",
"moderation.write",
"moderation.lift_any",
"moderation.staff",
"moderation.evidence",
"servers.read",
"servers.command",
"servers.broadcast",
"staff.read",
"staff.write",
"forms.read",
"forms.write",
"tickets.read",
"tickets.write",
"filters.read",
"filters.write",
"documents.read",
"documents.write",
"keys.read",
"audit.read"
],
"rank": null,
"isAdministrator": false,
"hasOrganizationRole": false,
"matchedStaffRoleIds": [],
"profile": {
"nickname": null,
"avatarUrl": null
}
}GET /plan
GET /guilds/{guildId}/plan
The plan, its limits, and what this server is using.
| Key permission | Any key of this server. |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/plan" \
-H "Authorization: Bearer $TECHNIFIED_KEY"{
"plan": "free",
"limits": {
"applicationForms": 15,
"appealForms": 15,
"questionsPerForm": 25,
"ticketPanels": 10,
"ticketMenus": 10,
"loggingChannels": 5,
"activeKeys": 10,
"roleBindings": 40,
"groupBinds": 40,
"savedMessages": 50,
"storageBytes": 104857600
},
"features": [],
"overridden": false,
"trial": false,
"expiresAt": null,
"usage": {
"applicationForms": 1,
"appealForms": 0,
"ticketPanels": 0,
"ticketMenus": 0,
"activeKeys": 1,
"roleBindings": 1,
"groupBinds": 0,
"savedMessages": 0,
"loggingChannels": 0,
"storageBytes": 0
},
"usageItems": {
"applicationForms": [
{
"id": "frm_01M5TXYKPJRX6P75ZMRW5SFGW4",
"label": "Moderator application"
}
],
"appealForms": [],
"ticketPanels": [],
"ticketMenus": [],
"activeKeys": [
{
"id": "key_01M5TXYJPZQGNT2KXZG3ZBA672",
"label": "test key"
}
],
"roleBindings": [
{
"id": "bnd_01M5TXYKJ4EJ5XZ9K4D2RMZWRC",
"label": "Officers"
}
],
"groupBinds": [],
"savedMessages": [],
"loggingChannels": []
}
}PATCH /settings
PATCH /guilds/{guildId}/settings
Changes settings. Needs If-Match.
| Key permission | settings.write (Change settings) |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
verification | object | No | |
verification.verifiedRoleId | string or null | No | digits only |
verification.unverifiedRoleId | string or null | No | digits only |
verification.nicknameFormat | string or null | No | at most 64 characters |
verification.channelId | string or null | No | digits only |
welcome | object | No | |
welcome.roleIds | array of string | No | at most 10 items |
welcome.kind | "embed" | "components" | No | |
welcome.message | string or null | No | at most 2000 characters |
welcome.embed | object or null | No | |
welcome.embed.author | string or null | No | at most 256 characters · default null |
welcome.embed.title | string or null | No | at most 256 characters · default null |
welcome.embed.titleUrl | string or null | No | at most 500 characters · default null |
welcome.embed.description | string or null | No | at most 4000 characters · default null |
welcome.embed.colour | string or null | No | default null |
welcome.embed.fields | array of objects | No | at most 25 items · default [] |
welcome.embed.fields[].name | string | Yes | 1 to 256 characters |
welcome.embed.fields[].value | string | Yes | 1 to 1024 characters |
welcome.embed.fields[].inline | boolean | No | default false |
welcome.embed.imageUrl | string or null | No | at most 500 characters · default null |
welcome.embed.thumbnailUrl | string or null | No | at most 500 characters · default null |
welcome.embed.footer | string or null | No | at most 2048 characters · default null |
welcome.components | object or null | No | |
welcome.components.boxed | boolean | No | |
welcome.components.accentColour | string or null | No | default null |
welcome.components.spoiler | boolean | No | default false |
welcome.components.blocks | array of object, one of the shapes below | Yes | at most 30 items |
welcome.channelId | string or null | No | digits only |
moderation | object | No | |
moderation.defaultBanDuration | integer or null | No | at least 0 |
moderation.defaultMuteDuration | integer or null | No | 0 to 2419200 |
moderation.robloxScope | "global" | "universe" | No | |
moderation.defaultUniverseId | string or null | No | at most 32 characters |
moderation.defaultReach | "guild" | "organization" | No | |
moderation.recordOutside | boolean | No | |
logging | object | No | |
publicPage | object | No | |
publicPage.enabled | boolean | No | |
publicPage.description | string or null | No | at most 500 characters |
publicPage.blocks | array of object, one of the shapes below | No | at most 40 items |
publicPage.theme | object | No | |
publicPage.theme.accent | string or null | Yes | |
publicPage.theme.align | "center" | "left" | Yes | |
publicPage.theme.width | "narrow" | "wide" | Yes | |
publicPage.theme.background | "plain" | "tinted" | No |
Example
curl -X PATCH "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/settings" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{}'POST /short-link/requests
POST /guilds/{guildId}/short-link/requests
Asks Technified for a short link: slug (3 to 32 lowercase letters, numbers, single dashes, at least one letter) and reason (20 to 1000 characters). One waits at a time (409 request_waiting); 409 slug_taken when another server has or asked for it.
| Key permission | settings.write (Change settings) |
Request body
JSON, sent with Content-Type: application/json.
| Field | Type | Required | What it is |
|---|---|---|---|
slug | string | Yes | 3 to 32 characters |
reason | string | Yes | 20 to 1000 characters |
Example
curl -X POST "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/short-link/requests" \
-H "Authorization: Bearer $TECHNIFIED_KEY" \
-H "Content-Type: application/json" \
-d '{"slug":"…","reason":"…"}'DELETE /short-link/requests/{requestId}
DELETE /guilds/{guildId}/short-link/requests/{requestId}
Withdraws a waiting request.
| Key permission | settings.write (Change settings) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
requestId | string | Yes | A short link request’s id (slr_…). |
No request body.
Example
curl -X DELETE "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/short-link/requests/REQUESTID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /storage
GET /guilds/{guildId}/storage
Bytes used, the limit, and bytes and files per kind.
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/storage" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /storage/files
GET /guilds/{guildId}/storage/files
Every file the server keeps, largest first, with where it is used. kind, offset, limit.
| Key permission | settings.read (See settings) |
Query parameters
Added to the address after a ?, like ?limit=10&order=asc.
| Field | Type | Required | What it is |
|---|---|---|---|
kind | "media" | "evidence" | "form_file" | "transcript" | "ticket_image" | "document" | "document_file" | "document_version" | No | |
offset | integer | No | 0 to 100000 · default 0 |
limit | integer | No | 1 to 100 · default 50 |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/storage/files" \
-H "Authorization: Bearer $TECHNIFIED_KEY"DELETE /storage/files/{kind}/{fileId}
DELETE /guilds/{guildId}/storage/files/{kind}/{fileId}
Deletes one file to free space. Recorded in the audit log as storage.file_deleted.
| Key permission | Any one of: settings.write (Change settings), moderation.evidence (See evidence), forms.write (Decide applications and edit forms), tickets.write (Handle tickets), documents.write (Write and manage documents) |
In the address
| Field | Type | Required | What it is |
|---|---|---|---|
kind | string | Yes | What kind of file: as GET /storage/files names it. |
fileId | string | Yes | A file’s id inside the document or storage. |
No request body.
Example
curl -X DELETE "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/storage/files/KIND/FILEID" \
-H "Authorization: Bearer $TECHNIFIED_KEY"GET /summary
GET /guilds/{guildId}/summary
The server at a glance. members is Discord's member count, kept for five minutes, and null when Discord could not say.
| Key permission | settings.read (See settings) |
No request body.
Example
curl -X GET "https://api.technified.xyz/v1/guilds/YOUR_SERVER_ID/summary" \
-H "Authorization: Bearer $TECHNIFIED_KEY"Still stuck? Get help from the Technified team.