Profiles

Events

actor-service

A group with a time and a place (events.md): going or maybe, who is going, a file for a calendar, calling it off, its rules, and what is on for everybody.

What is on

GET/events/

Every event still to come or on now that the viewer may see, whoever hosts it, not called off, soonest first.

Who: Anyone, signed in or not

Parameters

  • fromstringin query
    On at some time between these, each an RFC 3339 instant: the web app works out "this weekend" in the viewer's own zone and sends it so. Either left out for no bound. At most 40 characters.
  • tostringin query
    At most 40 characters.
  • onlinebooleanin query
    Only the ones with an address to join online.
  • followingbooleanin query
    Only the ones somebody the viewer follows hosts, looks after or said going or maybe to. Nothing, to somebody not signed in.
  • startintegerin query
    How many to pass over. At least 0.
  • limitintegerin query
    The most to send: up to 100. At least 0. At most 100. 20 unless given.

Answers

  • 200
    OK
    object application/json
  • 400
    the request is not well formed, or a value in it is not one it may be

Request

curl "https://api.example.org/events/"

Answer · 200

{
  "data": [
    null
  ],
  "pagination": {
    "limit": 1,
    "offset": 1,
    "total": 1
  }
}

Make an event

POST/events/

Its own, or hosted by a group whoever makes it administers.

Who: Somebody signed in

Body application/json or application/x-www-form-urlencoded or multipart/form-data

  • accessstring
    Who can see it. Anybody, unless it says otherwise. One of public, registered, followers.
  • addressstring
    Where it is held, when it is somewhere: an address as it is typed, kept on the event and shown to whoever is going. Not a place on the map, which is public. Every part is optional. At most 255 characters.
  • bodystring
    What it is about. At most 8000 characters.
  • capacityinteger
    How many may be going. 0, or left out, for no limit. At least 0. At most 100000.
  • citystring
    At most 100 characters.
  • countrystring
    At most 100 characters.
  • ends_atstringrequired
    At most 40 characters.
  • host_group_idinteger
    A group hosting it, which whoever makes the event must administer. Left out for an event that is its maker's own.
  • namestringrequired
    What it is called. At most 64 characters.
  • online_urlstring (uri)
    Where to join, when it is online. At most 512 characters.
  • open_to_host_followersboolean
    Whether everybody who follows the group hosting it may see that it is on and answer it. Means nothing on an event with no host.
  • postal_codestring
    At most 20 characters.
  • show_mapboolean
    Whether to show that address on a map. Off unless asked for: finding it means sending it to a mapping service, and an address may be somebody's home.
  • starts_atstringrequired
    When, as RFC 3339 with an offset: 2026-11-05T19:00:00-05:00. At most 40 characters.
  • state_provincestring
    At most 100 characters.
  • timezone_namestringrequired
    The zone those times were chosen in, as IANA names it. At most 64 characters.
  • website_urlstring (uri)
    One link. At most 255 characters.

Answers

  • 201
    Created
    actor.EventNode application/json
  • 400
    invalid_timezone, invalid_time, ends_before_start, too_long or already_over; or not well formed, without a body
    Refusal application/json
  • 401
    no token, or one that has expired
  • 403
    host_not_allowed: the viewer does not administer the group
    Refusal application/json
  • 404
    host_not_allowed: there is no such group
    Refusal application/json

Request

curl -X POST "https://api.example.org/events/" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "access": "public",
    "address": "string",
    "body": "string",
    "capacity": 1,
    "city": "string",
    "country": "string",
    "ends_at": "2026-10-27T09:30:00Z",
    "host_group_id": 42,
    "name": "string",
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "postal_code": "string",
    "show_map": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state_province": "string",
    "timezone_name": "string",
    "website_url": "https://example.org/"
  }'

Answer · 201

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

One event

GET/events/{id}

To somebody it is not open to, but who may ask to follow it, what a stranger is shown of it.

Who: Anyone, signed in or not

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    it, or what a stranger is shown of it (LimitedActor)
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 403
    the viewer may not see it
  • 404
    there is no such event

Request

curl "https://api.example.org/events/<id>"

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Change an event

PATCH/events/{id}

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The event's id.

Body application/json or application/x-www-form-urlencoded or multipart/form-data

  • addressstring
    Where it is held, when it is somewhere: an address as it is typed, kept on the event and shown to whoever is going. Not a place on the map, which is public. Every part is optional. At most 255 characters.
  • bodystring
    What it is about. At most 8000 characters.
  • capacityinteger
    How many may be going. 0, or left out, for no limit. At least 0. At most 100000.
  • citystring
    At most 100 characters.
  • countrystring
    At most 100 characters.
  • ends_atstringrequired
    At most 40 characters.
  • namestringrequired
    What it is called. At most 64 characters.
  • online_urlstring (uri)
    Where to join, when it is online. At most 512 characters.
  • open_to_host_followersboolean
    Whether everybody who follows the group hosting it may see that it is on and answer it. Means nothing on an event with no host.
  • postal_codestring
    At most 20 characters.
  • show_mapboolean
    Whether to show that address on a map. Off unless asked for: finding it means sending it to a mapping service, and an address may be somebody's home.
  • starts_atstringrequired
    When, as RFC 3339 with an offset: 2026-11-05T19:00:00-05:00. At most 40 characters.
  • state_provincestring
    At most 100 characters.
  • timezone_namestringrequired
    The zone those times were chosen in, as IANA names it. At most 64 characters.
  • website_urlstring (uri)
    One link. At most 255 characters.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    invalid_timezone, invalid_time, ends_before_start or too_long; or not well formed, without a body
    Refusal application/json
  • 401
    no token, or one that has expired
  • 403
    the viewer may not change it
  • 404
    there is no such event

Request

curl -X PATCH "https://api.example.org/events/<id>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "string",
    "body": "string",
    "capacity": 1,
    "city": "string",
    "country": "string",
    "ends_at": "2026-10-27T09:30:00Z",
    "name": "string",
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "postal_code": "string",
    "show_map": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state_province": "string",
    "timezone_name": "string",
    "website_url": "https://example.org/"
  }'

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Who is going to an event, or may

GET/events/{id}/attendees/

Who: Anyone, signed in or not

Parameters

  • idintegerrequiredin path
    The event's id.
  • rsvpstringin query
    going or maybe. Going when left out. One of going, maybe.
  • startintegerin query
    How many to pass over. At least 0.
  • limitintegerin query
    The most to send: up to 100. At least 0. At most 100. 20 unless given.

Answers

  • 200
    OK
    object application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 403
    the viewer may not see who is going
  • 404
    there is no such event

Request

curl "https://api.example.org/events/<id>/attendees/"

Answer · 200

{
  "data": [
    {
      "access": "string",
      "alias": "string",
      "allow_download": false,
      "allow_follow_request": false,
      "archived_at": "2026-10-27T09:30:00Z",
      "author": {
        "alias": null,
        "avatar_urls": null,
        "id": null,
        "name": null,
        "type": null
      },
      "avatar_urls": {
        "key": null
      },
      "body": "string",
      "cover_urls": {
        "key": null
      },
      "created_at": "2026-10-27T09:30:00Z",
      "deleted_at": "2026-10-27T09:30:00Z",
      "enabled": false,
      "event": {
        "address": null,
        "cancelled_at": null,
        "capacity": null,
        "ends_at": null,
        "going_count": null,
        "has_address": null,
        "has_online_url": null,
        "host": null,
        "is_full": null,
        "maybe_count": null,
        "online_url": null,
        "open_to_host_followers": null,
        "starts_at": null,
        "state": null,
        "timezone_name": null,
        "viewer_rsvp": null
      },
      "featured_at": "2026-10-27T09:30:00Z",
      "follower_count": 1,
      "id": 42,
      "is_admined_by_viewer": false,
      "is_blocked_by_viewer": false,
      "is_following_viewer": false,
      "is_invited": false,
      "is_leading_viewer": false,
      "leader_count": 1,
      "name": "string",
      "origin_domain": "string",
      "quote_policy": "string",
      "show_reposts_on_profile": false,
      "type": "string",
      "uri": "https://example.org/",
      "verified": false,
      "website_url": "https://example.org/"
    }
  ],
  "pagination": {
    "limit": 1,
    "offset": 1,
    "total": 1
  }
}

Call an event off

POST/events/{id}/cancel

It is kept, saying so. Answers with it.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The event's id.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer does not look after it
  • 404
    there is no such event

Request

curl -X POST "https://api.example.org/events/<id>/cancel" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

An event for a calendar

GET/events/{id}/ics

As iCalendar (RFC 5545), text/calendar, to add to one's own calendar.

Who: Anyone, signed in or not

Parameters

  • idintegerrequiredin path
    The event's id.

Answers

  • 200
    the event, as text/calendar
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 403
    the viewer may not see it
  • 404
    there is no such event

Request

curl "https://api.example.org/events/<id>/ics"

Say going, or maybe

PUT/events/{id}/rsvp

Answers with the event.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The event's id.

Body application/json or application/x-www-form-urlencoded or multipart/form-data

  • rsvpstringrequired
    going or maybe. One of going, maybe.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not go to it
  • 404
    there is no such event
  • 409
    event_full: every place is taken; maybe is still open; or rules_not_agreed: it is a group or an event with rules the viewer has not agreed to; tick each and agree (POST /groups|events/:id/rules/agree), then ask again
    Refusal application/json
  • 410
    event_closed: it is over or called off
    Refusal application/json

Request

curl -X PUT "https://api.example.org/events/<id>/rsvp" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "rsvp": "going"
  }'

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Not going after all

DELETE/events/{id}/rsvp

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The event's id.

Answers

  • 204
    done
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such event

Request

curl -X DELETE "https://api.example.org/events/<id>/rsvp" \
  -H "Authorization: Bearer $TOKEN"

The rules of an event

GET/events/{id}/rules

What somebody agrees to, each ticked, before following it or answering it: at most ten, in order, with the version they are at and the version the viewer last agreed to. For whoever may see it, and for whoever it would let ask to follow.

Who: Anyone, signed in or not

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    OK
    actor.Rules application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 403
    the viewer may not see it
  • 404
    there is no such event

Request

curl "https://api.example.org/events/<id>/rules"

Answer · 200

{
  "agreed_version": 1,
  "items": [
    {
      "body": "string",
      "title": "string"
    }
  ],
  "updated_at": "2026-10-27T09:30:00Z",
  "version": 1
}

Set the rules of an event

PUT/events/{id}/rules

The rules as they are to be from now on, in order, at most ten; an empty list takes them away. Every change raises the version, so that whoever agreed before is asked again. For whoever may change it.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path

Body application/json

Answers

  • 200
    OK
    actor.Rules application/json
  • 400
    rules_invalid: more than ten, or one too long
    Refusal application/json
  • 401
    no token, or one that has expired
  • 403
    the viewer may not change it
  • 404
    there is no such event

Request

curl -X PUT "https://api.example.org/events/<id>/rules" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "body": "string",
        "title": "string"
      }
    ]
  }'

Answer · 200

{
  "agreed_version": 1,
  "items": [
    {
      "body": "string",
      "title": "string"
    }
  ],
  "updated_at": "2026-10-27T09:30:00Z",
  "version": 1
}

Agree to the rules of an event

POST/events/{id}/rules/agree

The viewer agreeing, each rule ticked, to the version they were shown.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path

Body application/json

  • versionintegerrequired

Answers

  • 204
    No Content
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 404
    there is no such event
  • 409
    rules_not_current: the rules changed since; read them again
    Refusal application/json

Request

curl -X POST "https://api.example.org/events/<id>/rules/agree" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 1
  }'

The events the installation features

GET/events/featured

What onboarding offers a new member, most recently featured first. Each a full profile, or, for one the viewer may only ask to follow, what a stranger is shown of it (restricted).

Who: Anyone, signed in or not

Parameters

  • startintegerin query
    How many to pass over. At least 0.
  • limitintegerin query
    The most to send. At least 0. 20 unless given.
  • qstringin query
    Words the name, the handle or the description holds. At most 100 characters.
  • orderingstringin query
    What they are ordered by. At most 15 characters. One of created_at, updated_at, enabled. updated_at unless given.
  • dirstringin query
    Which way the order runs. At most 4 characters. One of asc, desc. desc unless given.
  • disabledbooleanin query
    Disabled ones as well, for whoever may see them.
  • featuredbooleanin query
    Only the actors the installation features — what onboarding offers a new member to follow. Ordered most recently featured first unless the caller asks for an ordering; see the browse handlers.

Answers

  • 200
    OK
    object application/json
  • 400
    the request is not well formed, or a value in it is not one it may be

Request

curl "https://api.example.org/events/featured"

Answer · 200

{
  "data": [
    null
  ],
  "pagination": {
    "limit": 1,
    "offset": 1,
    "total": 1
  }
}

The viewer's events

GET/events/mine

The ones they said going or maybe to, look after, or were invited to.

Who: Somebody signed in

Parameters

  • filterstringin query
    upcoming, past, hosting or invited. Upcoming when left out. One of upcoming, past, hosting, invited.
  • startintegerin query
    How many to pass over. At least 0.
  • limitintegerin query
    The most to send: up to 100. At least 0. At most 100. 20 unless given.

Answers

  • 200
    OK
    object application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired

Request

curl "https://api.example.org/events/mine" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "data": [
    null
  ],
  "pagination": {
    "limit": 1,
    "offset": 1,
    "total": 1
  }
}

As every profile

The same on every kind, at this kind’s address. What each does is under Profiles.

Delete an event

DELETE/events/{id}

It is out of sight at once and destroyed after thirty days, unless it is restored before then.

Who: Somebody signed in, who has just proved who they are again

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    it will be deleted
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    step_up_required: the viewer must prove who they are again first; or the viewer may not, without a body
    Refusal application/json
  • 404
    there is no such profile

Request

curl -X DELETE "https://api.example.org/events/<id>" \
  -H "Authorization: Bearer $TOKEN"

Change who may see it

PATCH/events/{id}/access

And whether people it is not open to may ask to follow it.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Body application/x-www-form-urlencoded or multipart/form-data

  • accessstringrequired
    Who may see it: public, registered, followers or admins. One of public, registered, followers, admins. public unless given.
  • allow_follow_requestboolean
    Whether people it is not open to may ask to follow it.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not change it
  • 404
    there is no such profile

Request

curl -X PATCH "https://api.example.org/events/<id>/access" \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "access=public" \
  --data-urlencode "allow_follow_request=false"

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

An event's admins

GET/events/{id}/admins/

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The group's or the event's id.
  • startintegerin query
    How many to pass over. At least 0.
  • limitintegerin query
    The most to send. At least 0. 20 unless given.
  • dirstringin query
    Which way the order runs. At most 4 characters. One of asc, desc. asc unless given.

Answers

  • 200
    OK
    object application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not see them
  • 404
    there is no such event

Request

curl "https://api.example.org/events/<id>/admins/" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "data": [
    {
      "access": "string",
      "alias": "string",
      "allow_download": false,
      "allow_follow_request": false,
      "archived_at": "2026-10-27T09:30:00Z",
      "author": {
        "alias": null,
        "avatar_urls": null,
        "id": null,
        "name": null,
        "type": null
      },
      "avatar_urls": {
        "key": null
      },
      "body": "string",
      "cover_urls": {
        "key": null
      },
      "created_at": "2026-10-27T09:30:00Z",
      "deleted_at": "2026-10-27T09:30:00Z",
      "enabled": false,
      "event": {
        "address": null,
        "cancelled_at": null,
        "capacity": null,
        "ends_at": null,
        "going_count": null,
        "has_address": null,
        "has_online_url": null,
        "host": null,
        "is_full": null,
        "maybe_count": null,
        "online_url": null,
        "open_to_host_followers": null,
        "starts_at": null,
        "state": null,
        "timezone_name": null,
        "viewer_rsvp": null
      },
      "featured_at": "2026-10-27T09:30:00Z",
      "follower_count": 1,
      "id": 42,
      "is_admined_by_viewer": false,
      "is_blocked_by_viewer": false,
      "is_following_viewer": false,
      "is_invited": false,
      "is_leading_viewer": false,
      "leader_count": 1,
      "name": "string",
      "origin_domain": "string",
      "quote_policy": "string",
      "show_reposts_on_profile": false,
      "type": "string",
      "uri": "https://example.org/",
      "verified": false,
      "website_url": "https://example.org/"
    }
  ]
}

Make somebody an admin of an event

POST/events/{id}/admins/

By one of its admins. Answers with them.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The group's or the event's id.

Body application/x-www-form-urlencoded or multipart/form-data

  • admin_idintegerrequired
    The person to make an administrator.

Answers

  • 201
    Created
    ActorNodeItem application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such event or person

Request

curl -X POST "https://api.example.org/events/<id>/admins/" \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "admin_id=42"

Answer · 201

{
  "access": "string",
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "quote_policy": "string",
  "show_reposts_on_profile": false,
  "type": "string",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Remove an admin of an event

DELETE/events/{id}/admins/{admin_id}

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The group's or the event's id.
  • admin_idintegerrequiredin path
    The administrator to remove.

Answers

  • 204
    removed
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such event or admin

Request

curl -X DELETE "https://api.example.org/events/<id>/admins/<admin_id>" \
  -H "Authorization: Bearer $TOKEN"

Archive an event

POST/events/{id}/archive

For good, and nothing is destroyed (account-lifecycle.md).

Who: Somebody signed in, who has just proved who they are again

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    archived
  • 204
    archived already, or being deleted
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    step_up_required: the viewer must prove who they are again first; or the viewer may not, without a body
    Refusal application/json
  • 404
    there is no such profile

Request

curl -X POST "https://api.example.org/events/<id>/archive" \
  -H "Authorization: Bearer $TOKEN"

What deleting an event would take with it

GET/events/{id}/deletion-counts

For the Danger zone, for whoever may delete it.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    OK
    actor.GroupDeletionCounts application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not delete it
  • 404
    there is no such profile

Request

curl "https://api.example.org/events/<id>/deletion-counts" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "admins": 1,
  "followers": 1,
  "member_since": "string",
  "posts": 1,
  "replies": 1
}

Turn a profile on or off

PATCH/events/{id}/enabled

Reversible, site administrators only. Off, it is out of sight and may not act; nothing is deleted.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Body application/json

  • enabledbooleanrequired
    Whether it is shown and may act. Off, it is out of sight until it is turned on again; nothing is deleted.

Answers

  • 200
    done
  • 204
    it was so already
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such profile

Request

curl -X PATCH "https://api.example.org/events/<id>/enabled" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": false
  }'

Feature a profile, or stop

PATCH/events/{id}/featured

What onboarding offers new members to follow. Super administrators only.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Body application/json

  • featuredbooleanrequired
    Whether onboarding offers it to follow.

Answers

  • 200
    done
  • 204
    it was so already
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such profile
  • 409
    not_featurable: it is disabled, archived or deleted
    Refusal application/json

Request

curl -X PATCH "https://api.example.org/events/<id>/featured" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "featured": false
  }'

Change what may be posted on it

PATCH/events/{id}/features

Each kind of post, on or off, and who may add it (permissions.md).

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Body application/json

  • featureslist of ActorFeatureRequestrequired
    Each feature as it is to be. An empty list goes back to the installation's defaults.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not change it
  • 404
    there is no such profile

Request

curl -X PATCH "https://api.example.org/events/<id>/features" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "features": [
      {
        "add_permissions": [
          null
        ],
        "composers": [
          "string"
        ],
        "enabled": false,
        "node_types": [
          "string"
        ],
        "optional": false,
        "ordering": 1,
        "service": "string"
      }
    ]
  }'

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Destroy an event for good

DELETE/events/{id}/purge

Everything of it, at once and with no thirty days. Super administrators only, never on their own profile. Queued, and done by the sweeper.

Who: A super administrator, who has just proved who they are again

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    purged or queued already
    PurgeQueued application/json
  • 202
    queued
    PurgeQueued application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    step_up_required: the viewer must prove who they are again first; or the viewer may not, without a body
    Refusal application/json
  • 409
    it cannot be purged; nothing was queued
    PurgeRefused application/json

Request

curl -X DELETE "https://api.example.org/events/<id>/purge" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "batch_id": "string",
  "queued": 1,
  "skipped": 1
}

Restore a deleted event

POST/events/{id}/restore

Within the thirty days. Answers with it.

Who: Somebody signed in

Parameters

  • idintegerrequiredin path
    The profile's id.

Answers

  • 200
    OK
    actor.EventNode application/json
  • 400
    the request is not well formed, or a value in it is not one it may be
  • 401
    no token, or one that has expired
  • 403
    the viewer may not
  • 404
    there is no such profile to restore

Request

curl -X POST "https://api.example.org/events/<id>/restore" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "access": "string",
  "administrators": [
    {
      "alias": "string",
      "avatar_urls": {
        "key": null
      },
      "id": 42,
      "name": "string",
      "type": "string"
    }
  ],
  "alias": "string",
  "allow_download": false,
  "allow_follow_request": false,
  "archived_at": "2026-10-27T09:30:00Z",
  "author": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "authorized": {
    "add_follower": false,
    "administration": false,
    "audiences": [
      "string"
    ],
    "block_from_owner": false,
    "comment": false,
    "composers": [
      "string"
    ],
    "delete": false,
    "download": false,
    "edit": false,
    "hide": false,
    "invite": false,
    "like": false,
    "pin": false,
    "quote": false
  },
  "avatar_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "body": "string",
  "cover_urls": {
    "key": {
      "size": null,
      "url": "https://example.org/"
    }
  },
  "created_at": "2026-10-27T09:30:00Z",
  "deleted_at": "2026-10-27T09:30:00Z",
  "editor": {
    "alias": "string",
    "avatar_urls": {
      "key": null
    },
    "id": 42,
    "name": "string",
    "type": "string"
  },
  "enabled": false,
  "event": {
    "address": {
      "city": null,
      "country": null,
      "latitude": null,
      "longitude": null,
      "postal_code": null,
      "state_province": null,
      "street": null
    },
    "cancelled_at": "2026-10-27T09:30:00Z",
    "capacity": 1,
    "ends_at": "2026-10-27T09:30:00Z",
    "going_count": 1,
    "has_address": false,
    "has_online_url": false,
    "host": {
      "alias": null,
      "avatar_urls": null,
      "id": null,
      "name": null,
      "type": null,
      "verified": null
    },
    "is_full": false,
    "maybe_count": 1,
    "online_url": "https://example.org/",
    "open_to_host_followers": false,
    "starts_at": "2026-10-27T09:30:00Z",
    "state": "string",
    "timezone_name": "string",
    "viewer_rsvp": "string"
  },
  "featured_at": "2026-10-27T09:30:00Z",
  "features": [
    {
      "add_permissions": [
        null
      ],
      "composers": [
        null
      ],
      "enabled": false,
      "node_types": [
        null
      ],
      "optional": false,
      "ordering": 1,
      "service": "string"
    }
  ],
  "follower_count": 1,
  "id": 42,
  "is_admined_by_viewer": false,
  "is_blocked_by_viewer": false,
  "is_following_viewer": false,
  "is_invited": false,
  "is_leading_viewer": false,
  "leader_count": 1,
  "name": "string",
  "origin_domain": "string",
  "permissions": {
    "key": "string"
  },
  "show_reposts_on_profile": false,
  "type": "string",
  "updated_at": "2026-10-27T09:30:00Z",
  "uri": "https://example.org/",
  "verified": false,
  "website_url": "https://example.org/"
}

Written by Claude, reviewed by Rastin Mehr · About this