Welcome to the Simrail Express Document Service. The Document Service is an JSON API that allows for generating Simrail documents such as paper timetables and R7 cards.
Flow

It can take several minutes to generate your documents (depending on the size of your request and the number of requests in the queue). Hence, the documents are processed asynchronously. The following steps are required:

Submit your request
POST /api/v1/request

The request must have the following structure:

{
  "trains": [
    {
      "trainNoLocal": "19941",
      "trainName": "ROJ - R1",
      "startStation": "Warszawa Wschodnia",
      "endStation": "Warszawa Zachodnia",
      "startsAt": "22:57:00",
      "endsAt": "23:16:00",
      "locoType": "EN57",
      "trainLength": 59,
      "trainWeight": 166,
      "timetable": [
        {
          "nameOfPoint": "Warszawa Wschodnia",
          "nameForPerson": "Warszawa Wschodnia",
          "pointId": "4824",
          "supervisedBy": "Warszawa Wschodnia",
          "radioChanels": " ",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 22:57:00",
          "departureTime": "2025-01-03 23:00:00",
          "stopType": "CommercialStop",
          "line": 448,
          "platform": "IV",
          "track": 1,
          "trainType": "RAJ",
          "mileage": 4.254,
          "maxSpeed": 60,
          "stationCategory": "A"
        },
        {
          "nameOfPoint": "Warszawa Stadion",
          "nameForPerson": "Warszawa Stadion",
          "pointId": "4797",
          "supervisedBy": null,
          "radioChanels": " ",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 23:02:00",
          "departureTime": "2025-01-03 23:02:00",
          "stopType": "CommercialStop",
          "line": 448,
          "platform": "II",
          "track": 4,
          "trainType": "RAJ",
          "mileage": 3.196,
          "maxSpeed": 60,
          "stationCategory": "C"
        },
        {
          "nameOfPoint": "Warszawa Powiśle",
          "nameForPerson": "Warszawa Powiśle",
          "pointId": "4759",
          "supervisedBy": null,
          "radioChanels": " ",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 23:05:00",
          "departureTime": "2025-01-03 23:05:00",
          "stopType": "CommercialStop",
          "line": 448,
          "platform": "II",
          "track": 4,
          "trainType": "RAJ",
          "mileage": 1.79,
          "maxSpeed": 60,
          "stationCategory": "C"
        },
        {
          "nameOfPoint": "Warszawa Śródmieście",
          "nameForPerson": "Warszawa Śródmieście",
          "pointId": "4799",
          "supervisedBy": null,
          "radioChanels": " ",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 23:08:00",
          "departureTime": "2025-01-03 23:09:00",
          "stopType": "CommercialStop",
          "line": 448,
          "platform": "III",
          "track": 4,
          "trainType": "RAJ",
          "mileage": 0.3,
          "maxSpeed": 60,
          "stationCategory": "C"
        },
        {
          "nameOfPoint": "Warszawa Ochota",
          "nameForPerson": "Warszawa Ochota",
          "pointId": "4746",
          "supervisedBy": null,
          "radioChanels": " ",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 23:11:00",
          "departureTime": "2025-01-03 23:12:00",
          "stopType": "CommercialStop",
          "line": 447,
          "platform": "I",
          "track": 4,
          "trainType": "RAJ",
          "mileage": -0.907,
          "maxSpeed": 60,
          "stationCategory": "C"
        },
        {
          "nameOfPoint": "Warszawa Zachodnia",
          "nameForPerson": "Warszawa Zachodnia",
          "pointId": "4837",
          "supervisedBy": "Warszawa Zachodnia",
          "radioChanels": "R2, R3, R5",
          "displayedTrainNumber": "19941",
          "arrivalTime": "2025-01-03 23:15:00",
          "departureTime": "2025-01-03 23:16:00",
          "stopType": "CommercialStop",
          "line": 447,
          "platform": "III",
          "track": 23,
          "trainType": "RAJ",
          "mileage": 3.082,
          "maxSpeed": 60,
          "stationCategory": "B"
        }
      ]
    }
  ],
  "train_formations": [
    {
      "TrainNoLocal": "19941",
      "StartStation": "Warszawa Wschodnia",
      "EndStation": "Warszawa Zachodnia",
      "Vehicles": [
        "EN57/EN57-038"
      ]
    }
  ],
  "languages": [
    "pl",
    "en"
  ],
  "timetable": false,
  "r7": false,
  "combined": true
}
    
Record the request ID

On a successful request submission you will get a response that contains a unique request ID. You will need this to check the status of your request and to download the documents:

{
  "uuid": "946981e26f294e7582ef6a2317579116",
  "status": "queued",
  "download_url": null,
  "error_message": null,
  "build_map": null
}
    
Poll for the request status

You can check the status of your request by polling the following URL:

GET /api/v1/request/uuid

When the status is 'done', you will be able to download the documents:

{
  "uuid": "946981e26f294e7582ef6a2317579116",
  "status": "done",
  "download_url": "https://document-service.simrail.express/media/private/946981e26f294e7582ef6a2317579116.zip",
  "error_message": null,
  "build_map": {
    "19941": {
      "timetable": {
        "html": {"en": "en/19941/19941_timetable.html", "pl": "pl/19941/19941_timetable.html"},
        "pdf": {"en": "en/19941/19941_timetable.pdf", "pl": "pl/19941/19941_timetable.pdf"}
      },
      "r7": {
        "html": {"en": "en/19941/19941_r7.html", "pl": "pl/19941/19941_r7.html"},
        "pdf": {"en": "en/19941/19941_r7.pdf", "pl": "pl/19941/19941_r7.pdf"}
      },
      "combined": {
        "pdf": {"en": "en/19941/19941_combined.pdf", "pl": "pl/19941/19941_combined.pdf"}
      }
    }
  }
}
    
Authentication

Send the authentication bearer token. Tokens are distributed by invite only.

Authorization: Bearer ex-ds-55f68850-68c4-4ba9-8b46-68c6b159235c