OAuth scopes

EventThing returns data only for scopes that were requested, allowed and accepted.

profile

{
  "profile": {
    "id": "usr_7k2h9...",
    "name": "Bean",
    "avatar_url": "https://..."
  }
}

No email, Steam or TruckersMP data is included.

vtcs

{
  "vtcs": [
    {
      "id": "vtc_onlytangs",
      "name": "OnlyTangs Haulage",
      "avatar_url": "https://...",
      "can_act": true
    }
  ]
}

events

events extends each VTC object rather than creating a separate top-level event collection.

{
  "vtcs": [
    {
      "id": "vtc_onlytangs",
      "name": "OnlyTangs Haulage",
      "can_act": true,
      "events": [
        {
          "id": "evt_123",
          "name": "September Community Convoy",
          "starts_at": "2026-09-12T18:00:00Z"
        }
      ]
    }
  ]
}

If events is not granted, the property is omitted.

If events is granted but there are no applicable events for a VTC:

{
  "events": []
}

invites:create

Allows creation of a new EventThing invitation on behalf of the authorised user and VTC.

It does not grant:

  • read access to existing invitations
  • update or deletion of existing invitations
  • event management
  • discussion access
  • block management
  • member access
  • VTC settings access
  • other VTC API operations

OAuth user tokens are deliberately narrow.

invites:create is the only normal write capability available to an OAuth user token.

Effective access

The scopes requested by an application are not necessarily the scopes it ultimately receives.

Effective access is determined from:

Application-approved scopes

VTC-approved scopes

User consent

User's current EventThing permissions

The context returned after authorisation reflects the effective grant.

EventThing still re-validates the user's current authority when an invitation is actually created.