├── LICENSE ├── OpenAPI-v2.yml └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 TruckersMP 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /OpenAPI-v2.yml: -------------------------------------------------------------------------------- 1 | openapi: 3.1.0 2 | info: 3 | title: TruckersMP API 4 | version: '2.0' 5 | x-logo: 6 | url: 'https://truckersmp.com/assets/img/truckersmp-logo-black.png' 7 | href: 'https://truckersmp.com' 8 | servers: 9 | - url: 'https://api.truckersmp.com/v2' 10 | description: V2 - Production 11 | paths: 12 | '/player/{id}': 13 | parameters: 14 | - schema: 15 | type: integer 16 | name: id 17 | in: path 18 | required: true 19 | description: SteamID64 or TruckersMP ID 20 | get: 21 | summary: Fetch player information 22 | tags: 23 | - Players 24 | responses: 25 | '200': 26 | description: OK 27 | content: 28 | application/json: 29 | schema: 30 | type: object 31 | properties: 32 | error: 33 | type: boolean 34 | default: false 35 | description: If any error occurred during the request 36 | response: 37 | $ref: '#/components/schemas/Player' 38 | required: 39 | - error 40 | '404': 41 | description: Not Found 42 | content: 43 | application/json: 44 | schema: 45 | description: '' 46 | type: object 47 | properties: 48 | error: 49 | type: boolean 50 | default: true 51 | descriptor: 52 | type: string 53 | example: Unable to find player with that ID. 54 | response: 55 | type: string 56 | example: Unable to find player with that ID. 57 | deprecated: true 58 | required: 59 | - error 60 | - response 61 | operationId: get-player-id 62 | description: |- 63 | Lookup player information 64 | 65 | **NOTE**: The API will respond with a 200 instead of 404 status code, but will have the respected body. 66 | '/bans/{id}': 67 | parameters: 68 | - schema: 69 | type: string 70 | name: id 71 | in: path 72 | required: true 73 | description: SteamID64 or TruckersMP ID 74 | get: 75 | summary: Fetch player bans 76 | tags: 77 | - Players 78 | responses: 79 | '200': 80 | description: OK 81 | content: 82 | application/json: 83 | schema: 84 | type: object 85 | properties: 86 | error: 87 | type: boolean 88 | default: false 89 | description: If any error occurred during the request 90 | response: 91 | type: array 92 | items: 93 | $ref: '#/components/schemas/Ban' 94 | required: 95 | - error 96 | '404': 97 | description: Not Found 98 | content: 99 | application/json: 100 | schema: 101 | description: '' 102 | type: object 103 | properties: 104 | error: 105 | type: boolean 106 | default: true 107 | descriptor: 108 | type: string 109 | example: Invalid user ID 110 | required: 111 | - error 112 | - descriptor 113 | operationId: get-bans-id 114 | description: |- 115 | Latest 5 bans for a selected user if bans are not hidden or user has no bans. Fetch the player information to check if user is currently banned 116 | 117 | For the user to be banned the `expiration` date has to be passed or `active` has to be false. 118 | 119 | **NOTE**: The API will respond with a 200 instead of 404 status code, but will have the respected body. 120 | /servers: 121 | get: 122 | summary: Fetch all the available servers 123 | tags: 124 | - Servers 125 | responses: 126 | '200': 127 | description: OK 128 | content: 129 | application/json: 130 | schema: 131 | type: object 132 | properties: 133 | error: 134 | type: boolean 135 | default: false 136 | description: If any error occurred during the request 137 | response: 138 | type: array 139 | items: 140 | $ref: '#/components/schemas/Server' 141 | required: 142 | - error 143 | operationId: get-servers 144 | description: List of available TruckersMP servers and their status 145 | /game_time: 146 | get: 147 | summary: Fetch the current in-game time 148 | tags: 149 | - Servers 150 | responses: 151 | '200': 152 | description: OK 153 | content: 154 | application/json: 155 | schema: 156 | type: object 157 | properties: 158 | error: 159 | type: boolean 160 | default: false 161 | description: If any error occurred during the request 162 | game_time: 163 | type: integer 164 | description: Game time returned in minutes (10 real seconds is 1 minute in-game) 165 | required: 166 | - error 167 | - game_time 168 | operationId: get-game_time 169 | description: |- 170 | The current in-game time. 171 | Game time is expressed in minutes, where 10 real seconds is 1 minute of in-game time. It is number of minutes since 2015-25-10 15:48:32 CET. 172 | 173 | Note: Game time may not be exact as time will drift. 174 | /events: 175 | get: 176 | summary: 'Fetch all the current, upcoming, and featured events' 177 | tags: 178 | - Events 179 | responses: 180 | '200': 181 | description: OK 182 | content: 183 | application/json: 184 | schema: 185 | type: object 186 | properties: 187 | error: 188 | type: boolean 189 | default: false 190 | description: If any error occurred during the request 191 | response: 192 | type: object 193 | properties: 194 | featured: 195 | type: array 196 | items: 197 | $ref: '#/components/schemas/EventIndex' 198 | today: 199 | type: array 200 | items: 201 | $ref: '#/components/schemas/EventIndex' 202 | now: 203 | type: array 204 | items: 205 | $ref: '#/components/schemas/EventIndex' 206 | upcoming: 207 | type: array 208 | items: 209 | $ref: '#/components/schemas/EventIndex' 210 | required: 211 | - error 212 | operationId: get-v2-events 213 | description: 'List all of the current, upcoming, and featured TruckersMP events.' 214 | parameters: [] 215 | '/events/{id}': 216 | parameters: 217 | - schema: 218 | type: string 219 | name: id 220 | in: path 221 | required: true 222 | description: Event ID 223 | get: 224 | summary: Fetch the specified event 225 | tags: 226 | - Events 227 | responses: 228 | '200': 229 | description: OK 230 | content: 231 | application/json: 232 | schema: 233 | type: object 234 | properties: 235 | error: 236 | type: boolean 237 | default: false 238 | description: If any error occurred during the request 239 | response: 240 | $ref: '#/components/schemas/Event' 241 | required: 242 | - error 243 | examples: {} 244 | '404': 245 | $ref: '#/components/responses/PageNotFound' 246 | operationId: get-events-id 247 | '/events/user/{id}': 248 | parameters: 249 | - schema: 250 | type: string 251 | name: id 252 | in: path 253 | required: true 254 | description: User ID 255 | get: 256 | summary: Fetch all the events from the specified user 257 | tags: 258 | - Events 259 | responses: 260 | '200': 261 | description: OK 262 | content: 263 | application/json: 264 | schema: 265 | type: object 266 | properties: 267 | error: 268 | type: boolean 269 | default: false 270 | description: If any error occurred during the request 271 | response: 272 | type: array 273 | items: 274 | $ref: '#/components/schemas/EventIndex' 275 | required: 276 | - error 277 | '404': 278 | $ref: '#/components/responses/PageNotFound' 279 | operationId: get-user-id-events 280 | /vtc: 281 | get: 282 | summary: 'Fetch all the recent, featured, and featured cover VTCs' 283 | responses: 284 | '200': 285 | description: OK 286 | content: 287 | application/json: 288 | schema: 289 | type: object 290 | properties: 291 | error: 292 | type: boolean 293 | default: false 294 | description: If any error occurred during the request 295 | response: 296 | type: object 297 | properties: 298 | recent: 299 | type: array 300 | items: 301 | $ref: '#/components/schemas/VTCIndex' 302 | featured: 303 | type: array 304 | items: 305 | $ref: '#/components/schemas/VTCIndex' 306 | featured_cover: 307 | type: array 308 | items: 309 | $ref: '#/components/schemas/VTCIndex' 310 | required: 311 | - recent 312 | - featured 313 | - featured_cover 314 | required: 315 | - error 316 | operationId: get-vtc 317 | tags: 318 | - Virtual Trucking Companies 319 | '/vtc/{id}': 320 | parameters: 321 | - schema: 322 | type: string 323 | name: id 324 | in: path 325 | required: true 326 | description: VTC ID 327 | get: 328 | summary: Fetch the specified VTC 329 | tags: 330 | - Virtual Trucking Companies 331 | responses: 332 | '200': 333 | description: OK 334 | content: 335 | application/json: 336 | schema: 337 | type: object 338 | properties: 339 | error: 340 | type: boolean 341 | default: false 342 | description: If any error occurred during the request 343 | response: 344 | $ref: '#/components/schemas/VTC' 345 | required: 346 | - error 347 | '404': 348 | $ref: '#/components/responses/PageNotFound' 349 | operationId: get-vtc-id 350 | '/vtc/{id}/news': 351 | parameters: 352 | - schema: 353 | type: string 354 | name: id 355 | in: path 356 | required: true 357 | description: VTC ID 358 | get: 359 | summary: Fetch all the news from the specified VTC 360 | tags: 361 | - Virtual Trucking Companies 362 | responses: 363 | '200': 364 | description: OK 365 | content: 366 | application/json: 367 | schema: 368 | type: object 369 | properties: 370 | error: 371 | type: boolean 372 | default: false 373 | description: If any error occurred during the request 374 | response: 375 | type: object 376 | properties: 377 | news: 378 | type: array 379 | items: 380 | $ref: '#/components/schemas/VTCNewsIndex' 381 | required: 382 | - error 383 | '404': 384 | $ref: '#/components/responses/PageNotFound' 385 | operationId: get-vtc-id-news 386 | '/vtc/{id}/news/{news_id}': 387 | parameters: 388 | - schema: 389 | type: string 390 | name: id 391 | in: path 392 | required: true 393 | description: VTC ID 394 | - schema: 395 | type: string 396 | name: news_id 397 | in: path 398 | required: true 399 | description: News Article ID 400 | get: 401 | summary: Fetch the specified news article from the specified VTC 402 | tags: 403 | - Virtual Trucking Companies 404 | responses: 405 | '200': 406 | description: OK 407 | content: 408 | application/json: 409 | schema: 410 | type: object 411 | properties: 412 | error: 413 | type: boolean 414 | default: false 415 | description: If any error occurred during the request 416 | response: 417 | $ref: '#/components/schemas/VTCNews' 418 | required: 419 | - error 420 | '404': 421 | $ref: '#/components/responses/PageNotFound' 422 | operationId: get-vtc-id-news-news_id 423 | '/vtc/{id}/roles': 424 | parameters: 425 | - schema: 426 | type: string 427 | name: id 428 | in: path 429 | required: true 430 | description: VTC ID 431 | get: 432 | summary: Fetch all the roles from the specified VTC 433 | tags: 434 | - Virtual Trucking Companies 435 | responses: 436 | '200': 437 | description: OK 438 | content: 439 | application/json: 440 | schema: 441 | type: object 442 | properties: 443 | error: 444 | type: boolean 445 | default: false 446 | description: If any error occurred during the request 447 | response: 448 | type: object 449 | properties: 450 | roles: 451 | type: array 452 | items: 453 | $ref: '#/components/schemas/VTCRole' 454 | required: 455 | - error 456 | - response 457 | '404': 458 | $ref: '#/components/responses/PageNotFound' 459 | operationId: get-vtc-id-roles 460 | '/vtc/{id}/role/{role_id}': 461 | parameters: 462 | - schema: 463 | type: string 464 | name: id 465 | in: path 466 | required: true 467 | description: VTC ID 468 | - schema: 469 | type: string 470 | name: role_id 471 | in: path 472 | required: true 473 | description: Role ID 474 | get: 475 | summary: Fetch the specified role from the specified VTC 476 | tags: 477 | - Virtual Trucking Companies 478 | responses: 479 | '200': 480 | description: OK 481 | content: 482 | application/json: 483 | schema: 484 | type: object 485 | properties: 486 | error: 487 | type: boolean 488 | default: false 489 | description: If any error occurred during the request 490 | response: 491 | $ref: '#/components/schemas/VTCRole' 492 | required: 493 | - error 494 | '404': 495 | $ref: '#/components/responses/PageNotFound' 496 | operationId: get-vtc-id-role-role_id 497 | '/vtc/{id}/members': 498 | parameters: 499 | - schema: 500 | type: string 501 | name: id 502 | in: path 503 | required: true 504 | description: VTC ID 505 | get: 506 | summary: Fetch all the members from the specified VTC 507 | tags: 508 | - Virtual Trucking Companies 509 | responses: 510 | '200': 511 | description: OK 512 | content: 513 | application/json: 514 | schema: 515 | type: object 516 | properties: 517 | error: 518 | type: boolean 519 | default: false 520 | description: If any error occurred during the request 521 | response: 522 | type: object 523 | properties: 524 | members: 525 | type: array 526 | items: 527 | $ref: '#/components/schemas/VTCMember' 528 | required: 529 | - error 530 | '404': 531 | $ref: '#/components/responses/PageNotFound' 532 | operationId: get-vtc-id-members 533 | '/vtc/{id}/member/{member_id}': 534 | parameters: 535 | - schema: 536 | type: string 537 | name: id 538 | in: path 539 | required: true 540 | description: VTC ID 541 | - schema: 542 | type: string 543 | name: member_id 544 | in: path 545 | required: true 546 | description: "Member ID. **NOTE** This is the user's VTC member ID, which is different to their TruckersMP User ID. The member ID can be found by accessing the GET /vtc/{id}/members endpoint" 547 | get: 548 | summary: Fetch the specified member from the specified VTC 549 | tags: 550 | - Virtual Trucking Companies 551 | responses: 552 | '200': 553 | description: OK 554 | content: 555 | application/json: 556 | schema: 557 | type: object 558 | properties: 559 | error: 560 | type: boolean 561 | default: false 562 | description: If any error occurred during the request 563 | response: 564 | $ref: '#/components/schemas/VTCMember' 565 | required: 566 | - error 567 | '404': 568 | $ref: '#/components/responses/PageNotFound' 569 | operationId: get-vtc-id-member-member_id 570 | '/vtc/{id}/events': 571 | parameters: 572 | - schema: 573 | type: string 574 | name: id 575 | in: path 576 | required: true 577 | description: VTC ID 578 | get: 579 | summary: Fetch all the events from the specified VTC 580 | tags: 581 | - Virtual Trucking Companies 582 | responses: 583 | '200': 584 | description: OK 585 | content: 586 | application/json: 587 | schema: 588 | type: object 589 | properties: 590 | error: 591 | type: boolean 592 | default: false 593 | description: If any error occurred during the request 594 | response: 595 | type: array 596 | items: 597 | $ref: '#/components/schemas/EventIndex' 598 | required: 599 | - error 600 | '404': 601 | $ref: '#/components/responses/PageNotFound' 602 | operationId: get-vtc-id-events 603 | '/vtc/{id}/events/{event_id}': 604 | parameters: 605 | - schema: 606 | type: string 607 | name: id 608 | in: path 609 | required: true 610 | description: VTC ID 611 | - schema: 612 | type: string 613 | name: event_id 614 | in: path 615 | required: true 616 | description: Event ID 617 | get: 618 | summary: Fetch the specified event from the specified VTC 619 | tags: 620 | - Virtual Trucking Companies 621 | responses: 622 | '200': 623 | description: OK 624 | content: 625 | application/json: 626 | schema: 627 | type: object 628 | properties: 629 | error: 630 | type: boolean 631 | default: false 632 | description: If any error occurred during the request 633 | response: 634 | $ref: '#/components/schemas/Event' 635 | required: 636 | - error 637 | '404': 638 | $ref: '#/components/responses/PageNotFound' 639 | operationId: get-vtc-id-events-event_id 640 | '/vtc/{id}/events/attending': 641 | parameters: 642 | - schema: 643 | type: string 644 | name: id 645 | in: path 646 | required: true 647 | description: VTC ID 648 | get: 649 | summary: Fetch the attending events from the specified VTC 650 | tags: 651 | - Virtual Trucking Companies 652 | responses: 653 | '200': 654 | description: OK 655 | content: 656 | application/json: 657 | schema: 658 | type: object 659 | properties: 660 | error: 661 | type: boolean 662 | default: false 663 | description: If any error occurred during the request 664 | response: 665 | $ref: '#/components/schemas/Event' 666 | required: 667 | - error 668 | '404': 669 | $ref: '#/components/responses/PageNotFound' 670 | operationId: get-vtc-id-events-attending 671 | '/vtc/{id}/partners': 672 | parameters: 673 | - schema: 674 | type: string 675 | name: id 676 | in: path 677 | required: true 678 | description: VTC ID 679 | get: 680 | summary: Fetch all the partners of the specified VTC 681 | tags: 682 | - Virtual Trucking Companies 683 | responses: 684 | '200': 685 | description: OK 686 | content: 687 | application/json: 688 | schema: 689 | type: object 690 | properties: 691 | error: 692 | type: boolean 693 | default: false 694 | description: If any error occurred during the request 695 | response: 696 | type: array 697 | items: 698 | $ref: '#/components/schemas/VTCPartnershipsIndex' 699 | required: 700 | - error 701 | '404': 702 | $ref: '#/components/responses/PageNotFound' 703 | operationId: get-vtc-id-partners 704 | /version: 705 | get: 706 | summary: Fetch the current TruckersMP version for ETS2 and ATS 707 | responses: 708 | '200': 709 | description: OK 710 | content: 711 | application/json: 712 | schema: 713 | $ref: '#/components/schemas/Version' 714 | operationId: get-version 715 | tags: 716 | - Game Information 717 | /rules: 718 | get: 719 | summary: Fetch the current in-game rules 720 | responses: 721 | '200': 722 | description: OK 723 | content: 724 | application/json: 725 | schema: 726 | description: '' 727 | type: object 728 | properties: 729 | error: 730 | type: boolean 731 | default: false 732 | description: If any error occurred during the request 733 | rules: 734 | type: string 735 | description: Markdown of the current in-game rules 736 | revision: 737 | type: number 738 | description: Version number 739 | required: 740 | - error 741 | - rules 742 | - revision 743 | operationId: get-rules 744 | description: '' 745 | tags: 746 | - Game Information 747 | components: 748 | schemas: 749 | Version: 750 | description: '' 751 | type: object 752 | properties: 753 | name: 754 | type: string 755 | description: Name of the current version 756 | numeric: 757 | type: string 758 | description: Numeric name of the current version 759 | stage: 760 | type: string 761 | description: Current stage in the development process 762 | ets2mp_checksum: 763 | type: object 764 | required: 765 | - dll 766 | - adb 767 | properties: 768 | dll: 769 | type: string 770 | description: Checksum of core.dll 771 | adb: 772 | type: string 773 | description: Checksum of data1.adb 774 | atsmp_checksum: 775 | type: object 776 | required: 777 | - dll 778 | - adb 779 | properties: 780 | dll: 781 | type: string 782 | description: Checksum of core.dll 783 | adb: 784 | type: string 785 | description: Checksum of data1.adb 786 | time: 787 | type: string 788 | description: The time that the version was released 789 | supported_game_version: 790 | type: string 791 | description: ETS2 version that is supported 792 | supported_ats_game_version: 793 | type: string 794 | description: ATS version that is supported 795 | required: 796 | - name 797 | - numeric 798 | - stage 799 | - ets2mp_checksum 800 | - atsmp_checksum 801 | - time 802 | - supported_game_version 803 | - supported_ats_game_version 804 | Player: 805 | description: '' 806 | type: object 807 | properties: 808 | id: 809 | type: number 810 | description: The ID of the user requested 811 | name: 812 | type: string 813 | description: The name of the user 814 | avatar: 815 | type: string 816 | description: URL to the avatar used on the website 817 | smallAvatar: 818 | type: string 819 | description: URL to the avatar used on the website (32px x 32px) 820 | joinDate: 821 | type: string 822 | description: The date and time the user registered (UTC) 823 | steamID64: 824 | type: number 825 | description: The SteamID64 of the user 826 | steamID: 827 | type: string 828 | description: The SteamID64 of the user 829 | discordSnowflake: 830 | type: string 831 | description: The Discord account linked to the user or null if not linked or private 832 | displayVTCHistory: 833 | type: boolean 834 | description: Is the user's VTC History visible 835 | groupName: 836 | type: string 837 | description: The name of the group the user belongs to 838 | groupColor: 839 | type: string 840 | description: The color of the group 841 | groupID: 842 | type: number 843 | description: The ID of the group the user belongs to 844 | banned: 845 | type: boolean 846 | description: If the user is currently banned 847 | bannedUntil: 848 | type: string 849 | description: The date and time the ban will expire (UTC) or `null` if not banned or ban is permanent 850 | bansCount: 851 | type: integer 852 | description: The number of active bans a user has or `null` if staff 853 | displayBans: 854 | type: boolean 855 | description: If the user has their bans hidden 856 | patreon: 857 | type: object 858 | required: 859 | - isPatron 860 | - active 861 | properties: 862 | isPatron: 863 | type: boolean 864 | description: If the user has donated or is currently donating via Patreon 865 | active: 866 | type: boolean 867 | description: If the user has an active Patreon subscription 868 | color: 869 | type: string 870 | description: HEX code for subscribed tier 871 | tierId: 872 | type: integer 873 | description: The tier ID of current pledge 874 | currentPledge: 875 | type: integer 876 | description: Current pledge in cents 877 | lifetimePledge: 878 | type: integer 879 | description: Lifetime pledge in cents 880 | nextPledge: 881 | type: integer 882 | description: Next pledge in cents 883 | hidden: 884 | type: boolean 885 | description: If user has their Patreon information hidden 886 | permissions: 887 | type: object 888 | required: 889 | - isStaff 890 | - isUpperStaff 891 | - isGameAdmin 892 | - showDetailedOnWebMaps 893 | properties: 894 | isStaff: 895 | type: boolean 896 | description: If the user is a TruckersMP staff member 897 | isUpperStaff: 898 | type: boolean 899 | description: If the user is part of upper staff within the TruckersMP team 900 | isGameAdmin: 901 | type: boolean 902 | description: If the user has Game Moderator permissions 903 | showDetailedOnWebMaps: 904 | type: boolean 905 | description: Always false 906 | vtc: 907 | type: object 908 | required: 909 | - id 910 | - name 911 | - tag 912 | - inVTC 913 | - memberID 914 | properties: 915 | id: 916 | type: number 917 | description: ID of the VTC the user belongs to or 0 if not in a VTC 918 | name: 919 | type: string 920 | description: Name of the VTC the user belongs to or empty if not in a VTC 921 | tag: 922 | type: string 923 | description: Tag of the VTC the user belongs to or empty if not in a VTC 924 | inVTC: 925 | type: boolean 926 | description: If the user is in a VTC 927 | memberID: 928 | type: number 929 | description: VTC member ID or 0 if not in a VTC 930 | vtcHistory: 931 | type: array 932 | description: If the user do not allow to see their VTC history `null` will be returned 933 | items: 934 | $ref: '#/components/schemas/VTCHistory' 935 | achievements: 936 | type: array 937 | description: If the user do not allow to see their achievements `null` will be returned 938 | items: 939 | type: object 940 | properties: 941 | id: 942 | type: number 943 | description: ID of the achievement 944 | title: 945 | type: string 946 | description: Title of achievement 947 | description: 948 | type: string 949 | description: Description of achievement 950 | image_url: 951 | type: string 952 | description: Link to achievement image 953 | achieved_at: 954 | type: string 955 | description: Date and time the user was given the achievement (UTC) 956 | required: 957 | - id 958 | - title 959 | - description 960 | - image_url 961 | - achieved_at 962 | awards: 963 | type: array 964 | description: If the user do not allow to see their awards `null` will be returned 965 | items: 966 | type: object 967 | properties: 968 | id: 969 | type: number 970 | description: ID of the award 971 | name: 972 | type: string 973 | description: Name of award 974 | image_url: 975 | type: string 976 | description: Link to award image 977 | awarded_at: 978 | type: string 979 | description: Date and time the user was given the award (UTC) 980 | required: 981 | - id 982 | - name 983 | - image_url 984 | - awarded_at 985 | required: 986 | - id 987 | - name 988 | - avatar 989 | - smallAvatar 990 | - joinDate 991 | - steamID64 992 | - steamID 993 | - displayVTCHistory 994 | - groupName 995 | - groupColor 996 | - groupID 997 | - banned 998 | - displayBans 999 | - patreon 1000 | - permissions 1001 | - vtc 1002 | Ban: 1003 | description: '' 1004 | type: object 1005 | properties: 1006 | expiration: 1007 | type: string 1008 | description: The time the ban will expire 1009 | timeAdded: 1010 | type: string 1011 | description: The time the ban was issued 1012 | active: 1013 | type: boolean 1014 | description: If the ban is still active or was disabled. When a ban was issued by mistake, staff may deactivate it manually but it still shows as inactive in the ban history. Does not change if the ban expires naturally on the expiration date. 1015 | reason: 1016 | type: string 1017 | description: The reason for the ban 1018 | adminName: 1019 | type: string 1020 | description: Name of the admin that banned the user. Generally redacted. 1021 | adminID: 1022 | type: number 1023 | description: TruckersMP ID for the admin that banned the user. Generally redacted. 1024 | required: 1025 | - expiration 1026 | - timeAdded 1027 | - active 1028 | - reason 1029 | - adminName 1030 | - adminID 1031 | Server: 1032 | description: '' 1033 | type: object 1034 | properties: 1035 | id: 1036 | type: number 1037 | description: The ID given to the server 1038 | game: 1039 | type: string 1040 | description: What game the server is for (ETS2 or ATS) 1041 | ip: 1042 | type: string 1043 | description: The server ip address 1044 | port: 1045 | type: number 1046 | description: The port that the server runs on 1047 | name: 1048 | type: string 1049 | description: Name of the server 1050 | shortname: 1051 | type: string 1052 | description: Shortname for the server 1053 | idprefix: 1054 | type: string 1055 | description: Shown in-game in front of a player's ID 1056 | online: 1057 | type: boolean 1058 | description: If the server is online or not 1059 | players: 1060 | type: number 1061 | description: How many players are currently on the server 1062 | queue: 1063 | type: number 1064 | description: Amount of players waiting in the queue to join the server 1065 | maxplayers: 1066 | type: number 1067 | description: The max amount of players allowed on the server at once 1068 | mapid: 1069 | type: number 1070 | description: The map ID given to the server used by ETS2Map 1071 | displayorder: 1072 | type: number 1073 | description: Determines the order in which servers are displayed 1074 | speedlimiter: 1075 | type: number 1076 | description: If the speed limiter is enabled on the server (110 kmh for ETS2 and 80 mph for ATS) 1077 | collisions: 1078 | type: boolean 1079 | description: If server wide collisions is enabled 1080 | carsforplayers: 1081 | type: boolean 1082 | description: If cars are enabled for players 1083 | policecarsforplayers: 1084 | type: boolean 1085 | description: If police cars can be driven by players 1086 | afkenabled: 1087 | type: boolean 1088 | description: If AFK kick is enabled for players 1089 | event: 1090 | type: boolean 1091 | description: If the server is an event server 1092 | specialEvent: 1093 | type: boolean 1094 | description: 'Determine whether the server hosts special event files (e.g. map edits, special cargos or new paint jobs)' 1095 | promods: 1096 | type: boolean 1097 | description: Determine whether the server hosts ProMods 1098 | syncdelay: 1099 | type: number 1100 | description: Server tick rate 1101 | required: 1102 | - id 1103 | - game 1104 | - ip 1105 | - port 1106 | - name 1107 | - shortname 1108 | - online 1109 | - players 1110 | - queue 1111 | - maxplayers 1112 | - mapid 1113 | - displayorder 1114 | - speedlimiter 1115 | - collisions 1116 | - carsforplayers 1117 | - policecarsforplayers 1118 | - afkenabled 1119 | - event 1120 | - specialEvent 1121 | - promods 1122 | - syncdelay 1123 | EventIndex: 1124 | description: '' 1125 | type: object 1126 | properties: 1127 | id: 1128 | type: number 1129 | description: The event's ID 1130 | event_type: 1131 | type: object 1132 | description: The event's type 1133 | required: 1134 | - key 1135 | - name 1136 | properties: 1137 | key: 1138 | type: string 1139 | description: The event's type key 1140 | name: 1141 | type: string 1142 | description: The event's type name 1143 | name: 1144 | type: string 1145 | description: The event's name 1146 | slug: 1147 | type: string 1148 | description: The event's slug 1149 | game: 1150 | type: string 1151 | description: The event's game (`ATS` | `ETS2`) 1152 | server: 1153 | type: object 1154 | description: The event's server information 1155 | required: 1156 | - id 1157 | - name 1158 | properties: 1159 | id: 1160 | type: number 1161 | description: The event's server ID 1162 | name: 1163 | type: string 1164 | description: The event's server name 1165 | language: 1166 | type: string 1167 | description: The event's main language 1168 | departure: 1169 | type: object 1170 | required: 1171 | - location 1172 | - city 1173 | properties: 1174 | location: 1175 | type: string 1176 | description: The event's departure location 1177 | city: 1178 | type: string 1179 | description: The event's departure city 1180 | arrive: 1181 | type: object 1182 | required: 1183 | - location 1184 | - city 1185 | properties: 1186 | location: 1187 | type: string 1188 | description: The event's arrival location 1189 | city: 1190 | type: string 1191 | description: The event's arrival city 1192 | meetup_at: 1193 | type: string 1194 | description: The date and time the event meetup time is at (UTC) 1195 | start_at: 1196 | type: string 1197 | description: The date and time the event starts at (UTC) 1198 | banner: 1199 | type: string 1200 | description: URL to the banner used on the website 1201 | map: 1202 | type: string 1203 | description: URL to the map used on the website 1204 | description: 1205 | type: string 1206 | description: The event's description in Markdown 1207 | rule: 1208 | type: string 1209 | description: The event's rules in Markdown 1210 | voice_link: 1211 | type: string 1212 | description: URL to the event's voice location 1213 | external_link: 1214 | type: string 1215 | description: external URL specified for the event 1216 | featured: 1217 | type: string 1218 | description: If the event is featured 1219 | vtc: 1220 | type: object 1221 | description: If the Event is hosted by a VTC 1222 | properties: 1223 | id: 1224 | type: number 1225 | description: The VTC's ID 1226 | name: 1227 | type: string 1228 | description: The VTC's Name 1229 | required: 1230 | - id 1231 | - name 1232 | user: 1233 | type: object 1234 | required: 1235 | - id 1236 | - username 1237 | properties: 1238 | id: 1239 | type: number 1240 | description: The event's creator's ID 1241 | username: 1242 | type: string 1243 | description: The event's creator's username 1244 | attendances: 1245 | type: object 1246 | required: 1247 | - confirmed 1248 | - unsure 1249 | - vtcs 1250 | properties: 1251 | confirmed: 1252 | type: number 1253 | description: The number of confirmed attendees 1254 | unsure: 1255 | type: number 1256 | description: The number of unsure attendees 1257 | vtcs: 1258 | type: number 1259 | description: The number of confirmed VTCs 1260 | dlcs: 1261 | type: object 1262 | description: The event's required DLCs 1263 | required: 1264 | - dlc_id 1265 | properties: 1266 | dlc_id: 1267 | type: string 1268 | description: The DLCs id followed by the DLCs name 1269 | url: 1270 | type: string 1271 | description: URL to the event 1272 | created_at: 1273 | type: string 1274 | description: The date and time the event was created at (UTC) 1275 | updated_at: 1276 | type: string 1277 | description: The date and time the event was updated at (UTC) 1278 | required: 1279 | - id 1280 | - event_type 1281 | - name 1282 | - slug 1283 | - game 1284 | - server 1285 | - language 1286 | - departure 1287 | - arrive 1288 | - start_at 1289 | - banner 1290 | - description 1291 | - featured 1292 | - user 1293 | - attendances 1294 | - dlcs 1295 | - url 1296 | - created_at 1297 | - updated_at 1298 | Event: 1299 | description: '' 1300 | type: object 1301 | properties: 1302 | id: 1303 | type: number 1304 | description: The event's ID 1305 | event_type: 1306 | type: object 1307 | required: 1308 | - key 1309 | - name 1310 | description: The event's type 1311 | properties: 1312 | key: 1313 | type: string 1314 | description: The event's type key 1315 | name: 1316 | type: string 1317 | description: The event's type name 1318 | name: 1319 | type: string 1320 | description: The event's name 1321 | slug: 1322 | type: string 1323 | description: The event's slug 1324 | game: 1325 | type: string 1326 | description: The event's game (`ATS` | `ETS2`) 1327 | server: 1328 | type: object 1329 | required: 1330 | - id 1331 | - name 1332 | description: The event's server information 1333 | properties: 1334 | id: 1335 | type: number 1336 | description: The event's server ID 1337 | name: 1338 | type: string 1339 | description: The event's server name 1340 | language: 1341 | type: string 1342 | description: The event's main language 1343 | departure: 1344 | type: object 1345 | required: 1346 | - location 1347 | - city 1348 | properties: 1349 | location: 1350 | type: string 1351 | description: The event's departure location 1352 | city: 1353 | type: string 1354 | description: The event's departure city 1355 | arrive: 1356 | type: object 1357 | required: 1358 | - location 1359 | - city 1360 | properties: 1361 | location: 1362 | type: string 1363 | description: The event's arrival location 1364 | city: 1365 | type: string 1366 | description: The event's arrival city 1367 | meetup_at: 1368 | type: string 1369 | description: The date and time the event meetup time is at (UTC) 1370 | start_at: 1371 | type: string 1372 | description: The date and time the event starts at (UTC) 1373 | banner: 1374 | type: string 1375 | description: URL to the banner used on the website 1376 | map: 1377 | type: string 1378 | description: URL to the map used on the website 1379 | description: 1380 | type: string 1381 | description: The event's description in Markdown 1382 | rule: 1383 | type: string 1384 | description: The event's rules in Markdown 1385 | voice_link: 1386 | type: string 1387 | description: URL to the event's voice location 1388 | external_link: 1389 | type: string 1390 | description: external URL specified for the event 1391 | featured: 1392 | type: string 1393 | description: If the event is featured 1394 | vtc: 1395 | type: object 1396 | required: 1397 | - id 1398 | - name 1399 | description: If the Event is hosted by a VTC 1400 | properties: 1401 | id: 1402 | type: number 1403 | description: The VTC's ID 1404 | name: 1405 | type: string 1406 | description: The VTC's Name 1407 | user: 1408 | type: object 1409 | required: 1410 | - id 1411 | - username 1412 | properties: 1413 | id: 1414 | type: number 1415 | description: The event's creator's ID 1416 | username: 1417 | type: string 1418 | description: The event's creator's username 1419 | attendances: 1420 | type: object 1421 | required: 1422 | - confirmed 1423 | - unsure 1424 | - vtcs 1425 | - confirmed_users 1426 | - confirmed_vtcs 1427 | - unsure_users 1428 | properties: 1429 | confirmed: 1430 | type: number 1431 | description: The number of confirmed attendees 1432 | unsure: 1433 | type: number 1434 | description: The number of unsure attendees 1435 | vtcs: 1436 | type: number 1437 | description: The number of confirmed VTCs 1438 | confirmed_users: 1439 | type: array 1440 | description: The array of confirmed attendees 1441 | items: 1442 | $ref: '#/components/schemas/EventUser' 1443 | confirmed_vtcs: 1444 | type: array 1445 | description: The array of confirmed VTCs 1446 | items: 1447 | $ref: '#/components/schemas/EventVTC' 1448 | unsure_users: 1449 | type: array 1450 | description: The array of unsure attendees 1451 | items: 1452 | $ref: '#/components/schemas/EventUser' 1453 | dlcs: 1454 | type: object 1455 | required: 1456 | - dlc_id 1457 | description: The event's required DLCs 1458 | properties: 1459 | dlc_id: 1460 | type: string 1461 | description: The DLCs id followed by the DLCs name 1462 | url: 1463 | type: string 1464 | description: URL to the event 1465 | created_at: 1466 | type: string 1467 | description: The date and time the event was created at (UTC) 1468 | updated_at: 1469 | type: string 1470 | description: The date and time the event was updated at (UTC) 1471 | required: 1472 | - id 1473 | - event_type 1474 | - name 1475 | - slug 1476 | - game 1477 | - server 1478 | - language 1479 | - departure 1480 | - arrive 1481 | - start_at 1482 | - banner 1483 | - description 1484 | - featured 1485 | - user 1486 | - attendances 1487 | - dlcs 1488 | - url 1489 | - created_at 1490 | - updated_at 1491 | EventUser: 1492 | description: '' 1493 | type: object 1494 | properties: 1495 | id: 1496 | type: number 1497 | description: The event user's ID 1498 | username: 1499 | type: string 1500 | description: The event user's username 1501 | following: 1502 | type: boolean 1503 | description: Always false 1504 | default: false 1505 | created_at: 1506 | type: string 1507 | description: The date and time the user marked their attendance at (UTC) 1508 | updated_at: 1509 | type: string 1510 | description: The date and time the user updated their attendance at (UTC) 1511 | required: 1512 | - id 1513 | - username 1514 | - following 1515 | - created_at 1516 | - updated_at 1517 | EventVTC: 1518 | description: '' 1519 | type: object 1520 | properties: 1521 | id: 1522 | type: number 1523 | description: The VTC's ID 1524 | name: 1525 | type: string 1526 | description: The VTC's username 1527 | following: 1528 | type: boolean 1529 | description: Always false 1530 | default: false 1531 | created_at: 1532 | type: string 1533 | description: The date and time the VTC marked their attendance at (UTC) 1534 | updated_at: 1535 | type: string 1536 | description: The date and time the VTC updated their attendance at (UTC) 1537 | required: 1538 | - id 1539 | - name 1540 | - following 1541 | - created_at 1542 | - updated_at 1543 | VTCHistory: 1544 | description: '' 1545 | type: object 1546 | properties: 1547 | id: 1548 | type: number 1549 | description: ID of the VTC 1550 | name: 1551 | type: string 1552 | description: Name of the VTC 1553 | verified: 1554 | type: boolean 1555 | description: If the VTC is verified 1556 | joinDate: 1557 | type: string 1558 | description: Date and time the user joined the VTC (UTC) 1559 | leftDate: 1560 | type: string 1561 | description: Date and time the user left the VTC (UTC) 1562 | VTCIndex: 1563 | description: '' 1564 | type: object 1565 | properties: 1566 | id: 1567 | type: number 1568 | description: The ID of the VTC 1569 | name: 1570 | type: string 1571 | description: The ID of the VTC 1572 | owner_id: 1573 | type: number 1574 | description: The owner's ID of the VTC 1575 | owner_username: 1576 | type: string 1577 | description: The owner's username of the VTC 1578 | slogan: 1579 | type: string 1580 | description: The VTC's slogan 1581 | tag: 1582 | type: string 1583 | description: The VTC's tag 1584 | website: 1585 | type: string 1586 | description: URL to the VTC's website 1587 | socials: 1588 | type: object 1589 | properties: 1590 | twitter: 1591 | type: string 1592 | description: URL to the VTC's Twitter 1593 | facebook: 1594 | type: string 1595 | description: URL to the VTC's Facebook 1596 | twitch: 1597 | type: string 1598 | description: URL to the VTC's Twitch 1599 | discord: 1600 | type: string 1601 | description: URL to the VTC's Discord 1602 | youtube: 1603 | type: string 1604 | description: URL to the VTC's Youtube 1605 | games: 1606 | type: object 1607 | required: 1608 | - ats 1609 | - ets 1610 | properties: 1611 | ats: 1612 | type: boolean 1613 | description: If the VTC allows ATS 1614 | ets: 1615 | type: boolean 1616 | description: If the VTC allows ETS2 1617 | members_count: 1618 | type: number 1619 | description: The VTC's member count 1620 | recruitment: 1621 | type: string 1622 | description: If the VTC is accepting new members (`Close` | `Open`) 1623 | language: 1624 | type: string 1625 | description: The VTC's main language 1626 | verified: 1627 | type: boolean 1628 | description: If the VTC is verified 1629 | validated: 1630 | type: boolean 1631 | description: If the VTC is validated 1632 | created: 1633 | type: string 1634 | description: The date and time the VTC was created at (UTC) 1635 | required: 1636 | - id 1637 | - name 1638 | - owner_id 1639 | - owner_username 1640 | - slogan 1641 | - tag 1642 | - socials 1643 | - games 1644 | - members_count 1645 | - recruitment 1646 | - language 1647 | - verified 1648 | - validated 1649 | - created 1650 | VTC: 1651 | description: '' 1652 | type: object 1653 | properties: 1654 | id: 1655 | type: number 1656 | description: The ID of the VTC 1657 | name: 1658 | type: string 1659 | description: The name of the VTC 1660 | owner_id: 1661 | type: number 1662 | description: The owner's ID of the VTC 1663 | owner_username: 1664 | type: string 1665 | description: The owner's username of the VTC 1666 | slogan: 1667 | type: string 1668 | description: The VTC's slogan 1669 | tag: 1670 | type: string 1671 | description: The VTC's tag 1672 | logo: 1673 | type: string 1674 | description: URL to the logo used on the website 1675 | cover: 1676 | type: string 1677 | description: URL to the cover photo used on the website 1678 | information: 1679 | type: string 1680 | description: The VTC's information in Markdown 1681 | rules: 1682 | type: string 1683 | description: The VTC's rules in Markdown 1684 | requirements: 1685 | type: string 1686 | description: The VTC's requirements in Markdown 1687 | website: 1688 | type: string 1689 | description: URL to the VTC's website 1690 | socials: 1691 | type: object 1692 | properties: 1693 | twitter: 1694 | type: string 1695 | description: URL to the VTC's Twitter 1696 | facebook: 1697 | type: string 1698 | description: URL to the VTC's Facebook 1699 | twitch: 1700 | type: string 1701 | description: URL to the VTC's Twitch 1702 | discord: 1703 | type: string 1704 | description: URL to the VTC's Discord 1705 | youtube: 1706 | type: string 1707 | description: URL to the VTC's Youtube 1708 | games: 1709 | type: object 1710 | required: 1711 | - ats 1712 | - ets 1713 | properties: 1714 | ats: 1715 | type: boolean 1716 | description: If the VTC allows ATS 1717 | ets: 1718 | type: boolean 1719 | description: If the VTC allows ETS2 1720 | members_count: 1721 | type: number 1722 | description: The VTC's member count 1723 | recruitment: 1724 | type: string 1725 | description: If the VTC is accepting new members (`Close` | `Open`) 1726 | language: 1727 | type: string 1728 | description: The VTC's main language 1729 | verified: 1730 | type: boolean 1731 | description: If the VTC is verified 1732 | validated: 1733 | type: boolean 1734 | description: If the VTC is validated 1735 | created: 1736 | type: string 1737 | description: The date and time the VTC was created at (UTC) 1738 | required: 1739 | - id 1740 | - name 1741 | - owner_id 1742 | - owner_username 1743 | - slogan 1744 | - tag 1745 | - logo 1746 | - cover 1747 | - information 1748 | - rules 1749 | - requirements 1750 | - socials 1751 | - games 1752 | - members_count 1753 | - recruitment 1754 | - language 1755 | - verified 1756 | - validated 1757 | - created 1758 | VTCNewsIndex: 1759 | description: '' 1760 | type: object 1761 | properties: 1762 | id: 1763 | type: number 1764 | description: The ID of the article 1765 | title: 1766 | type: string 1767 | description: The title of the article 1768 | content_summary: 1769 | type: string 1770 | description: A summary of the article 1771 | author_id: 1772 | type: number 1773 | description: The user's ID who made the article 1774 | author: 1775 | type: string 1776 | description: The user's name who made the article 1777 | pinned: 1778 | type: boolean 1779 | description: If the article is pinned 1780 | updated_at: 1781 | type: string 1782 | description: The date and time the article was updated at (UTC) 1783 | published_at: 1784 | type: string 1785 | description: The date and time the article was published at (UTC) 1786 | required: 1787 | - id 1788 | - title 1789 | - content_summary 1790 | - author_id 1791 | - author 1792 | - pinned 1793 | - updated_at 1794 | - published_at 1795 | VTCNews: 1796 | description: '' 1797 | type: object 1798 | properties: 1799 | id: 1800 | type: number 1801 | description: The ID of the article 1802 | title: 1803 | type: string 1804 | description: The title of the article 1805 | content_summary: 1806 | type: string 1807 | description: A summary of the article 1808 | content: 1809 | type: string 1810 | description: The article's content in Markdown 1811 | author_id: 1812 | type: number 1813 | description: The user's ID who made the article 1814 | author: 1815 | type: string 1816 | description: The user's name who made the article 1817 | pinned: 1818 | type: boolean 1819 | description: If the article is pinned 1820 | updated_at: 1821 | type: string 1822 | description: The date and time the article was updated at (UTC) 1823 | published_at: 1824 | type: string 1825 | description: The date and time the article was published at (UTC) 1826 | required: 1827 | - id 1828 | - title 1829 | - content_summary 1830 | - content 1831 | - author_id 1832 | - author 1833 | - pinned 1834 | - updated_at 1835 | - published_at 1836 | VTCRole: 1837 | description: '' 1838 | type: object 1839 | properties: 1840 | id: 1841 | type: number 1842 | description: The ID of the role 1843 | name: 1844 | type: string 1845 | description: The name of the role 1846 | order: 1847 | type: number 1848 | description: The current position of the role 1849 | owner: 1850 | type: boolean 1851 | description: If the role has owner permissions 1852 | created_at: 1853 | type: string 1854 | description: The date and time the role was created (UTC) 1855 | updated_at: 1856 | type: string 1857 | description: The date and time the role was updated at (UTC) 1858 | required: 1859 | - id 1860 | - name 1861 | - order 1862 | - owner 1863 | - created_at 1864 | - updated_at 1865 | VTCMember: 1866 | description: '' 1867 | type: object 1868 | properties: 1869 | id: 1870 | type: number 1871 | description: The ID of the VTC Member 1872 | user_id: 1873 | type: number 1874 | description: The member's TruckersMP ID 1875 | username: 1876 | type: string 1877 | description: The member's username 1878 | steam_id: 1879 | type: number 1880 | description: The member's STEAM_ID 1881 | steamID64: 1882 | type: number 1883 | description: The member's STEAM_ID 1884 | steamID: 1885 | type: string 1886 | description: The member's STEAM_ID 1887 | role_id: 1888 | type: number 1889 | description: The member's role ID 1890 | role: 1891 | type: string 1892 | description: The member's role name 1893 | is_owner: 1894 | type: boolean 1895 | description: If the member has owner permissions 1896 | joinDate: 1897 | type: string 1898 | description: The date and time the member joined (UTC) 1899 | required: 1900 | - id 1901 | - user_id 1902 | - username 1903 | - steam_id 1904 | - role_id 1905 | - role 1906 | - joinDate 1907 | VTCPartnershipsIndex: 1908 | description: '' 1909 | type: object 1910 | properties: 1911 | id: 1912 | type: number 1913 | description: The ID of the VTC partnership. 1914 | status: 1915 | type: string 1916 | description: The status of the VTC partnership. The API will only return 'Accepted' requests. 1917 | created_at: 1918 | type: string 1919 | description: The timestamp the VTC partnership was first requested at by the 'sender'. 1920 | updated_at: 1921 | type: string 1922 | description: The timestamp the VTC partnership was last updated at. This will be due to the status changing. 1923 | sender: 1924 | type: array 1925 | items: 1926 | $ref: '#/components/schemas/VTC' 1927 | description: Returns a VTC object for the VTC that sent the request. 1928 | receiver: 1929 | type: array 1930 | items: 1931 | $ref: '#/components/schemas/VTC' 1932 | description: Returns a VTC object for the VTC that received the request. 1933 | pending_requests_count: 1934 | type: integer 1935 | description: Returns the number of pending VTC requests requiring action. 1936 | required: 1937 | - id 1938 | - status 1939 | - created_at 1940 | - updated_at 1941 | - sender 1942 | - receiver 1943 | responses: 1944 | PageNotFound: 1945 | description: Example response 1946 | content: 1947 | application/json: 1948 | schema: 1949 | description: '' 1950 | type: object 1951 | properties: 1952 | error: 1953 | type: boolean 1954 | default: true 1955 | descriptor: 1956 | type: string 1957 | example: Page not found 1958 | required: 1959 | - error 1960 | - descriptor 1961 | tags: 1962 | - name: Welcome! 1963 | description: "Welcome to the TruckersMP API Documentation! If you find something that is either missing or wrong, please don't hesitate to open an Issue or Pull Request with the change on our [GitHub](https://github.com/TruckersMP/API-Documentation)" 1964 | x-traitTag: true 1965 | - name: API SDK 1966 | x-traitTag: true 1967 | description: | 1968 | We provide two different SDK libraries as of now: 1969 | - [Feature-rich client (PHP)](https://github.com/TruckersMP/API-Client) 1970 | - [Type definitions (TypeScript)](https://github.com/TruckersMP/API-Types) 1971 | - name: Players 1972 | - name: Servers 1973 | - name: Events 1974 | - name: Virtual Trucking Companies 1975 | - name: Game Information 1976 | 1977 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |