API documentation

General

The API can be used to offer your community additional ways to interact with events or to display information. Feel free to share your ideas with us - others may be able to benefit from them as well.

The current API version is v1. Major changes will result in a version number bump. This includes, but is not limited to, changes to the return values of existing fields or removing any part of the API. Additional return fields or new request parameters do not result in a version change. Changes to the endpoints can be found in the changelogs.

Most endpoints require authentication via API keys. These cannot currently be configured, you will need to contact Alf.

Please include the user-agent header in all requests. This information will only be used to maintain the service, which may include contacting you in the event of a problem. It will not be shared with third parties.

Documentation

Events

Everything related to events

All events between two dates

get

Search for events in a specific time frame of up to 30 days.

Authorizations
Query parameters
startstring · yyyy-MM-ddRequired

Starting with the date in UTC including the date

endstring · yyyy-MM-ddRequired

Ending with the date in UTC including the date

Responses
200
OK
*/*
get
GET /backend/slotbot/api/v1/events HTTP/1.1
Host: slotbot.de
slotbot-auth-token: YOUR_API_KEY
Accept: */*
[
  {
    "id": 1,
    "hidden": true,
    "name": "text",
    "dateTime": "2025-07-01T12:20:36.874Z",
    "creator": "text",
    "eventType": {
      "name": "text",
      "color": "text"
    },
    "description": "text",
    "missionType": "text",
    "missionLength": "text",
    "pictureUrl": "https://example.net/example.png",
    "details": [
      {
        "id": 1,
        "title": "text",
        "text": "text"
      }
    ],
    "reserveParticipating": true,
    "squadList": [
      {
        "id": 1,
        "name": "text",
        "reservedForGuildId": "text",
        "slotList": [
          {
            "id": 1,
            "name": "text",
            "number": 1,
            "reservedForGuildId": "text",
            "userId": "text",
            "replacementText": "text"
          }
        ]
      }
    ]
  }
]

Create an event

post
Authorizations
Body
namestring · max: 80Required
dateTimestring · date-timeRequired
creatorstring · max: 80Required
descriptionstring · max: 4096Optional
missionTypestring · max: 80Optional
missionLengthstring · max: 80Optional
pictureUrlstring · max: 1666OptionalExample: https://example.net/example.pngPattern: |\s*(https?|attachment)://\S+\s*
reserveParticipatingbooleanOptional
hiddenbooleanOptional

Allows everyone interested to see the event in the calendar.

Default: false
shareablebooleanOptional

Allows other groups to add this event ot their calendar and add participants through it.

Default: false
Responses
200
OK
*/*
post
POST /backend/slotbot/api/v1/events HTTP/1.1
Host: slotbot.de
slotbot-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 496

{
  "name": "text",
  "dateTime": "2025-07-01T12:20:36.874Z",
  "creator": "text",
  "eventType": {
    "name": "text",
    "color": "text"
  },
  "description": "text",
  "missionType": "text",
  "missionLength": "text",
  "pictureUrl": "https://example.net/example.png",
  "reserveParticipating": true,
  "hidden": false,
  "shareable": false,
  "details": [
    {
      "title": "text",
      "text": "text"
    }
  ],
  "squadList": [
    {
      "name": "text",
      "reservedForGuildId": "text",
      "slotList": [
        {
          "name": "text",
          "number": 1,
          "reservedForGuildId": "text",
          "userId": "text",
          "replacementText": "text"
        }
      ]
    }
  ]
}
{
  "id": 1,
  "hidden": true,
  "name": "text",
  "dateTime": "2025-07-01T12:20:36.874Z",
  "creator": "text",
  "eventType": {
    "name": "text",
    "color": "text"
  },
  "description": "text",
  "missionType": "text",
  "missionLength": "text",
  "pictureUrl": "https://example.net/example.png",
  "details": [
    {
      "id": 1,
      "title": "text",
      "text": "text"
    }
  ],
  "reserveParticipating": true,
  "squadList": [
    {
      "id": 1,
      "name": "text",
      "reservedForGuildId": "text",
      "slotList": [
        {
          "id": 1,
          "name": "text",
          "number": 1,
          "reservedForGuildId": "text",
          "userId": "text",
          "replacementText": "text"
        }
      ]
    }
  ]
}
get
Authorizations
Path parameters
idinteger · int64Required
Responses
200
OK
*/*
get
GET /backend/slotbot/api/v1/events/{id} HTTP/1.1
Host: slotbot.de
slotbot-auth-token: YOUR_API_KEY
Accept: */*
{
  "id": 1,
  "hidden": true,
  "name": "text",
  "dateTime": "2025-07-01T12:20:36.874Z",
  "creator": "text",
  "eventType": {
    "name": "text",
    "color": "text"
  },
  "description": "text",
  "missionType": "text",
  "missionLength": "text",
  "pictureUrl": "https://example.net/example.png",
  "details": [
    {
      "id": 1,
      "title": "text",
      "text": "text"
    }
  ],
  "reserveParticipating": true,
  "squadList": [
    {
      "id": 1,
      "name": "text",
      "reservedForGuildId": "text",
      "slotList": [
        {
          "id": 1,
          "name": "text",
          "number": 1,
          "reservedForGuildId": "text",
          "userId": "text",
          "replacementText": "text"
        }
      ]
    }
  ]
}

Slots

Everything related to slots in events

Slot or unslot a user in an event

post
Authorizations
Path parameters
idinteger · int64Required
slotNumberinteger · int32Required
Body
string · discord-snowflakeOptional

Slot this user or, if empty, unslot this slot.

Responses
200
OK
*/*
post
POST /backend/slotbot/api/v1/events/{id}/slot/{slotNumber} HTTP/1.1
Host: slotbot.de
slotbot-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"
{
  "id": 1,
  "hidden": true,
  "name": "text",
  "dateTime": "2025-07-01T12:20:36.874Z",
  "creator": "text",
  "eventType": {
    "name": "text",
    "color": "text"
  },
  "description": "text",
  "missionType": "text",
  "missionLength": "text",
  "pictureUrl": "https://example.net/example.png",
  "details": [
    {
      "id": 1,
      "title": "text",
      "text": "text"
    }
  ],
  "reserveParticipating": true,
  "squadList": [
    {
      "id": 1,
      "name": "text",
      "reservedForGuildId": "text",
      "slotList": [
        {
          "id": 1,
          "name": "text",
          "number": 1,
          "reservedForGuildId": "text",
          "userId": "text",
          "replacementText": "text"
        }
      ]
    }
  ]
}

Block a slot in an event

post

Blocks a slot from being slotted. If a block already exists, it can be used to overwrite the displayed text. If none is specified, the default is "Gesperrt".

Authorizations
Path parameters
idinteger · int64Required
slotNumberinteger · int32Required
Body
string · max: 80Optional
Responses
200
OK
*/*
post
POST /backend/slotbot/api/v1/events/{id}/slot/{slotNumber}/block HTTP/1.1
Host: slotbot.de
slotbot-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"
{
  "id": 1,
  "hidden": true,
  "name": "text",
  "dateTime": "2025-07-01T12:20:36.874Z",
  "creator": "text",
  "eventType": {
    "name": "text",
    "color": "text"
  },
  "description": "text",
  "missionType": "text",
  "missionLength": "text",
  "pictureUrl": "https://example.net/example.png",
  "details": [
    {
      "id": 1,
      "title": "text",
      "text": "text"
    }
  ],
  "reserveParticipating": true,
  "squadList": [
    {
      "id": 1,
      "name": "text",
      "reservedForGuildId": "text",
      "slotList": [
        {
          "id": 1,
          "name": "text",
          "number": 1,
          "reservedForGuildId": "text",
          "userId": "text",
          "replacementText": "text"
        }
      ]
    }
  ]
}

Status

Server Status

Ping

get

Check if the server is responsive.

Responses
200
OK
get
GET /backend/slotbot/api/v1/status HTTP/1.1
Host: slotbot.de
Accept: */*
200

OK

No content

Last updated