Omniplex Docs

Servers

These API endpoints are related to servers on IBL

GET
/servers/@all

Get All Servers

Gets approved and certified, publicly listed servers, filtered and sorted. Returns a set of paginated IndexServer objects

/servers/@all

Query Parameters

pagestring

The page number

sortstring

Sort order: new (default; newest first, with boosted listings on top), trending (net votes in the last 7 days, only servers with at least one vote in that window), votes (most votes this cycle) or members (highest member count).

tagstring

Only servers with this tag (case-insensitive).

certifiedstring

true to only return certified servers.

curl -X GET "https://spider.omniplex.gg/servers/@all?page=string&sort=string&tag=string&certified=string"

Success

{
  "count": 18446744073709552000,
  "per_page": 18446744073709552000,
  "results": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ]
}

GET
/servers/@emojis

Get Servers Emojis

Gets a paginated list of servers that have opted in to showing their emojis/stickers

/servers/@emojis

Query Parameters

pagestring

The page number

curl -X GET "https://spider.omniplex.gg/servers/@emojis?page=string"

Success

{
  "count": 18446744073709552000,
  "per_page": 18446744073709552000,
  "results": [
    {
      "avatar": "string",
      "emojis": [
        {
          "animated": true,
          "id": "string",
          "name": "string",
          "url": "string"
        }
      ],
      "name": "string",
      "server_id": "string",
      "stickers": [
        {
          "format": "string",
          "id": "string",
          "name": "string",
          "url": "string"
        }
      ]
    }
  ]
}

GET
/servers/@emojis/flat

Get Flat Emojis

Gets a paginated, flat list of emojis across every server that has opted in to showing them

/servers/@emojis/flat

Query Parameters

pagestring

The page number

curl -X GET "https://spider.omniplex.gg/servers/@emojis/flat?page=string"

Success

{
  "count": 18446744073709552000,
  "per_page": 18446744073709552000,
  "results": [
    {
      "animated": true,
      "id": "string",
      "name": "string",
      "server_avatar": "string",
      "server_id": "string",
      "server_name": "string",
      "url": "string"
    }
  ]
}

GET
/servers/@stickers/flat

Get Flat Stickers

Gets a paginated, flat list of stickers across every server that has opted in to showing them

/servers/@stickers/flat

Query Parameters

pagestring

The page number

curl -X GET "https://spider.omniplex.gg/servers/@stickers/flat?page=string"

Success

{
  "count": 18446744073709552000,
  "per_page": 18446744073709552000,
  "results": [
    {
      "format": "string",
      "id": "string",
      "name": "string",
      "server_avatar": "string",
      "server_id": "string",
      "server_name": "string",
      "url": "string"
    }
  ]
}

POST
/servers/stats

Post Server Stats

This endpoint posts the stats of a server. Posting at all marks the server as self-managing its stats, which stops the periodic Infernoplex sync from overwriting total_members/online_members for it.

/servers/stats

The Authorization access token

Authorization

Server-Auth<token>

Requires a server API session token. Should be prefixed with Server in Authorization header.

In: header

Request Body

application/jsonRequired

online_membersinteger

The server's online member count

Minimum: 0Maximum: 18446744073709552000

total_membersinteger

The server's total member count

Minimum: 0Maximum: 18446744073709552000
curl -X POST "https://spider.omniplex.gg/servers/stats" \
  -H "Server-Auth: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "online_members": 18446744073709552000,
    "total_members": 18446744073709552000
  }'

Success

{
  "context": {
    "property1": "string",
    "property2": "string"
  },
  "message": "string"
}

GET
/servers/@random

Get Random Servers

Returns a list of servers from the database in random order

/servers/@random
curl -X GET "https://spider.omniplex.gg/servers/@random"

Success

{
  "servers": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ]
}

GET
/servers/@index

Get Servers Index

Gets the index of the server-side of the list. Returns a ListIndexServer object

/servers/@index
curl -X GET "https://spider.omniplex.gg/servers/@index"

Success

{
  "certified": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "featured": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "most_viewed": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "premium": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "recently_added": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "spotlight": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ],
  "top_voted": [
    {
      "approximate_votes": 0,
      "asset_versions": {
        "property1": "string",
        "property2": "string"
      },
      "avatar": "string",
      "boosted_until": "2019-08-24T14:15:22Z",
      "clicks": 0,
      "featured_until": "2019-08-24T14:15:22Z",
      "invite_clicks": 0,
      "name": "string",
      "nsfw": true,
      "online_members": 0,
      "premium": true,
      "server_id": "string",
      "short": "string",
      "spotlighted_until": "2019-08-24T14:15:22Z",
      "state": "string",
      "supporter_badge": true,
      "tags": [
        "string"
      ],
      "total_members": 0,
      "type": "string",
      "vanity": "string",
      "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
      "votes": 0
    }
  ]
}

GET
/servers/meta

Get Server Meta

Resolves a Discord invite link to a preview of the server it points to (name, icon, member counts, and whether it's already listed), without adding it to the database. Used by Add Server to show the server being added before the user submits.

/servers/meta

The Authorization access token

Authorization

User-Auth<token>

Requires a user token. Should be prefixed with User in Authorization header.

In: header

Team-Auth<token>

Requires a team API session token. Should be prefixed with Team in Authorization header.

In: header

Query Parameters

invite
Required
string

The Discord invite link or code to resolve

curl -X GET "https://spider.omniplex.gg/servers/meta?invite=string" \
  -H "User-Auth: <token>"

Success

{
  "already_listed": true,
  "avatar": "string",
  "bot_invite_url": "string",
  "bot_present": true,
  "list_type": "string",
  "name": "string",
  "online_members": 0,
  "server_id": "string",
  "total_members": 0
}

PUT
/servers

Add Server

Adds a server to the database from an invite link. Resolves the guild via the invite (the tracking bot does not need to already be in the server). Returns 204 on success

/servers

The Authorization access token

Authorization

User-Auth<token>

Requires a user token. Should be prefixed with User in Authorization header.

In: header

Team-Auth<token>

Requires a team API session token. Should be prefixed with Team in Authorization header.

In: header

Request Body

application/jsonRequired

extra_linksarray<object>

invitestring

longstring

nsfwboolean

shortstring

tagsarray<string>

team_ownerstring

curl -X PUT "https://spider.omniplex.gg/servers" \
  -H "User-Auth: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "extra_links": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "invite": "string",
    "long": "string",
    "nsfw": true,
    "short": "string",
    "tags": [
      "string"
    ],
    "team_owner": "string"
  }'

Success

{
  "context": {
    "property1": "string",
    "property2": "string"
  },
  "message": "string"
}

GET
/servers/{id}

Get Server

Gets a server by id

/servers/{id}

The Authorization access token

Authorization

User-Auth<token>

Requires a user token. Should be prefixed with User in Authorization header.

In: header

Server-Auth<token>

Requires a server API session token. Should be prefixed with Server in Authorization header.

In: header

Path Parameters

id
Required
string

The servers ID

Query Parameters

targetstring

The target page of the request if any.

If target is 'page', then unique clicks will be counted based on a SHA-256 hashed IP

If target is 'invite', then the invite will be counted as a click

Officially recognized targets:

  • page -> server page view
  • settings -> server settings page view
  • invite -> server invite view

includestring

What extra fields to include, comma-seperated. long => server long description

team_includesstring

What entities of the servers team to include

curl -X GET "https://spider.omniplex.gg/servers/string?target=string&include=string&team_includes=string" \
  -H "User-Auth: <token>"

Success

{
  "approval_note": "string",
  "approximate_votes": 0,
  "asset_versions": {
    "property1": "string",
    "property2": "string"
  },
  "boosted_until": "2019-08-24T14:15:22Z",
  "bot_id": "string",
  "captcha_opt_out": true,
  "cert_reason": "string",
  "claimed_by": "string",
  "clicks": 0,
  "client_id": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "extra_links": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "featured_until": "2019-08-24T14:15:22Z",
  "invite": "string",
  "invite_clicks": 0,
  "itag": "6b5f8e7b-1e8c-4611-b693-ee8faa950c62",
  "last_claimed": "2019-08-24T14:15:22Z",
  "last_japi_update": "2019-08-24T14:15:22Z",
  "last_stats_post": "2019-08-24T14:15:22Z",
  "library": "string",
  "long": "string",
  "moderation_categories": [
    "string"
  ],
  "moderation_flagged": true,
  "nsfw": true,
  "owner": {
    "avatar": "string",
    "bot": true,
    "display_name": "string",
    "extra_data": {
      "property1": null,
      "property2": null
    },
    "flags": [
      "string"
    ],
    "id": "string",
    "status": "string",
    "username": "string"
  },
  "prefix": "string",
  "premium": true,
  "premium_period_length": 0,
  "servers": 0,
  "shard_list": [
    0
  ],
  "shards": 0,
  "short": "string",
  "spotlighted_until": "2019-08-24T14:15:22Z",
  "start_premium_period": "2019-08-24T14:15:22Z",
  "supporter_badge": true,
  "tags": [
    "string"
  ],
  "team_owner": {
    "approximate_votes": 0,
    "asset_versions": {
      "property1": "string",
      "property2": "string"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "entities": {
      "bots": [
        {
          "approximate_votes": 0,
          "asset_versions": {
            "property1": "string",
            "property2": "string"
          },
          "boosted_until": "2019-08-24T14:15:22Z",
          "bot_id": "string",
          "clicks": 0,
          "created_at": "2019-08-24T14:15:22Z",
          "featured_until": "2019-08-24T14:15:22Z",
          "invite_clicks": 0,
          "library": "string",
          "nsfw": true,
          "premium": true,
          "servers": 0,
          "shards": 0,
          "short": "string",
          "spotlighted_until": "2019-08-24T14:15:22Z",
          "supporter_badge": true,
          "tags": [
            "string"
          ],
          "type": "string",
          "user": {
            "avatar": "string",
            "bot": true,
            "display_name": "string",
            "extra_data": {
              "property1": null,
              "property2": null
            },
            "flags": [
              "string"
            ],
            "id": "string",
            "status": "string",
            "username": "string"
          },
          "vanity": "string",
          "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
          "vote_blitz_until": "2019-08-24T14:15:22Z",
          "votes": 0
        }
      ],
      "members": [
        {
          "created_at": "2019-08-24T14:15:22Z",
          "data_holder": true,
          "flags": [
            "string"
          ],
          "itag": "6b5f8e7b-1e8c-4611-b693-ee8faa950c62",
          "mentionable": true,
          "service": "string",
          "team_id": "string",
          "user": {
            "avatar": "string",
            "bot": true,
            "display_name": "string",
            "extra_data": {
              "property1": null,
              "property2": null
            },
            "flags": [
              "string"
            ],
            "id": "string",
            "status": "string",
            "username": "string"
          }
        }
      ],
      "servers": [
        {
          "approximate_votes": 0,
          "asset_versions": {
            "property1": "string",
            "property2": "string"
          },
          "avatar": "string",
          "boosted_until": "2019-08-24T14:15:22Z",
          "clicks": 0,
          "featured_until": "2019-08-24T14:15:22Z",
          "invite_clicks": 0,
          "name": "string",
          "nsfw": true,
          "online_members": 0,
          "premium": true,
          "server_id": "string",
          "short": "string",
          "spotlighted_until": "2019-08-24T14:15:22Z",
          "state": "string",
          "supporter_badge": true,
          "tags": [
            "string"
          ],
          "total_members": 0,
          "type": "string",
          "vanity": "string",
          "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
          "votes": 0
        }
      ],
      "targets": [
        "string"
      ]
    },
    "extra_links": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "id": "string",
    "name": "string",
    "nsfw": true,
    "service": "string",
    "short": "string",
    "tags": [
      "string"
    ],
    "updated_at": "2019-08-24T14:15:22Z",
    "vanity": "string",
    "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
    "vote_banned": true,
    "votes": 0
  },
  "total_uptime": 0,
  "type": "string",
  "unique_clicks": 0,
  "updated_at": "2019-08-24T14:15:22Z",
  "uptime": 0,
  "uptime_last_checked": "2019-08-24T14:15:22Z",
  "user": {
    "avatar": "string",
    "bot": true,
    "display_name": "string",
    "extra_data": {
      "property1": null,
      "property2": null
    },
    "flags": [
      "string"
    ],
    "id": "string",
    "status": "string",
    "username": "string"
  },
  "users": 0,
  "vanity": "string",
  "vanity_ref": "e1b95001-3370-4367-9787-1fb904c7b8c7",
  "vote_banned": true,
  "vote_blitz_until": "2019-08-24T14:15:22Z",
  "votes": 0
}

GET
/servers/{id}/seo

Get Server SEO Info

Gets the minimal SEO information about a server for embed/search purposes. Used by v4 website for meta tags

/servers/{id}/seo

Path Parameters

id
Required
string

The server ID

curl -X GET "https://spider.omniplex.gg/servers/string/seo"

Success

{
  "avatar": "string",
  "id": "string",
  "name": "string",
  "short": "string"
}

PATCH
/servers/{id}/settings

Update Server Settings

Updates a servers settings. You must have 'Edit Server Settings' in the team if the bot is in a team. Returns 204 on success

/servers/{id}/settings

The Authorization access token

Authorization

User-Auth<token>

Requires a user token. Should be prefixed with User in Authorization header.

In: header

Team-Auth<token>

Requires a team API session token. Should be prefixed with Team in Authorization header.

In: header

Server-Auth<token>

Requires a server API session token. Should be prefixed with Server in Authorization header.

In: header

Request Body

application/jsonRequired

captcha_opt_outboolean

extra_linksarray<object>

login_required_for_inviteboolean

Whether the server requires a login to be invited to it

longstring

nsfwboolean

shortstring

show_emojisboolean

Whether to show this server's emojis and stickers on its listing page. Requires the tracking bot to be in the server to actually have anything to show

statestring

Value in: "public" | "private" | "unlisted" | "defunct"

tagsarray<string>

Path Parameters

id
Required
string

Server ID

curl -X PATCH "https://spider.omniplex.gg/servers/string/settings" \
  -H "User-Auth: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "captcha_opt_out": true,
    "extra_links": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "login_required_for_invite": true,
    "long": "string",
    "nsfw": true,
    "short": "string",
    "show_emojis": true,
    "state": "public",
    "tags": [
      "string"
    ]
  }'

Success

{
  "context": {
    "property1": "string",
    "property2": "string"
  },
  "message": "string"
}