ocelot.social GraphQL API

Reference documentation for the ocelot.social GraphQL API, generated from the backend schema. The endpoint and authentication depend on your deployment; the URL below is the local development default (configurable via GRAPHQL_URI).

API Endpoints
http://localhost:4000/

Authentication

Most operations require authentication. Send a token in the Authorization header as a Bearer token on every request:

Authorization: Bearer <token>

Two kinds of token are accepted, distinguished by prefix:

  • JWT — obtained from the login mutation; used by the web app.
  • Personal API key (prefix oak_) — for programmatic access, created with createApiKey when the apiKeysEnabled policy is on. The secret is shown only once, at creation.

Unauthenticated requests are allowed for public operations (e.g. Post, searchPosts, Category); everything else resolves the current user from the token.

Permissions & roles

Beyond being logged in, many operations require a specific permission. Each operation's description states what it needs — e.g. "Requires the content.moderate permission" or "Restricted to the author".

Permissions are granted through roles (dynamic, admin-managed). A caller's effective permissions can be read with myPermissions. Some rights are additionally gated by a runtime feature policy (e.g. apiKey.create only applies while apiKeysEnabled is on). Moderator- and owner-grade actions also respect an "act-on" hierarchy that prevents acting on higher-ranked users.

Errors

Responses follow the GraphQL convention: data carries the result and an errors array carries any problems, each with a message and a path. Authorization failures surface as a top-level error with the message Not Authorized!. A partial data payload alongside errors is normal when only some fields fail.

Real-time subscriptions

Live updates (new notifications, chat messages, room and policy changes) are delivered via GraphQL subscriptions over WebSocket using the graphql-ws protocol, on the same endpoint. Pass the same Authorization header in the connection parameters.

subscription {
  notificationAdded {
    id
    reason
    read
  }
}

File uploads

File and image uploads use the GraphQL multipart request spec via the Upload scalar. Avatars and post images take an ImageInput (upload field), chat attachments take a FileInput. Non-multipart clients may instead reference already-hosted assets by URL.

Federation

The schema carries ActivityPub identifiers (actorId, activityId, objectId, publicKey) on users, posts and comments for federation with other instances. Most clients can ignore these fields.

Examples

A few representative operations. Send variables alongside each query and the Authorization header (except for login).

Log in and obtain a JWT

mutation (: String!, : String!) {
  login(email: , password: )
}

The current user

query {
  currentUser {
    id
    slug
    name
    avatar { url }
  }
}

Create a post

mutation (: String!, : String!, : [ID]) {
  CreatePost(title: , content: , categoryIds: ) {
    id
    slug
  }
}

A page of the feed

query (: Int, : Int, : [_PostOrdering]) {
  Post(first: , offset: , orderBy: ) {
    id
    title
    createdAt
    author { id name }
    commentsCount
    shoutedCount
  }
}

Send a chat message

mutation (: ID, : String) {
  CreateMessage(roomId: , content: ) {
    id
    content
    createdAt
  }
}

Queries

Badge

Description

List all available badges. Public.

Response

Returns [Badge]

Example

Query
query Badge {
  Badge {
    createdAt
    description
    icon
    id
    isDefault
    rewarded {
      ...UserFragment
    }
    type
    verifies {
      ...UserFragment
    }
  }
}
Response
{
  "data": {
    "Badge": [
      {
        "createdAt": "abc123",
        "description": "abc123",
        "icon": "xyz789",
        "id": 4,
        "isDefault": true,
        "rewarded": [User],
        "type": "trophy",
        "verifies": [User]
      }
    ]
  }
}

Category

Description

List categories. Public.

Response

Returns [Category]

Arguments
Name Description
createdAt - String
filter - _CategoryFilter
first - Int
icon - String
id - ID
name - String
offset - Int
orderBy - [_CategoryOrdering]
slug - String
updatedAt - String

Example

Query
query Category(
  $createdAt: String,
  $filter: _CategoryFilter,
  $first: Int,
  $icon: String,
  $id: ID,
  $name: String,
  $offset: Int,
  $orderBy: [_CategoryOrdering],
  $slug: String,
  $updatedAt: String
) {
  Category(
    createdAt: $createdAt,
    filter: $filter,
    first: $first,
    icon: $icon,
    id: $id,
    name: $name,
    offset: $offset,
    orderBy: $orderBy,
    slug: $slug,
    updatedAt: $updatedAt
  ) {
    _id
    createdAt
    icon
    id
    name
    postCount
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{
  "createdAt": "xyz789",
  "filter": _CategoryFilter,
  "first": 123,
  "icon": "xyz789",
  "id": 4,
  "name": "xyz789",
  "offset": 987,
  "orderBy": ["createdAt_asc"],
  "slug": "abc123",
  "updatedAt": "abc123"
}
Response
{
  "data": {
    "Category": [
      {
        "_id": "xyz789",
        "createdAt": "abc123",
        "icon": "xyz789",
        "id": "4",
        "name": "xyz789",
        "postCount": 987,
        "posts": [Post],
        "slug": "abc123",
        "updatedAt": "xyz789"
      }
    ]
  }
}

ChatMessageStatusPayload

Response

Returns [ChatMessageStatusPayload]

Arguments
Name Description
_id - String
filter - _ChatMessageStatusPayloadFilter
first - Int
messageIds - String
offset - Int
orderBy - [_ChatMessageStatusPayloadOrdering]
roomId - ID
status - String

Example

Query
query ChatMessageStatusPayload(
  $_id: String,
  $filter: _ChatMessageStatusPayloadFilter,
  $first: Int,
  $messageIds: String,
  $offset: Int,
  $orderBy: [_ChatMessageStatusPayloadOrdering],
  $roomId: ID,
  $status: String
) {
  ChatMessageStatusPayload(
    _id: $_id,
    filter: $filter,
    first: $first,
    messageIds: $messageIds,
    offset: $offset,
    orderBy: $orderBy,
    roomId: $roomId,
    status: $status
  ) {
    _id
    messageIds
    roomId
    status
  }
}
Variables
{
  "_id": "abc123",
  "filter": _ChatMessageStatusPayloadFilter,
  "first": 987,
  "messageIds": "abc123",
  "offset": 123,
  "orderBy": ["_id_asc"],
  "roomId": "4",
  "status": "xyz789"
}
Response
{
  "data": {
    "ChatMessageStatusPayload": [
      {
        "_id": "xyz789",
        "messageIds": ["xyz789"],
        "roomId": "4",
        "status": "xyz789"
      }
    ]
  }
}

Comment

Description

List comments. Public.

Response

Returns [Comment]

Arguments
Name Description
content - String
createdAt - String
filter - _CommentFilter
first - Int
id - ID
offset - Int
orderBy - [_CommentOrdering]
updatedAt - String

Example

Query
query Comment(
  $content: String,
  $createdAt: String,
  $filter: _CommentFilter,
  $first: Int,
  $id: ID,
  $offset: Int,
  $orderBy: [_CommentOrdering],
  $updatedAt: String
) {
  Comment(
    content: $content,
    createdAt: $createdAt,
    filter: $filter,
    first: $first,
    id: $id,
    offset: $offset,
    orderBy: $orderBy,
    updatedAt: $updatedAt
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    content
    createdAt
    deleted
    disabled
    id
    isPostObservedByMe
    post {
      ...PostFragment
    }
    postObservingUsersCount
    shoutedByCurrentUser
    shoutedCount
    updatedAt
  }
}
Variables
{
  "content": "abc123",
  "createdAt": "abc123",
  "filter": _CommentFilter,
  "first": 987,
  "id": "4",
  "offset": 123,
  "orderBy": ["content_asc"],
  "updatedAt": "xyz789"
}
Response
{
  "data": {
    "Comment": [
      {
        "_id": "xyz789",
        "activityId": "abc123",
        "author": User,
        "content": "abc123",
        "createdAt": "abc123",
        "deleted": true,
        "disabled": true,
        "id": 4,
        "isPostObservedByMe": true,
        "post": Post,
        "postObservingUsersCount": 123,
        "shoutedByCurrentUser": false,
        "shoutedCount": 123,
        "updatedAt": "abc123"
      }
    ]
  }
}

Donations

Description

The current donation campaign state. Requires authentication.

Response

Returns a Donations

Arguments
Name Description
filter - _DonationsFilter

Example

Query
query Donations($filter: _DonationsFilter) {
  Donations(filter: $filter) {
    _id
    createdAt
    goal
    id
    progress
    showDonations
    updatedAt
  }
}
Variables
{"filter": _DonationsFilter}
Response
{
  "data": {
    "Donations": {
      "_id": "abc123",
      "createdAt": "xyz789",
      "goal": 123,
      "id": 4,
      "progress": 123,
      "showDonations": false,
      "updatedAt": "abc123"
    }
  }
}

EffectivePermission

Response

Returns [EffectivePermission]

Arguments
Name Description
_id - String
filter - _EffectivePermissionFilter
first - Int
group - String
key - String
offset - Int
orderBy - [_EffectivePermissionOrdering]

Example

Query
query EffectivePermission(
  $_id: String,
  $filter: _EffectivePermissionFilter,
  $first: Int,
  $group: String,
  $key: String,
  $offset: Int,
  $orderBy: [_EffectivePermissionOrdering]
) {
  EffectivePermission(
    _id: $_id,
    filter: $filter,
    first: $first,
    group: $group,
    key: $key,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    group
    key
  }
}
Variables
{
  "_id": "xyz789",
  "filter": _EffectivePermissionFilter,
  "first": 123,
  "group": "abc123",
  "key": "abc123",
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "EffectivePermission": [
      {
        "_id": "abc123",
        "group": "abc123",
        "key": "abc123"
      }
    ]
  }
}

File

Response

Returns [File]

Arguments
Name Description
_id - String
duration - Float
extension - String
filter - _FileFilter
first - Int
name - String
offset - Int
orderBy - [_FileOrdering]
type - String
url - ID

Example

Query
query File(
  $_id: String,
  $duration: Float,
  $extension: String,
  $filter: _FileFilter,
  $first: Int,
  $name: String,
  $offset: Int,
  $orderBy: [_FileOrdering],
  $type: String,
  $url: ID
) {
  File(
    _id: $_id,
    duration: $duration,
    extension: $extension,
    filter: $filter,
    first: $first,
    name: $name,
    offset: $offset,
    orderBy: $orderBy,
    type: $type,
    url: $url
  ) {
    _id
    duration
    extension
    name
    type
    url
  }
}
Variables
{
  "_id": "xyz789",
  "duration": 123.45,
  "extension": "xyz789",
  "filter": _FileFilter,
  "first": 123,
  "name": "abc123",
  "offset": 987,
  "orderBy": ["_id_asc"],
  "type": "abc123",
  "url": 4
}
Response
{
  "data": {
    "File": [
      {
        "_id": "xyz789",
        "duration": 123.45,
        "extension": "xyz789",
        "name": "abc123",
        "type": "abc123",
        "url": 4
      }
    ]
  }
}

FiledReport

Response

Returns [FiledReport]

Arguments
Name Description
_id - String
createdAt - String
filter - _FiledReportFilter
first - Int
offset - Int
orderBy - [_FiledReportOrdering]
reasonCategory - ReasonCategory
reasonDescription - String
reportId - ID

Example

Query
query FiledReport(
  $_id: String,
  $createdAt: String,
  $filter: _FiledReportFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_FiledReportOrdering],
  $reasonCategory: ReasonCategory,
  $reasonDescription: String,
  $reportId: ID
) {
  FiledReport(
    _id: $_id,
    createdAt: $createdAt,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    reasonCategory: $reasonCategory,
    reasonDescription: $reasonDescription,
    reportId: $reportId
  ) {
    _id
    createdAt
    reasonCategory
    reasonDescription
    reportId
    resource {
      ... on Comment {
        ...CommentFragment
      }
      ... on Post {
        ...PostFragment
      }
      ... on User {
        ...UserFragment
      }
    }
  }
}
Variables
{
  "_id": "abc123",
  "createdAt": "xyz789",
  "filter": _FiledReportFilter,
  "first": 123,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "reasonCategory": "advert_products_services_commercial",
  "reasonDescription": "xyz789",
  "reportId": "4"
}
Response
{
  "data": {
    "FiledReport": [
      {
        "_id": "xyz789",
        "createdAt": "abc123",
        "reasonCategory": "advert_products_services_commercial",
        "reasonDescription": "xyz789",
        "reportId": 4,
        "resource": Comment
      }
    ]
  }
}

Group

Description

List groups. Requires authentication. Filter to the current user's memberships with isMember, or to located groups with hasLocation.

Response

Returns [Group]

Arguments
Name Description
first - Int
hasLocation - Boolean If true, only groups that have a location.
id - ID
isMember - Boolean Null/undefined returns all groups; true only the user's groups; false only groups they are not in.
offset - Int
slug - String

Example

Query
query Group(
  $first: Int,
  $hasLocation: Boolean,
  $id: ID,
  $isMember: Boolean,
  $offset: Int,
  $slug: String
) {
  Group(
    first: $first,
    hasLocation: $hasLocation,
    id: $id,
    isMember: $isMember,
    offset: $offset,
    slug: $slug
  ) {
    about
    actionRadius
    avatar {
      ...ImageFragment
    }
    categories {
      ...CategoryFragment
    }
    createdAt
    currentlyPinnedPostsCount
    deleted
    description
    descriptionExcerpt
    disabled
    groupType
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    isMutedByMe
    location {
      ...LocationFragment
    }
    locationName
    membersCount
    myRole
    name
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{
  "first": 987,
  "hasLocation": false,
  "id": "4",
  "isMember": true,
  "offset": 123,
  "slug": "xyz789"
}
Response
{
  "data": {
    "Group": [
      {
        "about": "abc123",
        "actionRadius": "continental",
        "avatar": Image,
        "categories": [Category],
        "createdAt": "xyz789",
        "currentlyPinnedPostsCount": 987,
        "deleted": false,
        "description": "abc123",
        "descriptionExcerpt": "abc123",
        "disabled": true,
        "groupType": "closed",
        "id": 4,
        "inviteCodes": [InviteCode],
        "isMutedByMe": false,
        "location": Location,
        "locationName": "abc123",
        "membersCount": 123,
        "myRole": "admin",
        "name": "abc123",
        "posts": [Post],
        "slug": "xyz789",
        "updatedAt": "xyz789"
      }
    ]
  }
}

GroupCount

Description

Count groups, optionally restricted to the current user's memberships. Requires authentication.

Response

Returns an Int

Arguments
Name Description
isMember - Boolean

Example

Query
query GroupCount($isMember: Boolean) {
  GroupCount(isMember: $isMember)
}
Variables
{"isMember": false}
Response
{"data": {"GroupCount": 123}}

GroupMember

Response

Returns [GroupMember]

Arguments
Name Description
_id - String
filter - _GroupMemberFilter
first - Int
offset - Int
orderBy - [_GroupMemberOrdering]

Example

Query
query GroupMember(
  $_id: String,
  $filter: _GroupMemberFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_GroupMemberOrdering]
) {
  GroupMember(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _GroupMemberFilter,
  "first": 123,
  "offset": 123,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "GroupMember": [
      {
        "_id": "xyz789",
        "membership": MEMBER_OF,
        "user": User
      }
    ]
  }
}

GroupMembers

Description

List a group's members. Visibility depends on the viewer's relation to the group. Set includePending to also return unapproved join requests (for admins/owners).

Response

Returns [GroupMember]

Arguments
Name Description
filter - _GroupMemberFilter
first - Int
id - ID!
includePending - Boolean
offset - Int
orderBy - [_GroupMemberOrdering]

Example

Query
query GroupMembers(
  $filter: _GroupMemberFilter,
  $first: Int,
  $id: ID!,
  $includePending: Boolean,
  $offset: Int,
  $orderBy: [_GroupMemberOrdering]
) {
  GroupMembers(
    filter: $filter,
    first: $first,
    id: $id,
    includePending: $includePending,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "filter": _GroupMemberFilter,
  "first": 987,
  "id": "4",
  "includePending": false,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "GroupMembers": [
      {
        "_id": "abc123",
        "membership": MEMBER_OF,
        "user": User
      }
    ]
  }
}

Image

Response

Returns [Image]

Arguments
Name Description
_id - String
alt - String
aspectRatio - Float
filter - _ImageFilter
first - Int
offset - Int
orderBy - [_ImageOrdering]
sensitive - Boolean
transform - String
type - String
url - ID

Example

Query
query Image(
  $_id: String,
  $alt: String,
  $aspectRatio: Float,
  $filter: _ImageFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_ImageOrdering],
  $sensitive: Boolean,
  $transform: String,
  $type: String,
  $url: ID
) {
  Image(
    _id: $_id,
    alt: $alt,
    aspectRatio: $aspectRatio,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    sensitive: $sensitive,
    transform: $transform,
    type: $type,
    url: $url
  ) {
    _id
    alt
    aspectRatio
    sensitive
    transform
    type
    url
  }
}
Variables
{
  "_id": "xyz789",
  "alt": "xyz789",
  "aspectRatio": 987.65,
  "filter": _ImageFilter,
  "first": 987,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "sensitive": false,
  "transform": "xyz789",
  "type": "xyz789",
  "url": 4
}
Response
{
  "data": {
    "Image": [
      {
        "_id": "abc123",
        "alt": "xyz789",
        "aspectRatio": 123.45,
        "sensitive": false,
        "transform": "xyz789",
        "type": "xyz789",
        "url": 4
      }
    ]
  }
}

InviteCode

Response

Returns [InviteCode]

Arguments
Name Description
_id - String
code - ID
comment - String
createdAt - String
expiresAt - String
filter - _InviteCodeFilter
first - Int
offset - Int
orderBy - [_InviteCodeOrdering]
redeemedByCount - Int

Example

Query
query InviteCode(
  $_id: String,
  $code: ID,
  $comment: String,
  $createdAt: String,
  $expiresAt: String,
  $filter: _InviteCodeFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_InviteCodeOrdering],
  $redeemedByCount: Int
) {
  InviteCode(
    _id: $_id,
    code: $code,
    comment: $comment,
    createdAt: $createdAt,
    expiresAt: $expiresAt,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    redeemedByCount: $redeemedByCount
  ) {
    _id
    code
    comment
    createdAt
    expiresAt
    generatedBy {
      ...UserFragment
    }
    invitedTo {
      ...GroupFragment
    }
    isValid
    redeemedBy {
      ...UserFragment
    }
    redeemedByCount
  }
}
Variables
{
  "_id": "abc123",
  "code": "4",
  "comment": "abc123",
  "createdAt": "abc123",
  "expiresAt": "xyz789",
  "filter": _InviteCodeFilter,
  "first": 123,
  "offset": 987,
  "orderBy": ["_id_asc"],
  "redeemedByCount": 987
}
Response
{
  "data": {
    "InviteCode": [
      {
        "_id": "abc123",
        "code": 4,
        "comment": "xyz789",
        "createdAt": "abc123",
        "expiresAt": "abc123",
        "generatedBy": User,
        "invitedTo": Group,
        "isValid": true,
        "redeemedBy": [User],
        "redeemedByCount": 987
      }
    ]
  }
}

LocationMapBox

Response

Returns [LocationMapBox]

Arguments
Name Description
_id - String
filter - _LocationMapBoxFilter
first - Int
id - ID
offset - Int
orderBy - [_LocationMapBoxOrdering]
place_name - String

Example

Query
query LocationMapBox(
  $_id: String,
  $filter: _LocationMapBoxFilter,
  $first: Int,
  $id: ID,
  $offset: Int,
  $orderBy: [_LocationMapBoxOrdering],
  $place_name: String
) {
  LocationMapBox(
    _id: $_id,
    filter: $filter,
    first: $first,
    id: $id,
    offset: $offset,
    orderBy: $orderBy,
    place_name: $place_name
  ) {
    _id
    id
    place_name
  }
}
Variables
{
  "_id": "abc123",
  "filter": _LocationMapBoxFilter,
  "first": 987,
  "id": 4,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "place_name": "abc123"
}
Response
{
  "data": {
    "LocationMapBox": [
      {
        "_id": "xyz789",
        "id": 4,
        "place_name": "xyz789"
      }
    ]
  }
}

MEMBER_OF

Response

Returns [MEMBER_OF]

Arguments
Name Description
_id - String
createdAt - String
filter - _MEMBER_OFFilter
first - Int
offset - Int
orderBy - [_MEMBER_OFOrdering]
role - GroupMemberRole
updatedAt - String

Example

Query
query MEMBER_OF(
  $_id: String,
  $createdAt: String,
  $filter: _MEMBER_OFFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_MEMBER_OFOrdering],
  $role: GroupMemberRole,
  $updatedAt: String
) {
  MEMBER_OF(
    _id: $_id,
    createdAt: $createdAt,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    role: $role,
    updatedAt: $updatedAt
  ) {
    _id
    createdAt
    role
    updatedAt
  }
}
Variables
{
  "_id": "xyz789",
  "createdAt": "abc123",
  "filter": _MEMBER_OFFilter,
  "first": 123,
  "offset": 987,
  "orderBy": ["_id_asc"],
  "role": "admin",
  "updatedAt": "abc123"
}
Response
{
  "data": {
    "MEMBER_OF": [
      {
        "_id": "abc123",
        "createdAt": "abc123",
        "role": "admin",
        "updatedAt": "abc123"
      }
    ]
  }
}

Message

Description

List messages in a room, newest first, with index-based paging. Requires authentication.

Response

Returns [Message]

Arguments
Name Description
beforeIndex - Int
filter - _MessageFilter
first - Int
offset - Int
orderBy - [_MessageOrdering]
roomId - ID!

Example

Query
query Message(
  $beforeIndex: Int,
  $filter: _MessageFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_MessageOrdering],
  $roomId: ID!
) {
  Message(
    beforeIndex: $beforeIndex,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    roomId: $roomId
  ) {
    _id
    author {
      ...UserFragment
    }
    avatar
    content
    createdAt
    date
    distributed
    files {
      ...FileFragment
    }
    id
    indexId
    room {
      ...RoomFragment
    }
    saved
    seen
    senderId
    updatedAt
    username
  }
}
Variables
{
  "beforeIndex": 123,
  "filter": _MessageFilter,
  "first": 987,
  "offset": 123,
  "orderBy": ["indexId_desc"],
  "roomId": 4
}
Response
{
  "data": {
    "Message": [
      {
        "_id": "abc123",
        "author": User,
        "avatar": "xyz789",
        "content": "abc123",
        "createdAt": "xyz789",
        "date": "abc123",
        "distributed": false,
        "files": [File],
        "id": 4,
        "indexId": 123,
        "room": Room,
        "saved": false,
        "seen": true,
        "senderId": "xyz789",
        "updatedAt": "xyz789",
        "username": "xyz789"
      }
    ]
  }
}

Permission

Response

Returns [Permission]

Arguments
Name Description
_id - String
available - Boolean
description - String
filter - _PermissionFilter
first - Int
gatedBy - String
group - String
key - String
offset - Int
orderBy - [_PermissionOrdering]

Example

Query
query Permission(
  $_id: String,
  $available: Boolean,
  $description: String,
  $filter: _PermissionFilter,
  $first: Int,
  $gatedBy: String,
  $group: String,
  $key: String,
  $offset: Int,
  $orderBy: [_PermissionOrdering]
) {
  Permission(
    _id: $_id,
    available: $available,
    description: $description,
    filter: $filter,
    first: $first,
    gatedBy: $gatedBy,
    group: $group,
    key: $key,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    available
    description
    gatedBy
    group
    key
  }
}
Variables
{
  "_id": "xyz789",
  "available": false,
  "description": "abc123",
  "filter": _PermissionFilter,
  "first": 987,
  "gatedBy": "abc123",
  "group": "abc123",
  "key": "xyz789",
  "offset": 123,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "Permission": [
      {
        "_id": "xyz789",
        "available": true,
        "description": "xyz789",
        "gatedBy": "abc123",
        "group": "xyz789",
        "key": "abc123"
      }
    ]
  }
}

PermissionsChanged

Response

Returns [PermissionsChanged]

Arguments
Name Description
_id - String
filter - _PermissionsChangedFilter
first - Int
offset - Int
orderBy - [_PermissionsChangedOrdering]
roleName - String

Example

Query
query PermissionsChanged(
  $_id: String,
  $filter: _PermissionsChangedFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PermissionsChangedOrdering],
  $roleName: String
) {
  PermissionsChanged(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    roleName: $roleName
  ) {
    _id
    roleName
  }
}
Variables
{
  "_id": "xyz789",
  "filter": _PermissionsChangedFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"],
  "roleName": "xyz789"
}
Response
{
  "data": {
    "PermissionsChanged": [
      {
        "_id": "abc123",
        "roleName": "abc123"
      }
    ]
  }
}

PinnedPostCounts

Response

Returns [PinnedPostCounts]

Arguments
Name Description
_id - String
currentlyPinnedPosts - Int
filter - _PinnedPostCountsFilter
first - Int
offset - Int
orderBy - [_PinnedPostCountsOrdering]

Example

Query
query PinnedPostCounts(
  $_id: String,
  $currentlyPinnedPosts: Int,
  $filter: _PinnedPostCountsFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PinnedPostCountsOrdering]
) {
  PinnedPostCounts(
    _id: $_id,
    currentlyPinnedPosts: $currentlyPinnedPosts,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    currentlyPinnedPosts
  }
}
Variables
{
  "_id": "xyz789",
  "currentlyPinnedPosts": 123,
  "filter": _PinnedPostCountsFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "PinnedPostCounts": [
      {
        "_id": "abc123",
        "currentlyPinnedPosts": 987
      }
    ]
  }
}

Policy

Response

Returns [Policy]

Arguments
Name Description
_id - String
apiKeysEnabled - Boolean
apiKeysMaxPerUser - Int
askForRealName - Boolean
badgesEnabled - Boolean
categoriesActive - Boolean
filter - _PolicyFilter
first - Int
inviteCodesGroupPerUser - Int
inviteCodesPersonalPerUser - Int
inviteLinkLimit - Int
inviteRegistration - Boolean
maxGroupPinnedPosts - Int
maxPinnedPosts - Int
offset - Int
orderBy - [_PolicyOrdering]
publicRegistration - Boolean
requireLocation - Boolean
showContentFilterHeaderMenu - Boolean
showContentFilterMasonryGrid - Boolean
showGroupButtonInHeader - Boolean

Example

Query
query Policy(
  $_id: String,
  $apiKeysEnabled: Boolean,
  $apiKeysMaxPerUser: Int,
  $askForRealName: Boolean,
  $badgesEnabled: Boolean,
  $categoriesActive: Boolean,
  $filter: _PolicyFilter,
  $first: Int,
  $inviteCodesGroupPerUser: Int,
  $inviteCodesPersonalPerUser: Int,
  $inviteLinkLimit: Int,
  $inviteRegistration: Boolean,
  $maxGroupPinnedPosts: Int,
  $maxPinnedPosts: Int,
  $offset: Int,
  $orderBy: [_PolicyOrdering],
  $publicRegistration: Boolean,
  $requireLocation: Boolean,
  $showContentFilterHeaderMenu: Boolean,
  $showContentFilterMasonryGrid: Boolean,
  $showGroupButtonInHeader: Boolean
) {
  Policy(
    _id: $_id,
    apiKeysEnabled: $apiKeysEnabled,
    apiKeysMaxPerUser: $apiKeysMaxPerUser,
    askForRealName: $askForRealName,
    badgesEnabled: $badgesEnabled,
    categoriesActive: $categoriesActive,
    filter: $filter,
    first: $first,
    inviteCodesGroupPerUser: $inviteCodesGroupPerUser,
    inviteCodesPersonalPerUser: $inviteCodesPersonalPerUser,
    inviteLinkLimit: $inviteLinkLimit,
    inviteRegistration: $inviteRegistration,
    maxGroupPinnedPosts: $maxGroupPinnedPosts,
    maxPinnedPosts: $maxPinnedPosts,
    offset: $offset,
    orderBy: $orderBy,
    publicRegistration: $publicRegistration,
    requireLocation: $requireLocation,
    showContentFilterHeaderMenu: $showContentFilterHeaderMenu,
    showContentFilterMasonryGrid: $showContentFilterMasonryGrid,
    showGroupButtonInHeader: $showGroupButtonInHeader
  ) {
    _id
    apiKeysEnabled
    apiKeysMaxPerUser
    askForRealName
    badgesEnabled
    categoriesActive
    inviteCodesGroupPerUser
    inviteCodesPersonalPerUser
    inviteLinkLimit
    inviteRegistration
    maxGroupPinnedPosts
    maxPinnedPosts
    publicRegistration
    requireLocation
    showContentFilterHeaderMenu
    showContentFilterMasonryGrid
    showGroupButtonInHeader
  }
}
Variables
{
  "_id": "xyz789",
  "apiKeysEnabled": true,
  "apiKeysMaxPerUser": 123,
  "askForRealName": false,
  "badgesEnabled": false,
  "categoriesActive": false,
  "filter": _PolicyFilter,
  "first": 987,
  "inviteCodesGroupPerUser": 123,
  "inviteCodesPersonalPerUser": 123,
  "inviteLinkLimit": 123,
  "inviteRegistration": false,
  "maxGroupPinnedPosts": 987,
  "maxPinnedPosts": 987,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "publicRegistration": false,
  "requireLocation": true,
  "showContentFilterHeaderMenu": true,
  "showContentFilterMasonryGrid": true,
  "showGroupButtonInHeader": false
}
Response
{
  "data": {
    "Policy": [
      {
        "_id": "xyz789",
        "apiKeysEnabled": true,
        "apiKeysMaxPerUser": 987,
        "askForRealName": true,
        "badgesEnabled": true,
        "categoriesActive": false,
        "inviteCodesGroupPerUser": 123,
        "inviteCodesPersonalPerUser": 987,
        "inviteLinkLimit": 123,
        "inviteRegistration": false,
        "maxGroupPinnedPosts": 123,
        "maxPinnedPosts": 987,
        "publicRegistration": false,
        "requireLocation": true,
        "showContentFilterHeaderMenu": true,
        "showContentFilterMasonryGrid": true,
        "showGroupButtonInHeader": true
      }
    ]
  }
}

PolicyChangeEvent

Response

Returns [PolicyChangeEvent]

Arguments
Name Description
_id - String
actor - String
filter - _PolicyChangeEventFilter
first - Int
key - PolicyKey
offset - Int
orderBy - [_PolicyChangeEventOrdering]
timestamp - String
value - String

Example

Query
query PolicyChangeEvent(
  $_id: String,
  $actor: String,
  $filter: _PolicyChangeEventFilter,
  $first: Int,
  $key: PolicyKey,
  $offset: Int,
  $orderBy: [_PolicyChangeEventOrdering],
  $timestamp: String,
  $value: String
) {
  PolicyChangeEvent(
    _id: $_id,
    actor: $actor,
    filter: $filter,
    first: $first,
    key: $key,
    offset: $offset,
    orderBy: $orderBy,
    timestamp: $timestamp,
    value: $value
  ) {
    _id
    actor
    key
    timestamp
    value
  }
}
Variables
{
  "_id": "xyz789",
  "actor": "xyz789",
  "filter": _PolicyChangeEventFilter,
  "first": 123,
  "key": "apiKeysEnabled",
  "offset": 987,
  "orderBy": ["_id_asc"],
  "timestamp": "xyz789",
  "value": "abc123"
}
Response
{
  "data": {
    "PolicyChangeEvent": [
      {
        "_id": "abc123",
        "actor": "xyz789",
        "key": "apiKeysEnabled",
        "timestamp": "abc123",
        "value": "xyz789"
      }
    ]
  }
}

PolicyDefaults

Response

Returns [PolicyDefaults]

Arguments
Name Description
_id - String
filter - _PolicyDefaultsFilter
first - Int
offset - Int
orderBy - [_PolicyDefaultsOrdering]

Example

Query
query PolicyDefaults(
  $_id: String,
  $filter: _PolicyDefaultsFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PolicyDefaultsOrdering]
) {
  PolicyDefaults(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    defaults {
      ...PolicyFragment
    }
    lastChange {
      ...PolicyLastChangeFragment
    }
  }
}
Variables
{
  "_id": "xyz789",
  "filter": _PolicyDefaultsFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "PolicyDefaults": [
      {
        "_id": "abc123",
        "defaults": Policy,
        "lastChange": PolicyLastChange
      }
    ]
  }
}

PolicyLastChange

Response

Returns [PolicyLastChange]

Arguments
Name Description
_id - String
actor - String
filter - _PolicyLastChangeFilter
first - Int
offset - Int
orderBy - [_PolicyLastChangeOrdering]
timestamp - String

Example

Query
query PolicyLastChange(
  $_id: String,
  $actor: String,
  $filter: _PolicyLastChangeFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PolicyLastChangeOrdering],
  $timestamp: String
) {
  PolicyLastChange(
    _id: $_id,
    actor: $actor,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    timestamp: $timestamp
  ) {
    _id
    actor
    timestamp
  }
}
Variables
{
  "_id": "abc123",
  "actor": "abc123",
  "filter": _PolicyLastChangeFilter,
  "first": 123,
  "offset": 987,
  "orderBy": ["_id_asc"],
  "timestamp": "xyz789"
}
Response
{
  "data": {
    "PolicyLastChange": [
      {
        "_id": "abc123",
        "actor": "xyz789",
        "timestamp": "xyz789"
      }
    ]
  }
}

PolicyValueChanged

Response

Returns [PolicyValueChanged]

Arguments
Name Description
_id - String
filter - _PolicyValueChangedFilter
first - Int
key - PolicyKey
offset - Int
orderBy - [_PolicyValueChangedOrdering]
value - String

Example

Query
query PolicyValueChanged(
  $_id: String,
  $filter: _PolicyValueChangedFilter,
  $first: Int,
  $key: PolicyKey,
  $offset: Int,
  $orderBy: [_PolicyValueChangedOrdering],
  $value: String
) {
  PolicyValueChanged(
    _id: $_id,
    filter: $filter,
    first: $first,
    key: $key,
    offset: $offset,
    orderBy: $orderBy,
    value: $value
  ) {
    _id
    key
    value
  }
}
Variables
{
  "_id": "xyz789",
  "filter": _PolicyValueChangedFilter,
  "first": 123,
  "key": "apiKeysEnabled",
  "offset": 987,
  "orderBy": ["_id_asc"],
  "value": "abc123"
}
Response
{
  "data": {
    "PolicyValueChanged": [
      {
        "_id": "abc123",
        "key": "apiKeysEnabled",
        "value": "abc123"
      }
    ]
  }
}

Post

Description

List posts (the main feed query). Public. Combine with filter, orderBy and paging for feeds, profiles and groups.

Response

Returns [Post]

Arguments
Name Description
content - String
createdAt - String
filter - _PostFilter
first - Int
id - ID
imageAspectRatio - Float
imageBlurred - Boolean
language - String
offset - Int
orderBy - [_PostOrdering]
pinned - Boolean
slug - String
title - String
updatedAt - String
visibility - Visibility

Example

Query
query Post(
  $content: String,
  $createdAt: String,
  $filter: _PostFilter,
  $first: Int,
  $id: ID,
  $imageAspectRatio: Float,
  $imageBlurred: Boolean,
  $language: String,
  $offset: Int,
  $orderBy: [_PostOrdering],
  $pinned: Boolean,
  $slug: String,
  $title: String,
  $updatedAt: String,
  $visibility: Visibility
) {
  Post(
    content: $content,
    createdAt: $createdAt,
    filter: $filter,
    first: $first,
    id: $id,
    imageAspectRatio: $imageAspectRatio,
    imageBlurred: $imageBlurred,
    language: $language,
    offset: $offset,
    orderBy: $orderBy,
    pinned: $pinned,
    slug: $slug,
    title: $title,
    updatedAt: $updatedAt,
    visibility: $visibility
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{
  "content": "xyz789",
  "createdAt": "abc123",
  "filter": _PostFilter,
  "first": 123,
  "id": "4",
  "imageAspectRatio": 123.45,
  "imageBlurred": false,
  "language": "xyz789",
  "offset": 123,
  "orderBy": ["content_asc"],
  "pinned": true,
  "slug": "xyz789",
  "title": "xyz789",
  "updatedAt": "xyz789",
  "visibility": "friends"
}
Response
{
  "data": {
    "Post": [
      {
        "_id": "xyz789",
        "activityId": "xyz789",
        "author": User,
        "categories": [Category],
        "clickedCount": 123,
        "comments": [Comment],
        "commentsCount": 123,
        "content": "xyz789",
        "createdAt": "abc123",
        "deleted": false,
        "disabled": false,
        "emotions": [_PostEmotions],
        "emotionsCount": 987,
        "eventEnd": "xyz789",
        "eventIsOnline": false,
        "eventLocation": Location,
        "eventLocationName": "abc123",
        "eventStart": "abc123",
        "eventVenue": "abc123",
        "group": Group,
        "groupPinned": false,
        "id": "4",
        "image": Image,
        "isObservedByMe": true,
        "language": "abc123",
        "objectId": "abc123",
        "observingUsersCount": 987,
        "pinned": false,
        "pinnedAt": "xyz789",
        "pinnedBy": User,
        "postType": ["Article"],
        "relatedContributions": [Post],
        "shoutedBy": [User],
        "shoutedByCurrentUser": true,
        "shoutedCount": 123,
        "slug": "abc123",
        "sortDate": "xyz789",
        "tags": [Tag],
        "title": "abc123",
        "unreadCommentNotificationsByCurrentUser": [
          NOTIFIED
        ],
        "unreadNotificationByCurrentUser": NOTIFIED,
        "updatedAt": "abc123",
        "viewedTeaserByCurrentUser": false,
        "viewedTeaserCount": 123,
        "visibility": "friends"
      }
    ]
  }
}

PostsEmotionsByCurrentUser

Description

The emotions the current user has left on a post. Requires authentication.

Response

Returns [String]

Arguments
Name Description
postId - ID!

Example

Query
query PostsEmotionsByCurrentUser($postId: ID!) {
  PostsEmotionsByCurrentUser(postId: $postId)
}
Variables
{"postId": "4"}
Response
{
  "data": {
    "PostsEmotionsByCurrentUser": ["xyz789"]
  }
}

PostsEmotionsCountByEmotion

Description

Count of a single emotion on a post. Public.

Response

Returns an Int!

Arguments
Name Description
data - _EMOTEDInput!
postId - ID!

Example

Query
query PostsEmotionsCountByEmotion(
  $data: _EMOTEDInput!,
  $postId: ID!
) {
  PostsEmotionsCountByEmotion(
    data: $data,
    postId: $postId
  )
}
Variables
{
  "data": _EMOTEDInput,
  "postId": "4"
}
Response
{"data": {"PostsEmotionsCountByEmotion": 987}}

PostsPinnedCounts

Description

Instance-wide pinned-post counts. Requires the post.pin permission.

Response

Returns a PinnedPostCounts!

Arguments
Name Description
filter - _PinnedPostCountsFilter

Example

Query
query PostsPinnedCounts($filter: _PinnedPostCountsFilter) {
  PostsPinnedCounts(filter: $filter) {
    _id
    currentlyPinnedPosts
  }
}
Variables
{"filter": _PinnedPostCountsFilter}
Response
{
  "data": {
    "PostsPinnedCounts": {
      "_id": "xyz789",
      "currentlyPinnedPosts": 987
    }
  }
}

Role

Response

Returns [Role]

Arguments
Name Description
_id - String
filter - _RoleFilter
first - Int
memberCount - Int
name - String
offset - Int
orderBy - [_RoleOrdering]
permissions - String
protected - Boolean

Example

Query
query Role(
  $_id: String,
  $filter: _RoleFilter,
  $first: Int,
  $memberCount: Int,
  $name: String,
  $offset: Int,
  $orderBy: [_RoleOrdering],
  $permissions: String,
  $protected: Boolean
) {
  Role(
    _id: $_id,
    filter: $filter,
    first: $first,
    memberCount: $memberCount,
    name: $name,
    offset: $offset,
    orderBy: $orderBy,
    permissions: $permissions,
    protected: $protected
  ) {
    _id
    memberCount
    name
    permissions
    protected
  }
}
Variables
{
  "_id": "xyz789",
  "filter": _RoleFilter,
  "first": 123,
  "memberCount": 123,
  "name": "xyz789",
  "offset": 987,
  "orderBy": ["_id_asc"],
  "permissions": "xyz789",
  "protected": true
}
Response
{
  "data": {
    "Role": [
      {
        "_id": "xyz789",
        "memberCount": 123,
        "name": "xyz789",
        "permissions": ["xyz789"],
        "protected": true
      }
    ]
  }
}

Room

Description

List the current user's chat rooms. Direct rooms are looked up by userId, group rooms by groupId. Requires authentication.

Response

Returns [Room]

Arguments
Name Description
before - String
filter - _RoomFilter
first - Int
groupId - ID
id - ID
offset - Int
orderBy - [_RoomOrdering]
search - String
userId - ID

Example

Query
query Room(
  $before: String,
  $filter: _RoomFilter,
  $first: Int,
  $groupId: ID,
  $id: ID,
  $offset: Int,
  $orderBy: [_RoomOrdering],
  $search: String,
  $userId: ID
) {
  Room(
    before: $before,
    filter: $filter,
    first: $first,
    groupId: $groupId,
    id: $id,
    offset: $offset,
    orderBy: $orderBy,
    search: $search,
    userId: $userId
  ) {
    _id
    avatar
    createdAt
    group {
      ...GroupFragment
    }
    id
    isGroupRoom
    lastMessage {
      ...MessageFragment
    }
    lastMessageAt
    roomId
    roomName
    unreadCount
    updatedAt
    users {
      ...UserFragment
    }
  }
}
Variables
{
  "before": "xyz789",
  "filter": _RoomFilter,
  "first": 123,
  "groupId": "4",
  "id": "4",
  "offset": 987,
  "orderBy": ["createdAt_desc"],
  "search": "abc123",
  "userId": "4"
}
Response
{
  "data": {
    "Room": [
      {
        "_id": "abc123",
        "avatar": "abc123",
        "createdAt": "xyz789",
        "group": Group,
        "id": 4,
        "isGroupRoom": false,
        "lastMessage": Message,
        "lastMessageAt": "xyz789",
        "roomId": "xyz789",
        "roomName": "abc123",
        "unreadCount": 987,
        "updatedAt": "xyz789",
        "users": [User]
      }
    ]
  }
}

Tag

Description

List hashtags, e.g. for a trending-tags widget. Public.

Response

Returns [Tag]

Arguments
Name Description
filter - _TagFilter
first - Int
id - ID
offset - Int
orderBy - [_TagOrdering]

Example

Query
query Tag(
  $filter: _TagFilter,
  $first: Int,
  $id: ID,
  $offset: Int,
  $orderBy: [_TagOrdering]
) {
  Tag(
    filter: $filter,
    first: $first,
    id: $id,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    deleted
    disabled
    id
    taggedCount
    taggedCountUnique
    taggedPosts {
      ...PostFragment
    }
  }
}
Variables
{
  "filter": _TagFilter,
  "first": 987,
  "id": 4,
  "offset": 123,
  "orderBy": ["id_asc"]
}
Response
{
  "data": {
    "Tag": [
      {
        "_id": "abc123",
        "deleted": false,
        "disabled": true,
        "id": "4",
        "taggedCount": 123,
        "taggedCountUnique": 123,
        "taggedPosts": [Post]
      }
    ]
  }
}

UnreadRooms

Description

Number of the current user's rooms with unread messages. Requires authentication.

Response

Returns an Int

Example

Query
query UnreadRooms {
  UnreadRooms
}
Response
{"data": {"UnreadRooms": 987}}

User

Description

Look up users. Requires authentication; filtering by email additionally requires the user.email.readAny permission (used for admin user search).

Response

Returns [User]

Arguments
Name Description
about - String
createdAt - String
email - String
filter - _UserFilter
first - Int
id - ID
locationName - String
name - String
offset - Int
orderBy - [_UserOrdering]
roleName - String Admin user search: filter by single role (HAS_ROLE) and/or a free-text term (name/slug/about/email). Combinable; requires role.manage.
search - String Free-text search over name/slug/about (and email for admins).
slug - String
updatedAt - String

Example

Query
query User(
  $about: String,
  $createdAt: String,
  $email: String,
  $filter: _UserFilter,
  $first: Int,
  $id: ID,
  $locationName: String,
  $name: String,
  $offset: Int,
  $orderBy: [_UserOrdering],
  $roleName: String,
  $search: String,
  $slug: String,
  $updatedAt: String
) {
  User(
    about: $about,
    createdAt: $createdAt,
    email: $email,
    filter: $filter,
    first: $first,
    id: $id,
    locationName: $locationName,
    name: $name,
    offset: $offset,
    orderBy: $orderBy,
    roleName: $roleName,
    search: $search,
    slug: $slug,
    updatedAt: $updatedAt
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "about": "abc123",
  "createdAt": "xyz789",
  "email": "abc123",
  "filter": _UserFilter,
  "first": 123,
  "id": 4,
  "locationName": "xyz789",
  "name": "abc123",
  "offset": 123,
  "orderBy": ["about_asc"],
  "roleName": "abc123",
  "search": "xyz789",
  "slug": "abc123",
  "updatedAt": "xyz789"
}
Response
{
  "data": {
    "User": [
      {
        "_id": "xyz789",
        "about": "xyz789",
        "activeCategories": ["xyz789"],
        "actorId": "abc123",
        "allowEmbedIframes": false,
        "avatar": Image,
        "badgeTrophies": [Badge],
        "badgeTrophiesCount": 123,
        "badgeTrophiesSelected": [Badge],
        "badgeTrophiesUnused": [Badge],
        "badgeTrophiesUnusedCount": 123,
        "badgeVerification": Badge,
        "blocked": true,
        "categories": [Category],
        "commentedCount": 123,
        "comments": [Comment],
        "contributions": [Post],
        "contributionsCount": 987,
        "createdAt": "xyz789",
        "deleted": false,
        "disabled": true,
        "email": "xyz789",
        "emailNotificationSettings": [
          EmailNotificationSettings
        ],
        "emotions": [_UserEmotions],
        "followedBy": [User],
        "followedByCount": 123,
        "followedByCurrentUser": false,
        "following": [User],
        "followingCount": 987,
        "friends": [User],
        "friendsCount": 123,
        "id": "4",
        "inviteCodes": [InviteCode],
        "invited": [User],
        "invitedBy": User,
        "isBlocked": false,
        "isMuted": true,
        "locale": "abc123",
        "location": Location,
        "locationName": "abc123",
        "name": "abc123",
        "publicKey": "abc123",
        "redeemedInviteCode": InviteCode,
        "roleName": "xyz789",
        "shouted": [Post],
        "shoutedCount": 123,
        "showShoutsPublicly": true,
        "slug": "abc123",
        "socialMedia": [SocialMedia],
        "termsAndConditionsAgreedAt": "abc123",
        "termsAndConditionsAgreedVersion": "abc123",
        "updatedAt": "abc123"
      }
    ]
  }
}

UserData

Response

Returns [UserData]

Arguments
Name Description
_id - String
filter - _UserDataFilter
first - Int
offset - Int
orderBy - [_UserDataOrdering]

Example

Query
query UserData(
  $_id: String,
  $filter: _UserDataFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_UserDataOrdering]
) {
  UserData(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    posts {
      ...PostFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _UserDataFilter,
  "first": 123,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "UserData": [
      {
        "_id": "abc123",
        "posts": [Post],
        "user": User
      }
    ]
  }
}

VerifyNonce

Description

Check whether a signup/verification nonce is valid for the given email. Public.

Response

Returns a Boolean!

Arguments
Name Description
email - String!
nonce - String!

Example

Query
query VerifyNonce(
  $email: String!,
  $nonce: String!
) {
  VerifyNonce(
    email: $email,
    nonce: $nonce
  )
}
Variables
{
  "email": "xyz789",
  "nonce": "abc123"
}
Response
{"data": {"VerifyNonce": false}}

apiKeyUsers

Description

Administration overview of API-key usage per user. Requires the apiKey.administer permission.

Response

Returns [ApiKeyUserSummary!]!

Arguments
Name Description
first - Int
offset - Int

Example

Query
query apiKeyUsers(
  $first: Int,
  $offset: Int
) {
  apiKeyUsers(
    first: $first,
    offset: $offset
  ) {
    activeCount
    commentsCount
    lastActivity
    postsCount
    revokedCount
    user {
      ...UserFragment
    }
  }
}
Variables
{"first": 987, "offset": 987}
Response
{
  "data": {
    "apiKeyUsers": [
      {
        "activeCount": 123,
        "commentsCount": 123,
        "lastActivity": "xyz789",
        "postsCount": 987,
        "revokedCount": 987,
        "user": User
      }
    ]
  }
}

apiKeysForUser

Description

All API keys belonging to a given user. Requires the apiKey.administer permission.

Response

Returns [ApiKey!]!

Arguments
Name Description
userId - ID!

Example

Query
query apiKeysForUser($userId: ID!) {
  apiKeysForUser(userId: $userId) {
    createdAt
    disabled
    disabledAt
    expiresAt
    id
    keyPrefix
    lastUsedAt
    name
    owner {
      ...UserFragment
    }
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "apiKeysForUser": [
      {
        "createdAt": "abc123",
        "disabled": true,
        "disabledAt": "xyz789",
        "expiresAt": "xyz789",
        "id": 4,
        "keyPrefix": "abc123",
        "lastUsedAt": "xyz789",
        "name": "abc123",
        "owner": User
      }
    ]
  }
}

blockedUsers

Description

Users the current user has blocked. Requires authentication.

Response

Returns [User]

Arguments
Name Description
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]

Example

Query
query blockedUsers(
  $filter: _UserFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_UserOrdering]
) {
  blockedUsers(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "filter": _UserFilter,
  "first": 123,
  "offset": 123,
  "orderBy": ["about_asc"]
}
Response
{
  "data": {
    "blockedUsers": [
      {
        "_id": "xyz789",
        "about": "abc123",
        "activeCategories": ["abc123"],
        "actorId": "abc123",
        "allowEmbedIframes": true,
        "avatar": Image,
        "badgeTrophies": [Badge],
        "badgeTrophiesCount": 123,
        "badgeTrophiesSelected": [Badge],
        "badgeTrophiesUnused": [Badge],
        "badgeTrophiesUnusedCount": 987,
        "badgeVerification": Badge,
        "blocked": false,
        "categories": [Category],
        "commentedCount": 123,
        "comments": [Comment],
        "contributions": [Post],
        "contributionsCount": 123,
        "createdAt": "abc123",
        "deleted": true,
        "disabled": true,
        "email": "xyz789",
        "emailNotificationSettings": [
          EmailNotificationSettings
        ],
        "emotions": [_UserEmotions],
        "followedBy": [User],
        "followedByCount": 123,
        "followedByCurrentUser": false,
        "following": [User],
        "followingCount": 987,
        "friends": [User],
        "friendsCount": 987,
        "id": "4",
        "inviteCodes": [InviteCode],
        "invited": [User],
        "invitedBy": User,
        "isBlocked": false,
        "isMuted": true,
        "locale": "abc123",
        "location": Location,
        "locationName": "xyz789",
        "name": "xyz789",
        "publicKey": "abc123",
        "redeemedInviteCode": InviteCode,
        "roleName": "xyz789",
        "shouted": [Post],
        "shoutedCount": 987,
        "showShoutsPublicly": false,
        "slug": "xyz789",
        "socialMedia": [SocialMedia],
        "termsAndConditionsAgreedAt": "xyz789",
        "termsAndConditionsAgreedVersion": "xyz789",
        "updatedAt": "xyz789"
      }
    ]
  }
}

currentUser

Description

The currently authenticated user. Requires authentication.

Response

Returns a User!

Arguments
Name Description
filter - _UserFilter

Example

Query
query currentUser($filter: _UserFilter) {
  currentUser(filter: $filter) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"filter": _UserFilter}
Response
{
  "data": {
    "currentUser": {
      "_id": "abc123",
      "about": "xyz789",
      "activeCategories": ["xyz789"],
      "actorId": "abc123",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "abc123",
      "deleted": true,
      "disabled": false,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": true,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "abc123"
    }
  }
}

embed

Description

Fetch link-preview metadata for a URL. Public.

Response

Returns an Embed

Arguments
Name Description
url - String!

Example

Query
query embed($url: String!) {
  embed(url: $url) {
    audio
    author
    date
    description
    html
    image
    lang
    publisher
    sources
    title
    type
    url
    video
  }
}
Variables
{"url": "xyz789"}
Response
{
  "data": {
    "embed": {
      "audio": "abc123",
      "author": "abc123",
      "date": "abc123",
      "description": "xyz789",
      "html": "abc123",
      "image": "abc123",
      "lang": "xyz789",
      "publisher": "abc123",
      "sources": ["abc123"],
      "title": "abc123",
      "type": "xyz789",
      "url": "xyz789",
      "video": "xyz789"
    }
  }
}

groupSearchResults

Response

Returns [groupSearchResults]

Arguments
Name Description
_id - String
filter - _groupSearchResultsFilter
first - Int
groupCount - Int
offset - Int
orderBy - [_groupSearchResultsOrdering]

Example

Query
query groupSearchResults(
  $_id: String,
  $filter: _groupSearchResultsFilter,
  $first: Int,
  $groupCount: Int,
  $offset: Int,
  $orderBy: [_groupSearchResultsOrdering]
) {
  groupSearchResults(
    _id: $_id,
    filter: $filter,
    first: $first,
    groupCount: $groupCount,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    groupCount
    groups {
      ...GroupFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _groupSearchResultsFilter,
  "first": 123,
  "groupCount": 987,
  "offset": 123,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "groupSearchResults": [
      {
        "_id": "xyz789",
        "groupCount": 987,
        "groups": [Group]
      }
    ]
  }
}

hashtagSearchResults

Response

Returns [hashtagSearchResults]

Arguments
Name Description
_id - String
filter - _hashtagSearchResultsFilter
first - Int
hashtagCount - Int
offset - Int
orderBy - [_hashtagSearchResultsOrdering]

Example

Query
query hashtagSearchResults(
  $_id: String,
  $filter: _hashtagSearchResultsFilter,
  $first: Int,
  $hashtagCount: Int,
  $offset: Int,
  $orderBy: [_hashtagSearchResultsOrdering]
) {
  hashtagSearchResults(
    _id: $_id,
    filter: $filter,
    first: $first,
    hashtagCount: $hashtagCount,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    hashtagCount
    hashtags {
      ...TagFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _hashtagSearchResultsFilter,
  "first": 987,
  "hashtagCount": 123,
  "offset": 123,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "hashtagSearchResults": [
      {
        "_id": "xyz789",
        "hashtagCount": 123,
        "hashtags": [Tag]
      }
    ]
  }
}

mutedUsers

Description

Users the current user has muted. Requires authentication.

Response

Returns [User]

Arguments
Name Description
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]

Example

Query
query mutedUsers(
  $filter: _UserFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_UserOrdering]
) {
  mutedUsers(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "filter": _UserFilter,
  "first": 123,
  "offset": 123,
  "orderBy": ["about_asc"]
}
Response
{
  "data": {
    "mutedUsers": [
      {
        "_id": "xyz789",
        "about": "xyz789",
        "activeCategories": ["abc123"],
        "actorId": "abc123",
        "allowEmbedIframes": true,
        "avatar": Image,
        "badgeTrophies": [Badge],
        "badgeTrophiesCount": 123,
        "badgeTrophiesSelected": [Badge],
        "badgeTrophiesUnused": [Badge],
        "badgeTrophiesUnusedCount": 987,
        "badgeVerification": Badge,
        "blocked": true,
        "categories": [Category],
        "commentedCount": 123,
        "comments": [Comment],
        "contributions": [Post],
        "contributionsCount": 123,
        "createdAt": "abc123",
        "deleted": false,
        "disabled": false,
        "email": "abc123",
        "emailNotificationSettings": [
          EmailNotificationSettings
        ],
        "emotions": [_UserEmotions],
        "followedBy": [User],
        "followedByCount": 987,
        "followedByCurrentUser": false,
        "following": [User],
        "followingCount": 123,
        "friends": [User],
        "friendsCount": 123,
        "id": 4,
        "inviteCodes": [InviteCode],
        "invited": [User],
        "invitedBy": User,
        "isBlocked": true,
        "isMuted": false,
        "locale": "abc123",
        "location": Location,
        "locationName": "abc123",
        "name": "xyz789",
        "publicKey": "xyz789",
        "redeemedInviteCode": InviteCode,
        "roleName": "xyz789",
        "shouted": [Post],
        "shoutedCount": 987,
        "showShoutsPublicly": true,
        "slug": "xyz789",
        "socialMedia": [SocialMedia],
        "termsAndConditionsAgreedAt": "abc123",
        "termsAndConditionsAgreedVersion": "abc123",
        "updatedAt": "xyz789"
      }
    ]
  }
}

myApiKeys

Description

The requesting user's own API keys. Requires authentication and the apiKeysEnabled policy.

Response

Returns [ApiKey!]!

Example

Query
query myApiKeys {
  myApiKeys {
    createdAt
    disabled
    disabledAt
    expiresAt
    id
    keyPrefix
    lastUsedAt
    name
    owner {
      ...UserFragment
    }
  }
}
Response
{
  "data": {
    "myApiKeys": [
      {
        "createdAt": "xyz789",
        "disabled": false,
        "disabledAt": "abc123",
        "expiresAt": "abc123",
        "id": "4",
        "keyPrefix": "xyz789",
        "lastUsedAt": "abc123",
        "name": "abc123",
        "owner": User
      }
    ]
  }
}

myPermissions

Description

The current viewer's effective permissions, each carrying its catalog group — drives the webapp can() and group-based area gating.

Response

Returns [EffectivePermission!]!

Arguments
Name Description
filter - _EffectivePermissionFilter
first - Int
offset - Int
orderBy - [_EffectivePermissionOrdering]

Example

Query
query myPermissions(
  $filter: _EffectivePermissionFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_EffectivePermissionOrdering]
) {
  myPermissions(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    group
    key
  }
}
Variables
{
  "filter": _EffectivePermissionFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "myPermissions": [
      {
        "_id": "xyz789",
        "group": "abc123",
        "key": "abc123"
      }
    ]
  }
}

notifications

Description

The current user's notifications. Requires authentication.

Response

Returns [NOTIFIED]

Arguments
Name Description
first - Int
offset - Int
orderBy - NotificationOrdering
read - Boolean

Example

Query
query notifications(
  $first: Int,
  $offset: Int,
  $orderBy: NotificationOrdering,
  $read: Boolean
) {
  notifications(
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    read: $read
  ) {
    createdAt
    from {
      ... on Comment {
        ...CommentFragment
      }
      ... on Group {
        ...GroupFragment
      }
      ... on Post {
        ...PostFragment
      }
    }
    id
    read
    reason
    relatedUser {
      ...UserFragment
    }
    to {
      ...UserFragment
    }
    updatedAt
  }
}
Variables
{"first": 987, "offset": 987, "orderBy": "createdAt_asc", "read": true}
Response
{
  "data": {
    "notifications": [
      {
        "createdAt": "xyz789",
        "from": Comment,
        "id": "4",
        "read": false,
        "reason": "changed_group_member_role",
        "relatedUser": User,
        "to": User,
        "updatedAt": "abc123"
      }
    ]
  }
}

permissionCatalog

Description

The closed permission catalog (admin / role.manage).

Response

Returns [Permission!]!

Arguments
Name Description
filter - _PermissionFilter
first - Int
offset - Int
orderBy - [_PermissionOrdering]

Example

Query
query permissionCatalog(
  $filter: _PermissionFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PermissionOrdering]
) {
  permissionCatalog(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    available
    description
    gatedBy
    group
    key
  }
}
Variables
{
  "filter": _PermissionFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "permissionCatalog": [
      {
        "_id": "xyz789",
        "available": true,
        "description": "xyz789",
        "gatedBy": "xyz789",
        "group": "xyz789",
        "key": "abc123"
      }
    ]
  }
}

policy

Description

The instance's network policy. Public — anonymous viewers (login/register screen) need it. Per-field visibility is enforced in the resolver: a viewer only receives the keys they may see.

Response

Returns a Policy!

Arguments
Name Description
filter - _PolicyFilter

Example

Query
query policy($filter: _PolicyFilter) {
  policy(filter: $filter) {
    _id
    apiKeysEnabled
    apiKeysMaxPerUser
    askForRealName
    badgesEnabled
    categoriesActive
    inviteCodesGroupPerUser
    inviteCodesPersonalPerUser
    inviteLinkLimit
    inviteRegistration
    maxGroupPinnedPosts
    maxPinnedPosts
    publicRegistration
    requireLocation
    showContentFilterHeaderMenu
    showContentFilterMasonryGrid
    showGroupButtonInHeader
  }
}
Variables
{"filter": _PolicyFilter}
Response
{
  "data": {
    "policy": {
      "_id": "xyz789",
      "apiKeysEnabled": false,
      "apiKeysMaxPerUser": 987,
      "askForRealName": false,
      "badgesEnabled": false,
      "categoriesActive": false,
      "inviteCodesGroupPerUser": 987,
      "inviteCodesPersonalPerUser": 123,
      "inviteLinkLimit": 987,
      "inviteRegistration": false,
      "maxGroupPinnedPosts": 123,
      "maxPinnedPosts": 987,
      "publicRegistration": false,
      "requireLocation": false,
      "showContentFilterHeaderMenu": true,
      "showContentFilterMasonryGrid": true,
      "showGroupButtonInHeader": true
    }
  }
}

policyDefaults

Description

The configured policy defaults plus last-change audit info. Requires the policy.manage permission.

Response

Returns a PolicyDefaults!

Arguments
Name Description
filter - _PolicyDefaultsFilter

Example

Query
query policyDefaults($filter: _PolicyDefaultsFilter) {
  policyDefaults(filter: $filter) {
    _id
    defaults {
      ...PolicyFragment
    }
    lastChange {
      ...PolicyLastChangeFragment
    }
  }
}
Variables
{"filter": _PolicyDefaultsFilter}
Response
{
  "data": {
    "policyDefaults": {
      "_id": "abc123",
      "defaults": Policy,
      "lastChange": PolicyLastChange
    }
  }
}

postSearchResults

Response

Returns [postSearchResults]

Arguments
Name Description
_id - String
filter - _postSearchResultsFilter
first - Int
offset - Int
orderBy - [_postSearchResultsOrdering]
postCount - Int

Example

Query
query postSearchResults(
  $_id: String,
  $filter: _postSearchResultsFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_postSearchResultsOrdering],
  $postCount: Int
) {
  postSearchResults(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    postCount: $postCount
  ) {
    _id
    postCount
    posts {
      ...PostFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _postSearchResultsFilter,
  "first": 987,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "postCount": 123
}
Response
{
  "data": {
    "postSearchResults": [
      {
        "_id": "abc123",
        "postCount": 987,
        "posts": [Post]
      }
    ]
  }
}

profilePagePosts

Description

Posts for a user's profile page. Public.

Response

Returns [Post]

Arguments
Name Description
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]

Example

Query
query profilePagePosts(
  $filter: _PostFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_PostOrdering]
) {
  profilePagePosts(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{
  "filter": _PostFilter,
  "first": 123,
  "offset": 123,
  "orderBy": ["content_asc"]
}
Response
{
  "data": {
    "profilePagePosts": [
      {
        "_id": "abc123",
        "activityId": "xyz789",
        "author": User,
        "categories": [Category],
        "clickedCount": 123,
        "comments": [Comment],
        "commentsCount": 987,
        "content": "abc123",
        "createdAt": "abc123",
        "deleted": false,
        "disabled": true,
        "emotions": [_PostEmotions],
        "emotionsCount": 987,
        "eventEnd": "abc123",
        "eventIsOnline": false,
        "eventLocation": Location,
        "eventLocationName": "abc123",
        "eventStart": "abc123",
        "eventVenue": "abc123",
        "group": Group,
        "groupPinned": true,
        "id": "4",
        "image": Image,
        "isObservedByMe": false,
        "language": "abc123",
        "objectId": "xyz789",
        "observingUsersCount": 123,
        "pinned": true,
        "pinnedAt": "xyz789",
        "pinnedBy": User,
        "postType": ["Article"],
        "relatedContributions": [Post],
        "shoutedBy": [User],
        "shoutedByCurrentUser": false,
        "shoutedCount": 123,
        "slug": "abc123",
        "sortDate": "xyz789",
        "tags": [Tag],
        "title": "xyz789",
        "unreadCommentNotificationsByCurrentUser": [
          NOTIFIED
        ],
        "unreadNotificationByCurrentUser": NOTIFIED,
        "updatedAt": "xyz789",
        "viewedTeaserByCurrentUser": false,
        "viewedTeaserCount": 123,
        "visibility": "friends"
      }
    ]
  }
}

queryLocations

Description

Search for places via the MapBox geocoder, to attach a location to a profile, group or event. Public.

Response

Returns [LocationMapBox]!

Arguments
Name Description
filter - _LocationMapBoxFilter
first - Int
lang - String!
offset - Int
orderBy - [_LocationMapBoxOrdering]
place - String!
types - String

Example

Query
query queryLocations(
  $filter: _LocationMapBoxFilter,
  $first: Int,
  $lang: String!,
  $offset: Int,
  $orderBy: [_LocationMapBoxOrdering],
  $place: String!,
  $types: String
) {
  queryLocations(
    filter: $filter,
    first: $first,
    lang: $lang,
    offset: $offset,
    orderBy: $orderBy,
    place: $place,
    types: $types
  ) {
    _id
    id
    place_name
  }
}
Variables
{
  "filter": _LocationMapBoxFilter,
  "first": 123,
  "lang": "abc123",
  "offset": 987,
  "orderBy": ["_id_asc"],
  "place": "xyz789",
  "types": "abc123"
}
Response
{
  "data": {
    "queryLocations": [
      {
        "_id": "xyz789",
        "id": "4",
        "place_name": "xyz789"
      }
    ]
  }
}

reports

Description

List moderation reports for the moderation queue. Requires the content.moderate permission.

Response

Returns [Report]

Arguments
Name Description
closed - Boolean Filter by whether the report is closed.
first - Int
offset - Int
orderBy - ReportOrdering
reviewed - Boolean Filter by whether the report has been reviewed.

Example

Query
query reports(
  $closed: Boolean,
  $first: Int,
  $offset: Int,
  $orderBy: ReportOrdering,
  $reviewed: Boolean
) {
  reports(
    closed: $closed,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    reviewed: $reviewed
  ) {
    closed
    createdAt
    disable
    filed {
      ...FILEDFragment
    }
    id
    resource {
      ... on Comment {
        ...CommentFragment
      }
      ... on Post {
        ...PostFragment
      }
      ... on User {
        ...UserFragment
      }
    }
    reviewed {
      ...REVIEWEDFragment
    }
    rule
    updatedAt
  }
}
Variables
{
  "closed": false,
  "first": 987,
  "offset": 123,
  "orderBy": "createdAt_asc",
  "reviewed": false
}
Response
{
  "data": {
    "reports": [
      {
        "closed": true,
        "createdAt": "abc123",
        "disable": false,
        "filed": [FILED],
        "id": 4,
        "resource": Comment,
        "reviewed": [REVIEWED],
        "rule": "latestReviewUpdatedAtRules",
        "updatedAt": "xyz789"
      }
    ]
  }
}

roles

Description

All roles with their permission bundles and member counts (role.manage).

Response

Returns [Role!]!

Arguments
Name Description
filter - _RoleFilter
first - Int
offset - Int
orderBy - [_RoleOrdering]

Example

Query
query roles(
  $filter: _RoleFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_RoleOrdering]
) {
  roles(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy
  ) {
    _id
    memberCount
    name
    permissions
    protected
  }
}
Variables
{
  "filter": _RoleFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"]
}
Response
{
  "data": {
    "roles": [
      {
        "_id": "abc123",
        "memberCount": 123,
        "name": "abc123",
        "permissions": ["abc123"],
        "protected": false
      }
    ]
  }
}

searchChatTargets

Description

Search for users and groups to start a chat with. Requires authentication.

Response

Returns [ChatTarget]!

Arguments
Name Description
limit - Int Default = 10
query - String!

Example

Query
query searchChatTargets(
  $limit: Int,
  $query: String!
) {
  searchChatTargets(
    limit: $limit,
    query: $query
  ) {
    ... on Group {
      ...GroupFragment
    }
    ... on User {
      ...UserFragment
    }
  }
}
Variables
{"limit": 10, "query": "xyz789"}
Response
{"data": {"searchChatTargets": [Group]}}

searchGroups

Description

Search groups by name/description. Public.

Response

Returns a groupSearchResults!

Arguments
Name Description
filter - _groupSearchResultsFilter
firstGroups - Int
groupsOffset - Int
query - String!

Example

Query
query searchGroups(
  $filter: _groupSearchResultsFilter,
  $firstGroups: Int,
  $groupsOffset: Int,
  $query: String!
) {
  searchGroups(
    filter: $filter,
    firstGroups: $firstGroups,
    groupsOffset: $groupsOffset,
    query: $query
  ) {
    _id
    groupCount
    groups {
      ...GroupFragment
    }
  }
}
Variables
{
  "filter": _groupSearchResultsFilter,
  "firstGroups": 987,
  "groupsOffset": 987,
  "query": "xyz789"
}
Response
{
  "data": {
    "searchGroups": {
      "_id": "abc123",
      "groupCount": 123,
      "groups": [Group]
    }
  }
}

searchHashtags

Description

Search hashtags. Public.

Response

Returns a hashtagSearchResults!

Arguments
Name Description
filter - _hashtagSearchResultsFilter
firstHashtags - Int
hashtagsOffset - Int
query - String!

Example

Query
query searchHashtags(
  $filter: _hashtagSearchResultsFilter,
  $firstHashtags: Int,
  $hashtagsOffset: Int,
  $query: String!
) {
  searchHashtags(
    filter: $filter,
    firstHashtags: $firstHashtags,
    hashtagsOffset: $hashtagsOffset,
    query: $query
  ) {
    _id
    hashtagCount
    hashtags {
      ...TagFragment
    }
  }
}
Variables
{
  "filter": _hashtagSearchResultsFilter,
  "firstHashtags": 987,
  "hashtagsOffset": 123,
  "query": "abc123"
}
Response
{
  "data": {
    "searchHashtags": {
      "_id": "xyz789",
      "hashtagCount": 987,
      "hashtags": [Tag]
    }
  }
}

searchPosts

Description

Search posts by title/content. Public.

Response

Returns a postSearchResults!

Arguments
Name Description
filter - _postSearchResultsFilter
firstPosts - Int
postsOffset - Int
query - String!

Example

Query
query searchPosts(
  $filter: _postSearchResultsFilter,
  $firstPosts: Int,
  $postsOffset: Int,
  $query: String!
) {
  searchPosts(
    filter: $filter,
    firstPosts: $firstPosts,
    postsOffset: $postsOffset,
    query: $query
  ) {
    _id
    postCount
    posts {
      ...PostFragment
    }
  }
}
Variables
{
  "filter": _postSearchResultsFilter,
  "firstPosts": 123,
  "postsOffset": 123,
  "query": "abc123"
}
Response
{
  "data": {
    "searchPosts": {
      "_id": "xyz789",
      "postCount": 123,
      "posts": [Post]
    }
  }
}

searchResults

Description

Combined search across posts, users, tags and groups, for the global search box. Public.

Response

Returns [SearchResult]!

Arguments
Name Description
limit - Int Default = 5
query - String!

Example

Query
query searchResults(
  $limit: Int,
  $query: String!
) {
  searchResults(
    limit: $limit,
    query: $query
  ) {
    ... on Group {
      ...GroupFragment
    }
    ... on Post {
      ...PostFragment
    }
    ... on Tag {
      ...TagFragment
    }
    ... on User {
      ...UserFragment
    }
  }
}
Variables
{"limit": 5, "query": "abc123"}
Response
{"data": {"searchResults": [Group]}}

searchUsers

Description

Search users by name/slug. Public.

Response

Returns a userSearchResults!

Arguments
Name Description
filter - _userSearchResultsFilter
firstUsers - Int
query - String!
usersOffset - Int

Example

Query
query searchUsers(
  $filter: _userSearchResultsFilter,
  $firstUsers: Int,
  $query: String!,
  $usersOffset: Int
) {
  searchUsers(
    filter: $filter,
    firstUsers: $firstUsers,
    query: $query,
    usersOffset: $usersOffset
  ) {
    _id
    userCount
    users {
      ...UserFragment
    }
  }
}
Variables
{
  "filter": _userSearchResultsFilter,
  "firstUsers": 987,
  "query": "xyz789",
  "usersOffset": 123
}
Response
{
  "data": {
    "searchUsers": {
      "_id": "abc123",
      "userCount": 987,
      "users": [User]
    }
  }
}

statistics

Description

Instance-wide usage counters. Requires the network.statistics.read permission.

Response

Returns a Statistics!

Example

Query
query statistics {
  statistics {
    badgesDisplayed
    badgesRewarded
    chatMessages
    chatRooms
    comments
    emails
    follows
    groups
    inviteCodes
    inviteCodesExpired
    inviteCodesRedeemed
    invites
    locations
    notifications
    posts
    reports
    shouts
    tags
    users
    usersDeleted
    usersVerified
  }
}
Response
{
  "data": {
    "statistics": {
      "badgesDisplayed": 987,
      "badgesRewarded": 987,
      "chatMessages": 987,
      "chatRooms": 123,
      "comments": 123,
      "emails": 987,
      "follows": 987,
      "groups": 987,
      "inviteCodes": 123,
      "inviteCodesExpired": 123,
      "inviteCodesRedeemed": 123,
      "invites": 987,
      "locations": 123,
      "notifications": 123,
      "posts": 987,
      "reports": 987,
      "shouts": 123,
      "tags": 123,
      "users": 987,
      "usersDeleted": 987,
      "usersVerified": 123
    }
  }
}

userData

Description

Fetch a user together with their posts. Defaults to the current user when no id is given. Requires authentication.

Response

Returns a UserData

Arguments
Name Description
filter - _UserDataFilter
id - ID

Example

Query
query userData(
  $filter: _UserDataFilter,
  $id: ID
) {
  userData(
    filter: $filter,
    id: $id
  ) {
    _id
    posts {
      ...PostFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "filter": _UserDataFilter,
  "id": "4"
}
Response
{
  "data": {
    "userData": {
      "_id": "xyz789",
      "posts": [Post],
      "user": User
    }
  }
}

userRoles

Description

The roles assigned to a specific user (role.manage) — for the admin UI.

Response

Returns [Role!]!

Arguments
Name Description
filter - _RoleFilter
first - Int
offset - Int
orderBy - [_RoleOrdering]
userId - ID!

Example

Query
query userRoles(
  $filter: _RoleFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_RoleOrdering],
  $userId: ID!
) {
  userRoles(
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    userId: $userId
  ) {
    _id
    memberCount
    name
    permissions
    protected
  }
}
Variables
{
  "filter": _RoleFilter,
  "first": 987,
  "offset": 987,
  "orderBy": ["_id_asc"],
  "userId": 4
}
Response
{
  "data": {
    "userRoles": [
      {
        "_id": "abc123",
        "memberCount": 987,
        "name": "xyz789",
        "permissions": ["xyz789"],
        "protected": true
      }
    ]
  }
}

userSearchResults

Response

Returns [userSearchResults]

Arguments
Name Description
_id - String
filter - _userSearchResultsFilter
first - Int
offset - Int
orderBy - [_userSearchResultsOrdering]
userCount - Int

Example

Query
query userSearchResults(
  $_id: String,
  $filter: _userSearchResultsFilter,
  $first: Int,
  $offset: Int,
  $orderBy: [_userSearchResultsOrdering],
  $userCount: Int
) {
  userSearchResults(
    _id: $_id,
    filter: $filter,
    first: $first,
    offset: $offset,
    orderBy: $orderBy,
    userCount: $userCount
  ) {
    _id
    userCount
    users {
      ...UserFragment
    }
  }
}
Variables
{
  "_id": "abc123",
  "filter": _userSearchResultsFilter,
  "first": 987,
  "offset": 123,
  "orderBy": ["_id_asc"],
  "userCount": 987
}
Response
{
  "data": {
    "userSearchResults": [
      {
        "_id": "xyz789",
        "userCount": 987,
        "users": [User]
      }
    ]
  }
}

validateInviteCode

Description

Look up an invite code and its validity, e.g. on the registration screen. Public.

Response

Returns an InviteCode

Arguments
Name Description
code - String!
filter - _InviteCodeFilter

Example

Query
query validateInviteCode(
  $code: String!,
  $filter: _InviteCodeFilter
) {
  validateInviteCode(
    code: $code,
    filter: $filter
  ) {
    _id
    code
    comment
    createdAt
    expiresAt
    generatedBy {
      ...UserFragment
    }
    invitedTo {
      ...GroupFragment
    }
    isValid
    redeemedBy {
      ...UserFragment
    }
    redeemedByCount
  }
}
Variables
{
  "code": "abc123",
  "filter": _InviteCodeFilter
}
Response
{
  "data": {
    "validateInviteCode": {
      "_id": "abc123",
      "code": "4",
      "comment": "xyz789",
      "createdAt": "xyz789",
      "expiresAt": "abc123",
      "generatedBy": User,
      "invitedTo": Group,
      "isValid": true,
      "redeemedBy": [User],
      "redeemedByCount": 123
    }
  }
}

videoCallConfig

Description

Whether video calls are enabled on this instance. Public.

Response

Returns a VideoCallConfig!

Example

Query
query videoCallConfig {
  videoCallConfig {
    enabled
  }
}
Response
{"data": {"videoCallConfig": {"enabled": true}}}

videoCallParticipantCount

Description

Current number of participants in a group's video call. Requires authentication.

Response

Returns an Int!

Arguments
Name Description
groupId - ID!

Example

Query
query videoCallParticipantCount($groupId: ID!) {
  videoCallParticipantCount(groupId: $groupId)
}
Variables
{"groupId": 4}
Response
{"data": {"videoCallParticipantCount": 987}}

Mutations

AddEmailAddress

Description

Add a further email address to the current account, sending a verification nonce. Requires authentication.

Response

Returns an EmailAddress

Arguments
Name Description
email - String!

Example

Query
mutation AddEmailAddress($email: String!) {
  AddEmailAddress(email: $email) {
    createdAt
    email
    verifiedAt
  }
}
Variables
{"email": "abc123"}
Response
{
  "data": {
    "AddEmailAddress": {
      "createdAt": "abc123",
      "email": "4",
      "verifiedAt": "xyz789"
    }
  }
}

AddPostEmotions

Description

Add the current user's emotional reaction to a post. Requires authentication.

Response

Returns an EMOTED

Arguments
Name Description
data - _EMOTEDInput!
to - _PostInput!

Example

Query
mutation AddPostEmotions(
  $data: _EMOTEDInput!,
  $to: _PostInput!
) {
  AddPostEmotions(
    data: $data,
    to: $to
  ) {
    createdAt
    emotion
    from {
      ...UserFragment
    }
    to {
      ...PostFragment
    }
    updatedAt
  }
}
Variables
{
  "data": _EMOTEDInput,
  "to": _PostInput
}
Response
{
  "data": {
    "AddPostEmotions": {
      "createdAt": "xyz789",
      "emotion": "angry",
      "from": User,
      "to": Post,
      "updatedAt": "abc123"
    }
  }
}

ChangeGroupMemberRole

Description

Change a member's role in a group. Restricted to admins/owners, subject to the role hierarchy.

Response

Returns a GroupMember

Arguments
Name Description
groupId - ID!
roleInGroup - GroupMemberRole!
userId - ID!

Example

Query
mutation ChangeGroupMemberRole(
  $groupId: ID!,
  $roleInGroup: GroupMemberRole!,
  $userId: ID!
) {
  ChangeGroupMemberRole(
    groupId: $groupId,
    roleInGroup: $roleInGroup,
    userId: $userId
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{
  "groupId": "4",
  "roleInGroup": "admin",
  "userId": 4
}
Response
{
  "data": {
    "ChangeGroupMemberRole": {
      "_id": "xyz789",
      "membership": MEMBER_OF,
      "user": User
    }
  }
}

CreateComment

Description

Write a comment on a post. Requires authentication, the comment.create permission, and permission to comment on that post.

Response

Returns a Comment

Arguments
Name Description
content - String!
id - ID
postId - ID!

Example

Query
mutation CreateComment(
  $content: String!,
  $id: ID,
  $postId: ID!
) {
  CreateComment(
    content: $content,
    id: $id,
    postId: $postId
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    content
    createdAt
    deleted
    disabled
    id
    isPostObservedByMe
    post {
      ...PostFragment
    }
    postObservingUsersCount
    shoutedByCurrentUser
    shoutedCount
    updatedAt
  }
}
Variables
{
  "content": "abc123",
  "id": "4",
  "postId": "4"
}
Response
{
  "data": {
    "CreateComment": {
      "_id": "xyz789",
      "activityId": "abc123",
      "author": User,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "id": "4",
      "isPostObservedByMe": false,
      "post": Post,
      "postObservingUsersCount": 987,
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "updatedAt": "abc123"
    }
  }
}

CreateGroup

Description

Create a group. Requires authentication and the group.create_<type> permission matching the chosen groupType.

Response

Returns a Group

Arguments
Name Description
about - String
actionRadius - GroupActionRadius!
categoryIds - [ID]
description - String!
groupType - GroupType!
id - ID
locationName - String Empty string '' clears the location (sets it to null).
name - String!
slug - String

Example

Query
mutation CreateGroup(
  $about: String,
  $actionRadius: GroupActionRadius!,
  $categoryIds: [ID],
  $description: String!,
  $groupType: GroupType!,
  $id: ID,
  $locationName: String,
  $name: String!,
  $slug: String
) {
  CreateGroup(
    about: $about,
    actionRadius: $actionRadius,
    categoryIds: $categoryIds,
    description: $description,
    groupType: $groupType,
    id: $id,
    locationName: $locationName,
    name: $name,
    slug: $slug
  ) {
    about
    actionRadius
    avatar {
      ...ImageFragment
    }
    categories {
      ...CategoryFragment
    }
    createdAt
    currentlyPinnedPostsCount
    deleted
    description
    descriptionExcerpt
    disabled
    groupType
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    isMutedByMe
    location {
      ...LocationFragment
    }
    locationName
    membersCount
    myRole
    name
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{
  "about": "xyz789",
  "actionRadius": "continental",
  "categoryIds": ["4"],
  "description": "xyz789",
  "groupType": "closed",
  "id": 4,
  "locationName": "xyz789",
  "name": "abc123",
  "slug": "abc123"
}
Response
{
  "data": {
    "CreateGroup": {
      "about": "xyz789",
      "actionRadius": "continental",
      "avatar": Image,
      "categories": [Category],
      "createdAt": "xyz789",
      "currentlyPinnedPostsCount": 987,
      "deleted": false,
      "description": "abc123",
      "descriptionExcerpt": "abc123",
      "disabled": false,
      "groupType": "closed",
      "id": 4,
      "inviteCodes": [InviteCode],
      "isMutedByMe": false,
      "location": Location,
      "locationName": "xyz789",
      "membersCount": 123,
      "myRole": "admin",
      "name": "xyz789",
      "posts": [Post],
      "slug": "xyz789",
      "updatedAt": "abc123"
    }
  }
}

CreateGroupRoom

Description

Create (or fetch) the chat room for a group. Requires authentication.

Response

Returns a Room

Arguments
Name Description
groupId - ID!

Example

Query
mutation CreateGroupRoom($groupId: ID!) {
  CreateGroupRoom(groupId: $groupId) {
    _id
    avatar
    createdAt
    group {
      ...GroupFragment
    }
    id
    isGroupRoom
    lastMessage {
      ...MessageFragment
    }
    lastMessageAt
    roomId
    roomName
    unreadCount
    updatedAt
    users {
      ...UserFragment
    }
  }
}
Variables
{"groupId": "4"}
Response
{
  "data": {
    "CreateGroupRoom": {
      "_id": "xyz789",
      "avatar": "xyz789",
      "createdAt": "xyz789",
      "group": Group,
      "id": 4,
      "isGroupRoom": false,
      "lastMessage": Message,
      "lastMessageAt": "abc123",
      "roomId": "xyz789",
      "roomName": "abc123",
      "unreadCount": 987,
      "updatedAt": "abc123",
      "users": [User]
    }
  }
}

CreateMessage

Description

Send a message to a room (by roomId) or to a user (by userId, opening a direct room). Requires authentication.

Response

Returns a Message

Arguments
Name Description
content - String
files - [FileInput]
roomId - ID
userId - ID

Example

Query
mutation CreateMessage(
  $content: String,
  $files: [FileInput],
  $roomId: ID,
  $userId: ID
) {
  CreateMessage(
    content: $content,
    files: $files,
    roomId: $roomId,
    userId: $userId
  ) {
    _id
    author {
      ...UserFragment
    }
    avatar
    content
    createdAt
    date
    distributed
    files {
      ...FileFragment
    }
    id
    indexId
    room {
      ...RoomFragment
    }
    saved
    seen
    senderId
    updatedAt
    username
  }
}
Variables
{
  "content": "xyz789",
  "files": [FileInput],
  "roomId": 4,
  "userId": 4
}
Response
{
  "data": {
    "CreateMessage": {
      "_id": "xyz789",
      "author": User,
      "avatar": "abc123",
      "content": "xyz789",
      "createdAt": "xyz789",
      "date": "abc123",
      "distributed": true,
      "files": [File],
      "id": 4,
      "indexId": 123,
      "room": Room,
      "saved": false,
      "seen": false,
      "senderId": "abc123",
      "updatedAt": "abc123",
      "username": "abc123"
    }
  }
}

CreatePost

Description

Create a post. Requires authentication and the post.create permission; posting into a group additionally requires membership of that group.

Response

Returns a Post

Arguments
Name Description
categoryIds - [ID]
content - String!
eventInput - _EventInput Event details; required when postType is Event.
groupId - ID Post into this group; omit for a public/timeline post.
id - ID
image - ImageInput
language - String
postType - PostType Default = Article
slug - String
title - String!
visibility - Visibility

Example

Query
mutation CreatePost(
  $categoryIds: [ID],
  $content: String!,
  $eventInput: _EventInput,
  $groupId: ID,
  $id: ID,
  $image: ImageInput,
  $language: String,
  $postType: PostType,
  $slug: String,
  $title: String!,
  $visibility: Visibility
) {
  CreatePost(
    categoryIds: $categoryIds,
    content: $content,
    eventInput: $eventInput,
    groupId: $groupId,
    id: $id,
    image: $image,
    language: $language,
    postType: $postType,
    slug: $slug,
    title: $title,
    visibility: $visibility
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{
  "categoryIds": ["4"],
  "content": "xyz789",
  "eventInput": _EventInput,
  "groupId": 4,
  "id": "4",
  "image": ImageInput,
  "language": "abc123",
  "postType": "Article",
  "slug": "xyz789",
  "title": "xyz789",
  "visibility": "friends"
}
Response
{
  "data": {
    "CreatePost": {
      "_id": "abc123",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": false,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "xyz789",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "xyz789",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": true,
      "id": "4",
      "image": Image,
      "isObservedByMe": true,
      "language": "xyz789",
      "objectId": "abc123",
      "observingUsersCount": 987,
      "pinned": false,
      "pinnedAt": "abc123",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 987,
      "slug": "abc123",
      "sortDate": "xyz789",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "xyz789",
      "viewedTeaserByCurrentUser": true,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

CreateSocialMedia

Description

Add a social-media link to your profile. Requires the socialMedia.create permission.

Response

Returns a SocialMedia

Arguments
Name Description
id - ID
url - String!

Example

Query
mutation CreateSocialMedia(
  $id: ID,
  $url: String!
) {
  CreateSocialMedia(
    id: $id,
    url: $url
  ) {
    id
    ownedBy {
      ...UserFragment
    }
    url
  }
}
Variables
{
  "id": "4",
  "url": "abc123"
}
Response
{
  "data": {
    "CreateSocialMedia": {
      "id": "4",
      "ownedBy": User,
      "url": "xyz789"
    }
  }
}

DeleteComment

Description

Delete one of your own comments. Restricted to the author.

Response

Returns a Comment

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteComment($id: ID!) {
  DeleteComment(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    content
    createdAt
    deleted
    disabled
    id
    isPostObservedByMe
    post {
      ...PostFragment
    }
    postObservingUsersCount
    shoutedByCurrentUser
    shoutedCount
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "DeleteComment": {
      "_id": "abc123",
      "activityId": "xyz789",
      "author": User,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": false,
      "disabled": false,
      "id": "4",
      "isPostObservedByMe": false,
      "post": Post,
      "postObservingUsersCount": 987,
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "updatedAt": "abc123"
    }
  }
}

DeletePost

Description

Delete one of your own posts. Restricted to the author.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation DeletePost($id: ID!) {
  DeletePost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "DeletePost": {
      "_id": "xyz789",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 987,
      "comments": [Comment],
      "commentsCount": 987,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "xyz789",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "xyz789",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": true,
      "id": 4,
      "image": Image,
      "isObservedByMe": false,
      "language": "abc123",
      "objectId": "abc123",
      "observingUsersCount": 123,
      "pinned": false,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "slug": "xyz789",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 123,
      "visibility": "friends"
    }
  }
}

DeleteSocialMedia

Description

Remove one of your own social-media links. Restricted to the owner.

Response

Returns a SocialMedia

Arguments
Name Description
id - ID!

Example

Query
mutation DeleteSocialMedia($id: ID!) {
  DeleteSocialMedia(id: $id) {
    id
    ownedBy {
      ...UserFragment
    }
    url
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "DeleteSocialMedia": {
      "id": "4",
      "ownedBy": User,
      "url": "xyz789"
    }
  }
}

DeleteUser

Description

Delete a user account. Allowed for the account owner, or with user.delete.any subject to the act-on hierarchy. Optionally also delete the user's posts and/or comments via resource.

Response

Returns a User

Arguments
Name Description
id - ID!
resource - [Deletable]

Example

Query
mutation DeleteUser(
  $id: ID!,
  $resource: [Deletable]
) {
  DeleteUser(
    id: $id,
    resource: $resource
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": "4", "resource": ["Comment"]}
Response
{
  "data": {
    "DeleteUser": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["abc123"],
      "actorId": "xyz789",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "xyz789",
      "location": Location,
      "locationName": "abc123",
      "name": "xyz789",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "abc123"
    }
  }
}

JoinGroup

Description

Join a group, or accept/approve a pending membership. Allowed per the group's join rules; joining on behalf of another user requires the appropriate rights.

Response

Returns a GroupMember

Arguments
Name Description
groupId - ID!
userId - ID!

Example

Query
mutation JoinGroup(
  $groupId: ID!,
  $userId: ID!
) {
  JoinGroup(
    groupId: $groupId,
    userId: $userId
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{"groupId": 4, "userId": "4"}
Response
{
  "data": {
    "JoinGroup": {
      "_id": "xyz789",
      "membership": MEMBER_OF,
      "user": User
    }
  }
}

LeaveGroup

Description

Leave a group, or (for admins/owners) let a member leave.

Response

Returns a GroupMember

Arguments
Name Description
groupId - ID!
userId - ID!

Example

Query
mutation LeaveGroup(
  $groupId: ID!,
  $userId: ID!
) {
  LeaveGroup(
    groupId: $groupId,
    userId: $userId
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{"groupId": 4, "userId": "4"}
Response
{
  "data": {
    "LeaveGroup": {
      "_id": "abc123",
      "membership": MEMBER_OF,
      "user": User
    }
  }
}

MarkMessagesAsSeen

Description

Mark the given messages as seen by the current user. Requires authentication.

Response

Returns a Boolean

Arguments
Name Description
messageIds - [String!]

Example

Query
mutation MarkMessagesAsSeen($messageIds: [String!]) {
  MarkMessagesAsSeen(messageIds: $messageIds)
}
Variables
{"messageIds": ["abc123"]}
Response
{"data": {"MarkMessagesAsSeen": true}}

RemovePostEmotions

Description

Remove the current user's emotional reaction from a post. Requires authentication.

Response

Returns an EMOTED

Arguments
Name Description
data - _EMOTEDInput!
to - _PostInput!

Example

Query
mutation RemovePostEmotions(
  $data: _EMOTEDInput!,
  $to: _PostInput!
) {
  RemovePostEmotions(
    data: $data,
    to: $to
  ) {
    createdAt
    emotion
    from {
      ...UserFragment
    }
    to {
      ...PostFragment
    }
    updatedAt
  }
}
Variables
{
  "data": _EMOTEDInput,
  "to": _PostInput
}
Response
{
  "data": {
    "RemovePostEmotions": {
      "createdAt": "abc123",
      "emotion": "angry",
      "from": User,
      "to": Post,
      "updatedAt": "abc123"
    }
  }
}

RemoveUserFromGroup

Description

Remove a user from a group. Restricted to those allowed to manage the group's members.

Response

Returns a GroupMember

Arguments
Name Description
groupId - ID!
userId - ID!

Example

Query
mutation RemoveUserFromGroup(
  $groupId: ID!,
  $userId: ID!
) {
  RemoveUserFromGroup(
    groupId: $groupId,
    userId: $userId
  ) {
    _id
    membership {
      ...MEMBER_OFFragment
    }
    user {
      ...UserFragment
    }
  }
}
Variables
{"groupId": 4, "userId": "4"}
Response
{
  "data": {
    "RemoveUserFromGroup": {
      "_id": "xyz789",
      "membership": MEMBER_OF,
      "user": User
    }
  }
}

Signup

Description

Begin registration for an email address, sending a verification nonce. Allowed when public or invite registration is enabled (or by an admin with role.manage); an inviteCode is required for invite-only registration.

Response

Returns an EmailAddress

Arguments
Name Description
email - String!
inviteCode - String Default = null
locale - String!

Example

Query
mutation Signup(
  $email: String!,
  $inviteCode: String,
  $locale: String!
) {
  Signup(
    email: $email,
    inviteCode: $inviteCode,
    locale: $locale
  ) {
    createdAt
    email
    verifiedAt
  }
}
Variables
{
  "email": "xyz789",
  "inviteCode": null,
  "locale": "abc123"
}
Response
{
  "data": {
    "Signup": {
      "createdAt": "abc123",
      "email": "4",
      "verifiedAt": "abc123"
    }
  }
}

SignupVerification

Description

Complete registration by confirming the nonce and creating the user account. Public.

Response

Returns a User

Arguments
Name Description
about - String
email - String!
inviteCode - String Default = null
locale - String
locationName - String Default = null
name - String!
nonce - String!
password - String!
slug - String
termsAndConditionsAgreedVersion - String!

Example

Query
mutation SignupVerification(
  $about: String,
  $email: String!,
  $inviteCode: String,
  $locale: String,
  $locationName: String,
  $name: String!,
  $nonce: String!,
  $password: String!,
  $slug: String,
  $termsAndConditionsAgreedVersion: String!
) {
  SignupVerification(
    about: $about,
    email: $email,
    inviteCode: $inviteCode,
    locale: $locale,
    locationName: $locationName,
    name: $name,
    nonce: $nonce,
    password: $password,
    slug: $slug,
    termsAndConditionsAgreedVersion: $termsAndConditionsAgreedVersion
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "about": "abc123",
  "email": "abc123",
  "inviteCode": null,
  "locale": "xyz789",
  "locationName": null,
  "name": "xyz789",
  "nonce": "xyz789",
  "password": "abc123",
  "slug": "xyz789",
  "termsAndConditionsAgreedVersion": "xyz789"
}
Response
{
  "data": {
    "SignupVerification": {
      "_id": "abc123",
      "about": "xyz789",
      "activeCategories": ["xyz789"],
      "actorId": "xyz789",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": true,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 987,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": true,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "abc123"
    }
  }
}

UpdateComment

Description

Edit one of your own comments. Restricted to the author.

Response

Returns a Comment

Arguments
Name Description
content - String!
id - ID!

Example

Query
mutation UpdateComment(
  $content: String!,
  $id: ID!
) {
  UpdateComment(
    content: $content,
    id: $id
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    content
    createdAt
    deleted
    disabled
    id
    isPostObservedByMe
    post {
      ...PostFragment
    }
    postObservingUsersCount
    shoutedByCurrentUser
    shoutedCount
    updatedAt
  }
}
Variables
{"content": "abc123", "id": 4}
Response
{
  "data": {
    "UpdateComment": {
      "_id": "xyz789",
      "activityId": "xyz789",
      "author": User,
      "content": "abc123",
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": true,
      "id": 4,
      "isPostObservedByMe": true,
      "post": Post,
      "postObservingUsersCount": 987,
      "shoutedByCurrentUser": true,
      "shoutedCount": 987,
      "updatedAt": "xyz789"
    }
  }
}

UpdateDonations

Description

Update the donation campaign settings. Requires the donation.manage permission.

Response

Returns a Donations

Arguments
Name Description
goal - Int
progress - Int
showDonations - Boolean

Example

Query
mutation UpdateDonations(
  $goal: Int,
  $progress: Int,
  $showDonations: Boolean
) {
  UpdateDonations(
    goal: $goal,
    progress: $progress,
    showDonations: $showDonations
  ) {
    _id
    createdAt
    goal
    id
    progress
    showDonations
    updatedAt
  }
}
Variables
{"goal": 123, "progress": 987, "showDonations": true}
Response
{
  "data": {
    "UpdateDonations": {
      "_id": "abc123",
      "createdAt": "xyz789",
      "goal": 987,
      "id": "4",
      "progress": 987,
      "showDonations": true,
      "updatedAt": "xyz789"
    }
  }
}

UpdateGroup

Description

Update a group's settings. Restricted to admins/owners of the group.

Response

Returns a Group

Arguments
Name Description
about - String
actionRadius - GroupActionRadius
avatar - ImageInput
categoryIds - [ID]
description - String
groupType - GroupType
id - ID!
locationName - String Empty string '' clears the location (sets it to null).
name - String
slug - String

Example

Query
mutation UpdateGroup(
  $about: String,
  $actionRadius: GroupActionRadius,
  $avatar: ImageInput,
  $categoryIds: [ID],
  $description: String,
  $groupType: GroupType,
  $id: ID!,
  $locationName: String,
  $name: String,
  $slug: String
) {
  UpdateGroup(
    about: $about,
    actionRadius: $actionRadius,
    avatar: $avatar,
    categoryIds: $categoryIds,
    description: $description,
    groupType: $groupType,
    id: $id,
    locationName: $locationName,
    name: $name,
    slug: $slug
  ) {
    about
    actionRadius
    avatar {
      ...ImageFragment
    }
    categories {
      ...CategoryFragment
    }
    createdAt
    currentlyPinnedPostsCount
    deleted
    description
    descriptionExcerpt
    disabled
    groupType
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    isMutedByMe
    location {
      ...LocationFragment
    }
    locationName
    membersCount
    myRole
    name
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{
  "about": "xyz789",
  "actionRadius": "continental",
  "avatar": ImageInput,
  "categoryIds": ["4"],
  "description": "abc123",
  "groupType": "closed",
  "id": "4",
  "locationName": "abc123",
  "name": "abc123",
  "slug": "xyz789"
}
Response
{
  "data": {
    "UpdateGroup": {
      "about": "xyz789",
      "actionRadius": "continental",
      "avatar": Image,
      "categories": [Category],
      "createdAt": "xyz789",
      "currentlyPinnedPostsCount": 123,
      "deleted": false,
      "description": "xyz789",
      "descriptionExcerpt": "xyz789",
      "disabled": false,
      "groupType": "closed",
      "id": "4",
      "inviteCodes": [InviteCode],
      "isMutedByMe": false,
      "location": Location,
      "locationName": "abc123",
      "membersCount": 987,
      "myRole": "admin",
      "name": "xyz789",
      "posts": [Post],
      "slug": "xyz789",
      "updatedAt": "abc123"
    }
  }
}

UpdatePost

Description

Update one of your own posts. Restricted to the author.

Response

Returns a Post

Arguments
Name Description
categoryIds - [ID]
content - String!
eventInput - _EventInput
id - ID!
image - ImageInput
language - String
postType - PostType
slug - String
title - String!
visibility - Visibility

Example

Query
mutation UpdatePost(
  $categoryIds: [ID],
  $content: String!,
  $eventInput: _EventInput,
  $id: ID!,
  $image: ImageInput,
  $language: String,
  $postType: PostType,
  $slug: String,
  $title: String!,
  $visibility: Visibility
) {
  UpdatePost(
    categoryIds: $categoryIds,
    content: $content,
    eventInput: $eventInput,
    id: $id,
    image: $image,
    language: $language,
    postType: $postType,
    slug: $slug,
    title: $title,
    visibility: $visibility
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{
  "categoryIds": ["4"],
  "content": "abc123",
  "eventInput": _EventInput,
  "id": "4",
  "image": ImageInput,
  "language": "abc123",
  "postType": "Article",
  "slug": "abc123",
  "title": "abc123",
  "visibility": "friends"
}
Response
{
  "data": {
    "UpdatePost": {
      "_id": "xyz789",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "abc123",
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "abc123",
      "eventIsOnline": false,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "xyz789",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": false,
      "id": 4,
      "image": Image,
      "isObservedByMe": false,
      "language": "xyz789",
      "objectId": "abc123",
      "observingUsersCount": 123,
      "pinned": true,
      "pinnedAt": "abc123",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": true,
      "shoutedCount": 987,
      "slug": "xyz789",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

UpdateSocialMedia

Description

Update one of your own social-media links. Restricted to the owner.

Response

Returns a SocialMedia

Arguments
Name Description
id - ID!
url - String!

Example

Query
mutation UpdateSocialMedia(
  $id: ID!,
  $url: String!
) {
  UpdateSocialMedia(
    id: $id,
    url: $url
  ) {
    id
    ownedBy {
      ...UserFragment
    }
    url
  }
}
Variables
{"id": 4, "url": "abc123"}
Response
{
  "data": {
    "UpdateSocialMedia": {
      "id": 4,
      "ownedBy": User,
      "url": "abc123"
    }
  }
}

UpdateUser

Description

Update your own profile. Restricted to the account owner.

Response

Returns a User

Arguments
Name Description
about - String
allowEmbedIframes - Boolean
avatar - ImageInput
email - String
emailNotificationSettings - [EmailNotificationSettingsInput]
id - ID!
locale - String
locationName - String Empty string '' clears the location (sets it to null).
name - String
showShoutsPublicly - Boolean
slug - String
termsAndConditionsAgreedAt - String
termsAndConditionsAgreedVersion - String

Example

Query
mutation UpdateUser(
  $about: String,
  $allowEmbedIframes: Boolean,
  $avatar: ImageInput,
  $email: String,
  $emailNotificationSettings: [EmailNotificationSettingsInput],
  $id: ID!,
  $locale: String,
  $locationName: String,
  $name: String,
  $showShoutsPublicly: Boolean,
  $slug: String,
  $termsAndConditionsAgreedAt: String,
  $termsAndConditionsAgreedVersion: String
) {
  UpdateUser(
    about: $about,
    allowEmbedIframes: $allowEmbedIframes,
    avatar: $avatar,
    email: $email,
    emailNotificationSettings: $emailNotificationSettings,
    id: $id,
    locale: $locale,
    locationName: $locationName,
    name: $name,
    showShoutsPublicly: $showShoutsPublicly,
    slug: $slug,
    termsAndConditionsAgreedAt: $termsAndConditionsAgreedAt,
    termsAndConditionsAgreedVersion: $termsAndConditionsAgreedVersion
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "about": "xyz789",
  "allowEmbedIframes": true,
  "avatar": ImageInput,
  "email": "xyz789",
  "emailNotificationSettings": [
    EmailNotificationSettingsInput
  ],
  "id": "4",
  "locale": "xyz789",
  "locationName": "abc123",
  "name": "abc123",
  "showShoutsPublicly": false,
  "slug": "xyz789",
  "termsAndConditionsAgreedAt": "abc123",
  "termsAndConditionsAgreedVersion": "xyz789"
}
Response
{
  "data": {
    "UpdateUser": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["xyz789"],
      "actorId": "xyz789",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": true,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "xyz789",
      "name": "xyz789",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "abc123"
    }
  }
}

VerifyEmailAddress

Description

Confirm a pending email address via its nonce. Requires authentication.

Response

Returns an EmailAddress

Arguments
Name Description
email - String!
nonce - String!

Example

Query
mutation VerifyEmailAddress(
  $email: String!,
  $nonce: String!
) {
  VerifyEmailAddress(
    email: $email,
    nonce: $nonce
  ) {
    createdAt
    email
    verifiedAt
  }
}
Variables
{
  "email": "abc123",
  "nonce": "abc123"
}
Response
{
  "data": {
    "VerifyEmailAddress": {
      "createdAt": "abc123",
      "email": "4",
      "verifiedAt": "abc123"
    }
  }
}

adminRevokeApiKey

Description

Revoke any user's API key (administration). Requires the apiKey.administer permission.

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation adminRevokeApiKey($id: ID!) {
  adminRevokeApiKey(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"adminRevokeApiKey": false}}

adminRevokeUserApiKeys

Description

Revoke all of a user's API keys and return how many were revoked. Requires the apiKey.administer permission.

Response

Returns an Int!

Arguments
Name Description
userId - ID!

Example

Query
mutation adminRevokeUserApiKeys($userId: ID!) {
  adminRevokeUserApiKeys(userId: $userId)
}
Variables
{"userId": "4"}
Response
{"data": {"adminRevokeUserApiKeys": 123}}

blockUser

Description

Block a user, cutting off interaction in both directions. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation blockUser($id: ID!) {
  blockUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "blockUser": {
      "_id": "abc123",
      "about": "xyz789",
      "activeCategories": ["xyz789"],
      "actorId": "xyz789",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": false,
      "isMuted": true,
      "locale": "xyz789",
      "location": Location,
      "locationName": "xyz789",
      "name": "abc123",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

changePassword

Description

Change the current user's password. Requires authentication.

Response

Returns a String!

Arguments
Name Description
newPassword - String!
oldPassword - String!

Example

Query
mutation changePassword(
  $newPassword: String!,
  $oldPassword: String!
) {
  changePassword(
    newPassword: $newPassword,
    oldPassword: $oldPassword
  )
}
Variables
{
  "newPassword": "abc123",
  "oldPassword": "xyz789"
}
Response
{"data": {"changePassword": "xyz789"}}

createApiKey

Description

Create a new API key and return its secret (shown only here). Requires the apiKey.create permission (gated by the apiKeysEnabled policy).

Response

Returns an ApiKeyWithSecret!

Arguments
Name Description
expiresInDays - Int
name - String!

Example

Query
mutation createApiKey(
  $expiresInDays: Int,
  $name: String!
) {
  createApiKey(
    expiresInDays: $expiresInDays,
    name: $name
  ) {
    apiKey {
      ...ApiKeyFragment
    }
    secret
  }
}
Variables
{"expiresInDays": 123, "name": "abc123"}
Response
{
  "data": {
    "createApiKey": {
      "apiKey": ApiKey,
      "secret": "abc123"
    }
  }
}

createRole

Description

Create a new role with the given permission bundle. Requires the role.manage permission.

Response

Returns a Role!

Arguments
Name Description
name - String!
permissions - [String!]!

Example

Query
mutation createRole(
  $name: String!,
  $permissions: [String!]!
) {
  createRole(
    name: $name,
    permissions: $permissions
  ) {
    _id
    memberCount
    name
    permissions
    protected
  }
}
Variables
{
  "name": "abc123",
  "permissions": ["abc123"]
}
Response
{
  "data": {
    "createRole": {
      "_id": "abc123",
      "memberCount": 987,
      "name": "abc123",
      "permissions": ["abc123"],
      "protected": true
    }
  }
}

deleteRole

Description

Delete a role. Returns the deleted role's name (the input name echoed back on success). Requires the role.manage permission.

Response

Returns a String!

Arguments
Name Description
name - String!

Example

Query
mutation deleteRole($name: String!) {
  deleteRole(name: $name)
}
Variables
{"name": "abc123"}
Response
{"data": {"deleteRole": "xyz789"}}

disableUser

Description

Reversibly deactivate (disable: true) or reactivate (disable: false) a user account. Moderator-grade, subject to the act-on hierarchy.

Response

Returns a User

Arguments
Name Description
disable - Boolean!
id - ID!

Example

Query
mutation disableUser(
  $disable: Boolean!,
  $id: ID!
) {
  disableUser(
    disable: $disable,
    id: $id
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"disable": false, "id": 4}
Response
{
  "data": {
    "disableUser": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["abc123"],
      "actorId": "xyz789",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": true,
      "locale": "abc123",
      "location": Location,
      "locationName": "xyz789",
      "name": "xyz789",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "abc123"
    }
  }
}

fileReport

Description

File a moderation report against a user, post or comment. Requires authentication.

Response

Returns a FiledReport

Arguments
Name Description
reasonCategory - ReasonCategory!
reasonDescription - String!
resourceId - ID!

Example

Query
mutation fileReport(
  $reasonCategory: ReasonCategory!,
  $reasonDescription: String!,
  $resourceId: ID!
) {
  fileReport(
    reasonCategory: $reasonCategory,
    reasonDescription: $reasonDescription,
    resourceId: $resourceId
  ) {
    _id
    createdAt
    reasonCategory
    reasonDescription
    reportId
    resource {
      ... on Comment {
        ...CommentFragment
      }
      ... on Post {
        ...PostFragment
      }
      ... on User {
        ...UserFragment
      }
    }
  }
}
Variables
{
  "reasonCategory": "advert_products_services_commercial",
  "reasonDescription": "abc123",
  "resourceId": "4"
}
Response
{
  "data": {
    "fileReport": {
      "_id": "xyz789",
      "createdAt": "abc123",
      "reasonCategory": "advert_products_services_commercial",
      "reasonDescription": "xyz789",
      "reportId": "4",
      "resource": Comment
    }
  }
}

followUser

Description

Follow a user. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation followUser($id: ID!) {
  followUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "followUser": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["abc123"],
      "actorId": "abc123",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": false,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 987,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "xyz789",
      "name": "xyz789",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "xyz789"
    }
  }
}

generateGroupInviteCode

Description

Issue an invite code granting membership in a group. Restricted to admins/owners of that group.

Response

Returns an InviteCode!

Arguments
Name Description
comment - String Default = null
expiresAt - String Default = null
groupId - ID!

Example

Query
mutation generateGroupInviteCode(
  $comment: String,
  $expiresAt: String,
  $groupId: ID!
) {
  generateGroupInviteCode(
    comment: $comment,
    expiresAt: $expiresAt,
    groupId: $groupId
  ) {
    _id
    code
    comment
    createdAt
    expiresAt
    generatedBy {
      ...UserFragment
    }
    invitedTo {
      ...GroupFragment
    }
    isValid
    redeemedBy {
      ...UserFragment
    }
    redeemedByCount
  }
}
Variables
{"comment": null, "expiresAt": null, "groupId": 4}
Response
{
  "data": {
    "generateGroupInviteCode": {
      "_id": "xyz789",
      "code": "4",
      "comment": "xyz789",
      "createdAt": "abc123",
      "expiresAt": "xyz789",
      "generatedBy": User,
      "invitedTo": Group,
      "isValid": true,
      "redeemedBy": [User],
      "redeemedByCount": 123
    }
  }
}

generatePersonalInviteCode

Description

Issue a personal invite code for registering new users. Requires authentication and the user.invite permission.

Response

Returns an InviteCode!

Arguments
Name Description
comment - String Default = null
expiresAt - String Default = null

Example

Query
mutation generatePersonalInviteCode(
  $comment: String,
  $expiresAt: String
) {
  generatePersonalInviteCode(
    comment: $comment,
    expiresAt: $expiresAt
  ) {
    _id
    code
    comment
    createdAt
    expiresAt
    generatedBy {
      ...UserFragment
    }
    invitedTo {
      ...GroupFragment
    }
    isValid
    redeemedBy {
      ...UserFragment
    }
    redeemedByCount
  }
}
Variables
{"comment": null, "expiresAt": null}
Response
{
  "data": {
    "generatePersonalInviteCode": {
      "_id": "abc123",
      "code": 4,
      "comment": "abc123",
      "createdAt": "abc123",
      "expiresAt": "abc123",
      "generatedBy": User,
      "invitedTo": Group,
      "isValid": true,
      "redeemedBy": [User],
      "redeemedByCount": 123
    }
  }
}

invalidateInviteCode

Description

Invalidate one of your invite codes so it can no longer be redeemed. Requires authentication.

Response

Returns an InviteCode

Arguments
Name Description
code - String!

Example

Query
mutation invalidateInviteCode($code: String!) {
  invalidateInviteCode(code: $code) {
    _id
    code
    comment
    createdAt
    expiresAt
    generatedBy {
      ...UserFragment
    }
    invitedTo {
      ...GroupFragment
    }
    isValid
    redeemedBy {
      ...UserFragment
    }
    redeemedByCount
  }
}
Variables
{"code": "xyz789"}
Response
{
  "data": {
    "invalidateInviteCode": {
      "_id": "xyz789",
      "code": "4",
      "comment": "xyz789",
      "createdAt": "abc123",
      "expiresAt": "xyz789",
      "generatedBy": User,
      "invitedTo": Group,
      "isValid": true,
      "redeemedBy": [User],
      "redeemedByCount": 123
    }
  }
}

joinGroupVideoCall

Description

Join a group's video call, returning the credentials to connect. Requires authentication.

Response

Returns a VideoCallJoinPayload!

Arguments
Name Description
groupId - ID!

Example

Query
mutation joinGroupVideoCall($groupId: ID!) {
  joinGroupVideoCall(groupId: $groupId) {
    roomName
    token
    url
  }
}
Variables
{"groupId": "4"}
Response
{
  "data": {
    "joinGroupVideoCall": {
      "roomName": "xyz789",
      "token": "abc123",
      "url": "xyz789"
    }
  }
}

login

Description

Get a JWT Token for the given Email and password

Response

Returns a String!

Arguments
Name Description
email - String!
password - String!

Example

Query
mutation login(
  $email: String!,
  $password: String!
) {
  login(
    email: $email,
    password: $password
  )
}
Variables
{
  "email": "abc123",
  "password": "abc123"
}
Response
{"data": {"login": "xyz789"}}

markAllAsRead

Description

Mark all of the current user's notifications as read. Requires authentication.

Response

Returns [NOTIFIED]

Example

Query
mutation markAllAsRead {
  markAllAsRead {
    createdAt
    from {
      ... on Comment {
        ...CommentFragment
      }
      ... on Group {
        ...GroupFragment
      }
      ... on Post {
        ...PostFragment
      }
    }
    id
    read
    reason
    relatedUser {
      ...UserFragment
    }
    to {
      ...UserFragment
    }
    updatedAt
  }
}
Response
{
  "data": {
    "markAllAsRead": [
      {
        "createdAt": "abc123",
        "from": Comment,
        "id": 4,
        "read": false,
        "reason": "changed_group_member_role",
        "relatedUser": User,
        "to": User,
        "updatedAt": "abc123"
      }
    ]
  }
}

markAsRead

Description

Mark a notification as read. Requires authentication.

Response

Returns an NOTIFIED

Arguments
Name Description
id - ID!

Example

Query
mutation markAsRead($id: ID!) {
  markAsRead(id: $id) {
    createdAt
    from {
      ... on Comment {
        ...CommentFragment
      }
      ... on Group {
        ...GroupFragment
      }
      ... on Post {
        ...PostFragment
      }
    }
    id
    read
    reason
    relatedUser {
      ...UserFragment
    }
    to {
      ...UserFragment
    }
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "markAsRead": {
      "createdAt": "xyz789",
      "from": Comment,
      "id": 4,
      "read": false,
      "reason": "changed_group_member_role",
      "relatedUser": User,
      "to": User,
      "updatedAt": "xyz789"
    }
  }
}

markAsUnread

Description

Mark a notification as unread. Requires authentication.

Response

Returns an NOTIFIED

Arguments
Name Description
id - ID!

Example

Query
mutation markAsUnread($id: ID!) {
  markAsUnread(id: $id) {
    createdAt
    from {
      ... on Comment {
        ...CommentFragment
      }
      ... on Group {
        ...GroupFragment
      }
      ... on Post {
        ...PostFragment
      }
    }
    id
    read
    reason
    relatedUser {
      ...UserFragment
    }
    to {
      ...UserFragment
    }
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "markAsUnread": {
      "createdAt": "xyz789",
      "from": Comment,
      "id": "4",
      "read": true,
      "reason": "changed_group_member_role",
      "relatedUser": User,
      "to": User,
      "updatedAt": "abc123"
    }
  }
}

markTeaserAsViewed

Description

Mark a post's teaser as viewed by the current user. Public.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation markTeaserAsViewed($id: ID!) {
  markTeaserAsViewed(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "markTeaserAsViewed": {
      "_id": "abc123",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 987,
      "comments": [Comment],
      "commentsCount": 987,
      "content": "abc123",
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "abc123",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "xyz789",
      "eventVenue": "xyz789",
      "group": Group,
      "groupPinned": true,
      "id": 4,
      "image": Image,
      "isObservedByMe": false,
      "language": "abc123",
      "objectId": "abc123",
      "observingUsersCount": 987,
      "pinned": false,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 987,
      "slug": "xyz789",
      "sortDate": "xyz789",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "xyz789",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

muteGroup

Description

Mute a group so its posts no longer appear in the current user's feed. Requires membership.

Response

Returns a Group

Arguments
Name Description
groupId - ID!

Example

Query
mutation muteGroup($groupId: ID!) {
  muteGroup(groupId: $groupId) {
    about
    actionRadius
    avatar {
      ...ImageFragment
    }
    categories {
      ...CategoryFragment
    }
    createdAt
    currentlyPinnedPostsCount
    deleted
    description
    descriptionExcerpt
    disabled
    groupType
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    isMutedByMe
    location {
      ...LocationFragment
    }
    locationName
    membersCount
    myRole
    name
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{"groupId": 4}
Response
{
  "data": {
    "muteGroup": {
      "about": "abc123",
      "actionRadius": "continental",
      "avatar": Image,
      "categories": [Category],
      "createdAt": "xyz789",
      "currentlyPinnedPostsCount": 987,
      "deleted": false,
      "description": "abc123",
      "descriptionExcerpt": "xyz789",
      "disabled": false,
      "groupType": "closed",
      "id": 4,
      "inviteCodes": [InviteCode],
      "isMutedByMe": true,
      "location": Location,
      "locationName": "abc123",
      "membersCount": 123,
      "myRole": "admin",
      "name": "abc123",
      "posts": [Post],
      "slug": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

muteUser

Description

Mute a user, hiding their content from the current user. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation muteUser($id: ID!) {
  muteUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "muteUser": {
      "_id": "xyz789",
      "about": "xyz789",
      "activeCategories": ["abc123"],
      "actorId": "abc123",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": true,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 987,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "xyz789",
      "name": "xyz789",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "abc123"
    }
  }
}

pinGroupPost

Description

Pin a post within its group. Restricted to those allowed to pin in that group.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation pinGroupPost($id: ID!) {
  pinGroupPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "pinGroupPost": {
      "_id": "xyz789",
      "activityId": "xyz789",
      "author": User,
      "categories": [Category],
      "clickedCount": 987,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "xyz789",
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 123,
      "eventEnd": "abc123",
      "eventIsOnline": false,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "xyz789",
      "eventVenue": "xyz789",
      "group": Group,
      "groupPinned": false,
      "id": "4",
      "image": Image,
      "isObservedByMe": false,
      "language": "xyz789",
      "objectId": "abc123",
      "observingUsersCount": 987,
      "pinned": false,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "slug": "xyz789",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "abc123",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

pinPost

Description

Pin a post instance-wide. Requires the post.pin permission.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation pinPost($id: ID!) {
  pinPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "pinPost": {
      "_id": "abc123",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 987,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "xyz789",
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "abc123",
      "eventIsOnline": false,
      "eventLocation": Location,
      "eventLocationName": "abc123",
      "eventStart": "abc123",
      "eventVenue": "xyz789",
      "group": Group,
      "groupPinned": true,
      "id": "4",
      "image": Image,
      "isObservedByMe": false,
      "language": "abc123",
      "objectId": "xyz789",
      "observingUsersCount": 123,
      "pinned": false,
      "pinnedAt": "abc123",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "slug": "xyz789",
      "sortDate": "xyz789",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "xyz789",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

pushPost

Description

Push (boost) a post to the top of feeds. Requires the post.push permission.

Response

Returns a Post!

Arguments
Name Description
id - ID!

Example

Query
mutation pushPost($id: ID!) {
  pushPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "pushPost": {
      "_id": "xyz789",
      "activityId": "xyz789",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": true,
      "disabled": false,
      "emotions": [_PostEmotions],
      "emotionsCount": 123,
      "eventEnd": "abc123",
      "eventIsOnline": false,
      "eventLocation": Location,
      "eventLocationName": "abc123",
      "eventStart": "abc123",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": false,
      "id": "4",
      "image": Image,
      "isObservedByMe": false,
      "language": "xyz789",
      "objectId": "abc123",
      "observingUsersCount": 987,
      "pinned": true,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 987,
      "slug": "xyz789",
      "sortDate": "xyz789",
      "tags": [Tag],
      "title": "abc123",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

redeemInviteCode

Description

Redeem an invite code for the current user (registration and/or group membership). Requires authentication.

Response

Returns a Boolean!

Arguments
Name Description
code - String!

Example

Query
mutation redeemInviteCode($code: String!) {
  redeemInviteCode(code: $code)
}
Variables
{"code": "abc123"}
Response
{"data": {"redeemInviteCode": true}}

requestPasswordReset

Description

Request a password-reset email for the given address. Public.

Response

Returns a Boolean!

Arguments
Name Description
email - String!
locale - String!

Example

Query
mutation requestPasswordReset(
  $email: String!,
  $locale: String!
) {
  requestPasswordReset(
    email: $email,
    locale: $locale
  )
}
Variables
{
  "email": "abc123",
  "locale": "xyz789"
}
Response
{"data": {"requestPasswordReset": false}}

resetPassword

Description

Reset a password using the nonce from the reset email. Public.

Response

Returns a Boolean!

Arguments
Name Description
email - String!
newPassword - String!
nonce - String!

Example

Query
mutation resetPassword(
  $email: String!,
  $newPassword: String!,
  $nonce: String!
) {
  resetPassword(
    email: $email,
    newPassword: $newPassword,
    nonce: $nonce
  )
}
Variables
{
  "email": "xyz789",
  "newPassword": "xyz789",
  "nonce": "xyz789"
}
Response
{"data": {"resetPassword": true}}

resetPolicy

Description

Reset a single policy key to its configured default. Requires the policy.manage permission.

Response

Returns a PolicyChangeEvent!

Arguments
Name Description
key - PolicyKey!

Example

Query
mutation resetPolicy($key: PolicyKey!) {
  resetPolicy(key: $key) {
    _id
    actor
    key
    timestamp
    value
  }
}
Variables
{"key": "apiKeysEnabled"}
Response
{
  "data": {
    "resetPolicy": {
      "_id": "xyz789",
      "actor": "xyz789",
      "key": "apiKeysEnabled",
      "timestamp": "xyz789",
      "value": "xyz789"
    }
  }
}

resetTrophyBadgesSelected

Description

Clear all displayed trophy badges. Requires authentication.

Response

Returns a User

Example

Query
mutation resetTrophyBadgesSelected {
  resetTrophyBadgesSelected {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Response
{
  "data": {
    "resetTrophyBadgesSelected": {
      "_id": "abc123",
      "about": "xyz789",
      "activeCategories": ["xyz789"],
      "actorId": "xyz789",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 987,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "xyz789"
    }
  }
}

resyncCaches

Description

Resynchronise the in-memory role & policy caches from the database. Dev/test-only recovery hook for when an out-of-process change (db:reset / db:seed, the e2e harness) leaves a running server's caches stale; it needs no auth outside production so it works even when no users exist yet (right after a wipe). Disabled in production — there a rolling restart re-reads the DB on each instance's boot.

Response

Returns a Boolean!

Example

Query
mutation resyncCaches {
  resyncCaches
}
Response
{"data": {"resyncCaches": true}}

review

Description

Record a moderation decision on a reported resource: optionally disable (hide) it and/or close the report. Requires the content.moderate permission and must respect the act-on hierarchy for the target user.

Response

Returns an REVIEWED

Arguments
Name Description
closed - Boolean
disable - Boolean
resourceId - ID!

Example

Query
mutation review(
  $closed: Boolean,
  $disable: Boolean,
  $resourceId: ID!
) {
  review(
    closed: $closed,
    disable: $disable,
    resourceId: $resourceId
  ) {
    closed
    createdAt
    disable
    moderator {
      ...UserFragment
    }
    report {
      ...ReportFragment
    }
    resource {
      ... on Comment {
        ...CommentFragment
      }
      ... on Post {
        ...PostFragment
      }
      ... on User {
        ...UserFragment
      }
    }
    updatedAt
  }
}
Variables
{
  "closed": true,
  "disable": false,
  "resourceId": "4"
}
Response
{
  "data": {
    "review": {
      "closed": false,
      "createdAt": "xyz789",
      "disable": true,
      "moderator": User,
      "report": Report,
      "resource": Comment,
      "updatedAt": "xyz789"
    }
  }
}

revokeApiKey

Description

Revoke one of your own API keys. Requires authentication.

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation revokeApiKey($id: ID!) {
  revokeApiKey(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"revokeApiKey": true}}

revokeBadge

Description

Remove a badge from a user. Requires the badge.manage permission.

Response

Returns a User

Arguments
Name Description
badgeId - ID!
userId - ID!

Example

Query
mutation revokeBadge(
  $badgeId: ID!,
  $userId: ID!
) {
  revokeBadge(
    badgeId: $badgeId,
    userId: $userId
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "badgeId": "4",
  "userId": "4"
}
Response
{
  "data": {
    "revokeBadge": {
      "_id": "xyz789",
      "about": "xyz789",
      "activeCategories": ["xyz789"],
      "actorId": "abc123",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": true,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": false,
      "isMuted": true,
      "locale": "xyz789",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "abc123"
    }
  }
}

rewardTrophyBadge

Description

Award a trophy badge to a user. Requires the badge.manage permission.

Response

Returns a User

Arguments
Name Description
badgeId - ID!
userId - ID!

Example

Query
mutation rewardTrophyBadge(
  $badgeId: ID!,
  $userId: ID!
) {
  rewardTrophyBadge(
    badgeId: $badgeId,
    userId: $userId
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"badgeId": 4, "userId": "4"}
Response
{
  "data": {
    "rewardTrophyBadge": {
      "_id": "abc123",
      "about": "abc123",
      "activeCategories": ["xyz789"],
      "actorId": "abc123",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": false,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 987,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "xyz789",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

saveCategorySettings

Description

Set the current user's active content-filter categories. Requires authentication.

Response

Returns a Boolean

Arguments
Name Description
activeCategories - [String]

Example

Query
mutation saveCategorySettings($activeCategories: [String]) {
  saveCategorySettings(activeCategories: $activeCategories)
}
Variables
{"activeCategories": ["xyz789"]}
Response
{"data": {"saveCategorySettings": true}}

setPolicy

Description

Set a single policy key to a value. Requires the policy.manage permission.

Response

Returns a PolicyChangeEvent!

Arguments
Name Description
key - PolicyKey!
value - String!

Example

Query
mutation setPolicy(
  $key: PolicyKey!,
  $value: String!
) {
  setPolicy(
    key: $key,
    value: $value
  ) {
    _id
    actor
    key
    timestamp
    value
  }
}
Variables
{"key": "apiKeysEnabled", "value": "abc123"}
Response
{
  "data": {
    "setPolicy": {
      "_id": "abc123",
      "actor": "abc123",
      "key": "apiKeysEnabled",
      "timestamp": "xyz789",
      "value": "xyz789"
    }
  }
}

setTrophyBadgeSelected

Description

Choose which trophy badge to display in a given slot (null clears the slot). Requires authentication.

Response

Returns a User

Arguments
Name Description
badgeId - ID
slot - Int!

Example

Query
mutation setTrophyBadgeSelected(
  $badgeId: ID,
  $slot: Int!
) {
  setTrophyBadgeSelected(
    badgeId: $badgeId,
    slot: $slot
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"badgeId": "4", "slot": 123}
Response
{
  "data": {
    "setTrophyBadgeSelected": {
      "_id": "abc123",
      "about": "abc123",
      "activeCategories": ["abc123"],
      "actorId": "xyz789",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": true,
      "locale": "xyz789",
      "location": Location,
      "locationName": "xyz789",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

setUserRole

Description

Set a user's single role (replaces their current role). Requires the role.manage permission.

Response

Returns a User!

Arguments
Name Description
roleName - String!
userId - ID!

Example

Query
mutation setUserRole(
  $roleName: String!,
  $userId: ID!
) {
  setUserRole(
    roleName: $roleName,
    userId: $userId
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{
  "roleName": "abc123",
  "userId": "4"
}
Response
{
  "data": {
    "setUserRole": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["xyz789"],
      "actorId": "xyz789",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "abc123",
      "deleted": false,
      "disabled": false,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 987,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "xyz789",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": false,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "abc123",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

setVerificationBadge

Description

Assign a verification badge to a user. Requires the badge.manage permission.

Response

Returns a User

Arguments
Name Description
badgeId - ID!
userId - ID!

Example

Query
mutation setVerificationBadge(
  $badgeId: ID!,
  $userId: ID!
) {
  setVerificationBadge(
    badgeId: $badgeId,
    userId: $userId
  ) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"badgeId": 4, "userId": "4"}
Response
{
  "data": {
    "setVerificationBadge": {
      "_id": "abc123",
      "about": "abc123",
      "activeCategories": ["xyz789"],
      "actorId": "abc123",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 987,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": false,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": 4,
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": true,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": true,
      "slug": "abc123",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "xyz789"
    }
  }
}

shout

Description

Shout (endorse) the given post or comment. Requires authentication.

Response

Returns a Boolean!

Arguments
Name Description
id - ID!
type - ShoutTypeEnum!

Example

Query
mutation shout(
  $id: ID!,
  $type: ShoutTypeEnum!
) {
  shout(
    id: $id,
    type: $type
  )
}
Variables
{"id": 4, "type": "Comment"}
Response
{"data": {"shout": true}}

toggleObservePost

Description

Start or stop observing a post (to receive notifications about its comments). Requires authentication.

Response

Returns a Post!

Arguments
Name Description
id - ID!
value - Boolean!

Example

Query
mutation toggleObservePost(
  $id: ID!,
  $value: Boolean!
) {
  toggleObservePost(
    id: $id,
    value: $value
  ) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": "4", "value": false}
Response
{
  "data": {
    "toggleObservePost": {
      "_id": "abc123",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "abc123",
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": false,
      "emotions": [_PostEmotions],
      "emotionsCount": 123,
      "eventEnd": "xyz789",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "abc123",
      "eventStart": "abc123",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": true,
      "id": 4,
      "image": Image,
      "isObservedByMe": false,
      "language": "xyz789",
      "objectId": "xyz789",
      "observingUsersCount": 987,
      "pinned": true,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 123,
      "slug": "abc123",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": true,
      "viewedTeaserCount": 123,
      "visibility": "friends"
    }
  }
}

unblockUser

Description

Unblock a previously blocked user. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation unblockUser($id: ID!) {
  unblockUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "unblockUser": {
      "_id": "abc123",
      "about": "abc123",
      "activeCategories": ["abc123"],
      "actorId": "abc123",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": false,
      "categories": [Category],
      "commentedCount": 987,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": false,
      "following": [User],
      "followingCount": 987,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "xyz789",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "xyz789",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": false,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "xyz789"
    }
  }
}

unfollowUser

Description

Unfollow a user. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation unfollowUser($id: ID!) {
  unfollowUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "unfollowUser": {
      "_id": "xyz789",
      "about": "xyz789",
      "activeCategories": ["abc123"],
      "actorId": "xyz789",
      "allowEmbedIframes": false,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 123,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 123,
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": true,
      "email": "xyz789",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 987,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": true,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "xyz789",
      "name": "abc123",
      "publicKey": "xyz789",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 123,
      "showShoutsPublicly": true,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "xyz789",
      "updatedAt": "abc123"
    }
  }
}

unmuteGroup

Description

Unmute a previously muted group. Requires membership.

Response

Returns a Group

Arguments
Name Description
groupId - ID!

Example

Query
mutation unmuteGroup($groupId: ID!) {
  unmuteGroup(groupId: $groupId) {
    about
    actionRadius
    avatar {
      ...ImageFragment
    }
    categories {
      ...CategoryFragment
    }
    createdAt
    currentlyPinnedPostsCount
    deleted
    description
    descriptionExcerpt
    disabled
    groupType
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    isMutedByMe
    location {
      ...LocationFragment
    }
    locationName
    membersCount
    myRole
    name
    posts {
      ...PostFragment
    }
    slug
    updatedAt
  }
}
Variables
{"groupId": "4"}
Response
{
  "data": {
    "unmuteGroup": {
      "about": "xyz789",
      "actionRadius": "continental",
      "avatar": Image,
      "categories": [Category],
      "createdAt": "xyz789",
      "currentlyPinnedPostsCount": 987,
      "deleted": true,
      "description": "abc123",
      "descriptionExcerpt": "abc123",
      "disabled": false,
      "groupType": "closed",
      "id": "4",
      "inviteCodes": [InviteCode],
      "isMutedByMe": false,
      "location": Location,
      "locationName": "xyz789",
      "membersCount": 123,
      "myRole": "admin",
      "name": "xyz789",
      "posts": [Post],
      "slug": "xyz789",
      "updatedAt": "xyz789"
    }
  }
}

unmuteUser

Description

Unmute a previously muted user. Requires authentication.

Response

Returns a User

Arguments
Name Description
id - ID!

Example

Query
mutation unmuteUser($id: ID!) {
  unmuteUser(id: $id) {
    _id
    about
    activeCategories
    actorId
    allowEmbedIframes
    avatar {
      ...ImageFragment
    }
    badgeTrophies {
      ...BadgeFragment
    }
    badgeTrophiesCount
    badgeTrophiesSelected {
      ...BadgeFragment
    }
    badgeTrophiesUnused {
      ...BadgeFragment
    }
    badgeTrophiesUnusedCount
    badgeVerification {
      ...BadgeFragment
    }
    blocked
    categories {
      ...CategoryFragment
    }
    commentedCount
    comments {
      ...CommentFragment
    }
    contributions {
      ...PostFragment
    }
    contributionsCount
    createdAt
    deleted
    disabled
    email
    emailNotificationSettings {
      ...EmailNotificationSettingsFragment
    }
    emotions {
      ..._UserEmotionsFragment
    }
    followedBy {
      ...UserFragment
    }
    followedByCount
    followedByCurrentUser
    following {
      ...UserFragment
    }
    followingCount
    friends {
      ...UserFragment
    }
    friendsCount
    id
    inviteCodes {
      ...InviteCodeFragment
    }
    invited {
      ...UserFragment
    }
    invitedBy {
      ...UserFragment
    }
    isBlocked
    isMuted
    locale
    location {
      ...LocationFragment
    }
    locationName
    name
    publicKey
    redeemedInviteCode {
      ...InviteCodeFragment
    }
    roleName
    shouted {
      ...PostFragment
    }
    shoutedCount
    showShoutsPublicly
    slug
    socialMedia {
      ...SocialMediaFragment
    }
    termsAndConditionsAgreedAt
    termsAndConditionsAgreedVersion
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "unmuteUser": {
      "_id": "xyz789",
      "about": "abc123",
      "activeCategories": ["xyz789"],
      "actorId": "abc123",
      "allowEmbedIframes": true,
      "avatar": Image,
      "badgeTrophies": [Badge],
      "badgeTrophiesCount": 123,
      "badgeTrophiesSelected": [Badge],
      "badgeTrophiesUnused": [Badge],
      "badgeTrophiesUnusedCount": 987,
      "badgeVerification": Badge,
      "blocked": true,
      "categories": [Category],
      "commentedCount": 123,
      "comments": [Comment],
      "contributions": [Post],
      "contributionsCount": 987,
      "createdAt": "xyz789",
      "deleted": true,
      "disabled": false,
      "email": "abc123",
      "emailNotificationSettings": [
        EmailNotificationSettings
      ],
      "emotions": [_UserEmotions],
      "followedBy": [User],
      "followedByCount": 123,
      "followedByCurrentUser": true,
      "following": [User],
      "followingCount": 123,
      "friends": [User],
      "friendsCount": 123,
      "id": "4",
      "inviteCodes": [InviteCode],
      "invited": [User],
      "invitedBy": User,
      "isBlocked": false,
      "isMuted": false,
      "locale": "abc123",
      "location": Location,
      "locationName": "abc123",
      "name": "abc123",
      "publicKey": "abc123",
      "redeemedInviteCode": InviteCode,
      "roleName": "abc123",
      "shouted": [Post],
      "shoutedCount": 987,
      "showShoutsPublicly": true,
      "slug": "xyz789",
      "socialMedia": [SocialMedia],
      "termsAndConditionsAgreedAt": "xyz789",
      "termsAndConditionsAgreedVersion": "abc123",
      "updatedAt": "xyz789"
    }
  }
}

unpinGroupPost

Description

Remove a group pin. Restricted to those allowed to pin in that group.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation unpinGroupPost($id: ID!) {
  unpinGroupPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "unpinGroupPost": {
      "_id": "abc123",
      "activityId": "xyz789",
      "author": User,
      "categories": [Category],
      "clickedCount": 987,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "abc123",
      "createdAt": "abc123",
      "deleted": false,
      "disabled": false,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "xyz789",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "abc123",
      "eventStart": "abc123",
      "eventVenue": "xyz789",
      "group": Group,
      "groupPinned": false,
      "id": "4",
      "image": Image,
      "isObservedByMe": false,
      "language": "abc123",
      "objectId": "abc123",
      "observingUsersCount": 987,
      "pinned": true,
      "pinnedAt": "abc123",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 123,
      "slug": "abc123",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "xyz789",
      "viewedTeaserByCurrentUser": true,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

unpinPost

Description

Remove an instance-wide pin. Requires the post.pin permission.

Response

Returns a Post

Arguments
Name Description
id - ID!

Example

Query
mutation unpinPost($id: ID!) {
  unpinPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "unpinPost": {
      "_id": "abc123",
      "activityId": "abc123",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 987,
      "content": "xyz789",
      "createdAt": "xyz789",
      "deleted": false,
      "disabled": true,
      "emotions": [_PostEmotions],
      "emotionsCount": 987,
      "eventEnd": "xyz789",
      "eventIsOnline": true,
      "eventLocation": Location,
      "eventLocationName": "abc123",
      "eventStart": "abc123",
      "eventVenue": "abc123",
      "group": Group,
      "groupPinned": true,
      "id": "4",
      "image": Image,
      "isObservedByMe": false,
      "language": "xyz789",
      "objectId": "xyz789",
      "observingUsersCount": 987,
      "pinned": false,
      "pinnedAt": "abc123",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": true,
      "shoutedCount": 123,
      "slug": "xyz789",
      "sortDate": "xyz789",
      "tags": [Tag],
      "title": "xyz789",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "abc123",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 987,
      "visibility": "friends"
    }
  }
}

unpushPost

Description

Remove a post's push/boost. Requires the post.push permission.

Response

Returns a Post!

Arguments
Name Description
id - ID!

Example

Query
mutation unpushPost($id: ID!) {
  unpushPost(id: $id) {
    _id
    activityId
    author {
      ...UserFragment
    }
    categories {
      ...CategoryFragment
    }
    clickedCount
    comments {
      ...CommentFragment
    }
    commentsCount
    content
    createdAt
    deleted
    disabled
    emotions {
      ..._PostEmotionsFragment
    }
    emotionsCount
    eventEnd
    eventIsOnline
    eventLocation {
      ...LocationFragment
    }
    eventLocationName
    eventStart
    eventVenue
    group {
      ...GroupFragment
    }
    groupPinned
    id
    image {
      ...ImageFragment
    }
    isObservedByMe
    language
    objectId
    observingUsersCount
    pinned
    pinnedAt
    pinnedBy {
      ...UserFragment
    }
    postType
    relatedContributions {
      ...PostFragment
    }
    shoutedBy {
      ...UserFragment
    }
    shoutedByCurrentUser
    shoutedCount
    slug
    sortDate
    tags {
      ...TagFragment
    }
    title
    unreadCommentNotificationsByCurrentUser {
      ...NOTIFIEDFragment
    }
    unreadNotificationByCurrentUser {
      ...NOTIFIEDFragment
    }
    updatedAt
    viewedTeaserByCurrentUser
    viewedTeaserCount
    visibility
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "unpushPost": {
      "_id": "xyz789",
      "activityId": "xyz789",
      "author": User,
      "categories": [Category],
      "clickedCount": 123,
      "comments": [Comment],
      "commentsCount": 123,
      "content": "xyz789",
      "createdAt": "abc123",
      "deleted": true,
      "disabled": false,
      "emotions": [_PostEmotions],
      "emotionsCount": 123,
      "eventEnd": "abc123",
      "eventIsOnline": false,
      "eventLocation": Location,
      "eventLocationName": "xyz789",
      "eventStart": "abc123",
      "eventVenue": "xyz789",
      "group": Group,
      "groupPinned": false,
      "id": "4",
      "image": Image,
      "isObservedByMe": true,
      "language": "abc123",
      "objectId": "xyz789",
      "observingUsersCount": 123,
      "pinned": true,
      "pinnedAt": "xyz789",
      "pinnedBy": User,
      "postType": ["Article"],
      "relatedContributions": [Post],
      "shoutedBy": [User],
      "shoutedByCurrentUser": false,
      "shoutedCount": 987,
      "slug": "xyz789",
      "sortDate": "abc123",
      "tags": [Tag],
      "title": "abc123",
      "unreadCommentNotificationsByCurrentUser": [
        NOTIFIED
      ],
      "unreadNotificationByCurrentUser": NOTIFIED,
      "updatedAt": "xyz789",
      "viewedTeaserByCurrentUser": false,
      "viewedTeaserCount": 123,
      "visibility": "friends"
    }
  }
}

unshout

Description

Withdraw a shout from the given post or comment. Requires authentication.

Response

Returns a Boolean!

Arguments
Name Description
id - ID!
type - ShoutTypeEnum!

Example

Query
mutation unshout(
  $id: ID!,
  $type: ShoutTypeEnum!
) {
  unshout(
    id: $id,
    type: $type
  )
}
Variables
{"id": "4", "type": "Comment"}
Response
{"data": {"unshout": false}}

updateApiKey

Description

Rename one of your own API keys. Requires authentication.

Response

Returns an ApiKey!

Arguments
Name Description
id - ID!
name - String!

Example

Query
mutation updateApiKey(
  $id: ID!,
  $name: String!
) {
  updateApiKey(
    id: $id,
    name: $name
  ) {
    createdAt
    disabled
    disabledAt
    expiresAt
    id
    keyPrefix
    lastUsedAt
    name
    owner {
      ...UserFragment
    }
  }
}
Variables
{"id": 4, "name": "xyz789"}
Response
{
  "data": {
    "updateApiKey": {
      "createdAt": "xyz789",
      "disabled": false,
      "disabledAt": "abc123",
      "expiresAt": "abc123",
      "id": "4",
      "keyPrefix": "abc123",
      "lastUsedAt": "abc123",
      "name": "abc123",
      "owner": User
    }
  }
}

updateOnlineStatus

Description

Update the current user's online/away status. Requires authentication.

Response

Returns a Boolean!

Arguments
Name Description
status - OnlineStatus!

Example

Query
mutation updateOnlineStatus($status: OnlineStatus!) {
  updateOnlineStatus(status: $status)
}
Variables
{"status": "away"}
Response
{"data": {"updateOnlineStatus": true}}

updateRole

Description

Replace an existing role's permission bundle. Requires the role.manage permission.

Response

Returns a Role!

Arguments
Name Description
name - String!
permissions - [String!]!

Example

Query
mutation updateRole(
  $name: String!,
  $permissions: [String!]!
) {
  updateRole(
    name: $name,
    permissions: $permissions
  ) {
    _id
    memberCount
    name
    permissions
    protected
  }
}
Variables
{
  "name": "xyz789",
  "permissions": ["xyz789"]
}
Response
{
  "data": {
    "updateRole": {
      "_id": "xyz789",
      "memberCount": 987,
      "name": "abc123",
      "permissions": ["xyz789"],
      "protected": true
    }
  }
}

Subscriptions

chatMessageAdded

Description

Pushes newly added messages in the current user's rooms.

Response

Returns a Message

Example

Query
subscription chatMessageAdded {
  chatMessageAdded {
    _id
    author {
      ...UserFragment
    }
    avatar
    content
    createdAt
    date
    distributed
    files {
      ...FileFragment
    }
    id
    indexId
    room {
      ...RoomFragment
    }
    saved
    seen
    senderId
    updatedAt
    username
  }
}
Response
{
  "data": {
    "chatMessageAdded": {
      "_id": "xyz789",
      "author": User,
      "avatar": "xyz789",
      "content": "abc123",
      "createdAt": "xyz789",
      "date": "xyz789",
      "distributed": false,
      "files": [File],
      "id": "4",
      "indexId": 123,
      "room": Room,
      "saved": false,
      "seen": true,
      "senderId": "abc123",
      "updatedAt": "xyz789",
      "username": "abc123"
    }
  }
}

chatMessageStatusUpdated

Description

Pushes delivery/seen status changes for messages.

Response

Returns a ChatMessageStatusPayload

Example

Query
subscription chatMessageStatusUpdated {
  chatMessageStatusUpdated {
    _id
    messageIds
    roomId
    status
  }
}
Response
{
  "data": {
    "chatMessageStatusUpdated": {
      "_id": "abc123",
      "messageIds": ["xyz789"],
      "roomId": "4",
      "status": "abc123"
    }
  }
}

notificationAdded

Description

Pushes newly created notifications for the current user in real time.

Response

Returns an NOTIFIED

Example

Query
subscription notificationAdded {
  notificationAdded {
    createdAt
    from {
      ... on Comment {
        ...CommentFragment
      }
      ... on Group {
        ...GroupFragment
      }
      ... on Post {
        ...PostFragment
      }
    }
    id
    read
    reason
    relatedUser {
      ...UserFragment
    }
    to {
      ...UserFragment
    }
    updatedAt
  }
}
Response
{
  "data": {
    "notificationAdded": {
      "createdAt": "xyz789",
      "from": Comment,
      "id": 4,
      "read": true,
      "reason": "changed_group_member_role",
      "relatedUser": User,
      "to": User,
      "updatedAt": "abc123"
    }
  }
}

permissionsChanged

Description

Fires when a role's permissions or a user's role assignment changes.

Response

Returns a PermissionsChanged!

Example

Query
subscription permissionsChanged {
  permissionsChanged {
    _id
    roleName
  }
}
Response
{
  "data": {
    "permissionsChanged": {
      "_id": "abc123",
      "roleName": "xyz789"
    }
  }
}

policyChanged

Description

Fires whenever a policy value changes, so clients can update live.

Response

Returns a PolicyValueChanged!

Example

Query
subscription policyChanged {
  policyChanged {
    _id
    key
    value
  }
}
Response
{
  "data": {
    "policyChanged": {
      "_id": "abc123",
      "key": "apiKeysEnabled",
      "value": "xyz789"
    }
  }
}

roomUpdated

Description

Pushes a room whenever its state changes (e.g. a new message arrives).

Response

Returns a Room

Example

Query
subscription roomUpdated {
  roomUpdated {
    _id
    avatar
    createdAt
    group {
      ...GroupFragment
    }
    id
    isGroupRoom
    lastMessage {
      ...MessageFragment
    }
    lastMessageAt
    roomId
    roomName
    unreadCount
    updatedAt
    users {
      ...UserFragment
    }
  }
}
Response
{
  "data": {
    "roomUpdated": {
      "_id": "abc123",
      "avatar": "abc123",
      "createdAt": "xyz789",
      "group": Group,
      "id": 4,
      "isGroupRoom": false,
      "lastMessage": Message,
      "lastMessageAt": "xyz789",
      "roomId": "abc123",
      "roomName": "abc123",
      "unreadCount": 123,
      "updatedAt": "abc123",
      "users": [User]
    }
  }
}

videoCallParticipantCountChanged

Description

Pushes the updated participant count as users join or leave a group's video call.

Response

Returns a VideoCallParticipantCount!

Arguments
Name Description
groupId - ID!

Example

Query
subscription videoCallParticipantCountChanged($groupId: ID!) {
  videoCallParticipantCountChanged(groupId: $groupId) {
    count
    groupId
  }
}
Variables
{"groupId": 4}
Response
{
  "data": {
    "videoCallParticipantCountChanged": {
      "count": 987,
      "groupId": "4"
    }
  }
}

Types

ApiKey

Description

A personal API key that authenticates programmatic access on behalf of its owner. Only a non-secret prefix and metadata are stored; the secret itself is shown exactly once, at creation.

Fields
Field Name Description
createdAt - String!
disabled - Boolean! True once the key has been revoked.
disabledAt - String
expiresAt - String When the key expires, or null if it never expires.
id - ID!
keyPrefix - String! Non-secret leading segment of the key, used to identify it in listings.
lastUsedAt - String When the key last authenticated a request, or null if never used.
name - String! Human-readable label chosen by the owner.
owner - User
Arguments
filter - _UserFilter
Example
{
  "createdAt": "abc123",
  "disabled": false,
  "disabledAt": "xyz789",
  "expiresAt": "abc123",
  "id": "4",
  "keyPrefix": "abc123",
  "lastUsedAt": "xyz789",
  "name": "xyz789",
  "owner": User
}

ApiKeyUserSummary

Description

Aggregated per-user API-key usage, for the administration overview.

Fields
Field Name Description
activeCount - Int! Number of the user's currently active (non-revoked) keys.
commentsCount - Int!
lastActivity - String Most recent time any of the user's keys was used, or null.
postsCount - Int!
revokedCount - Int! Number of the user's revoked keys.
user - User!
Arguments
filter - _UserFilter
Example
{
  "activeCount": 123,
  "commentsCount": 987,
  "lastActivity": "abc123",
  "postsCount": 123,
  "revokedCount": 123,
  "user": User
}

ApiKeyWithSecret

Description

Returned exactly once, on creation — the only moment the full secret is exposed.

Fields
Field Name Description
apiKey - ApiKey!
secret - String! The full API key secret. Store it now; it cannot be retrieved again.
Example
{
  "apiKey": ApiKey,
  "secret": "abc123"
}

Badge

Description

A badge that can be attached to users — either a verification mark or an awardable trophy.

Fields
Field Name Description
createdAt - String
description - String!
icon - String! Identifier/URL of the badge's icon asset.
id - ID!
isDefault - Boolean! Whether this badge is the instance-wide default of its type.
rewarded - [User]! Users currently wearing this trophy badge.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
type - BadgeType!
verifies - [User]! Users whose verification this badge represents.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
Example
{
  "createdAt": "abc123",
  "description": "xyz789",
  "icon": "xyz789",
  "id": 4,
  "isDefault": false,
  "rewarded": [User],
  "type": "trophy",
  "verifies": [User]
}

BadgeType

Description

The purpose of a badge.

Values
Enum Value Description

trophy

An achievement a user can be awarded and choose to display.

verification

Marks a user as verified.
Example
"trophy"

Boolean

Description

The Boolean scalar type represents true or false.

Category

Description

A topical category that posts and groups can be filed under. Categories are a fixed, instance-configured taxonomy (unlike free-form tags).

Fields
Field Name Description
_id - String
createdAt - String
icon - String! Identifier of the category's icon.
id - ID!
name - String!
postCount - Int! Number of posts filed under this category.
posts - [Post]!
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
slug - String
updatedAt - String
Example
{
  "_id": "abc123",
  "createdAt": "abc123",
  "icon": "abc123",
  "id": 4,
  "name": "xyz789",
  "postCount": 123,
  "posts": [Post],
  "slug": "abc123",
  "updatedAt": "xyz789"
}

ChatMessageStatusPayload

Description

Real-time delivery/seen-status update for messages in a room.

Fields
Field Name Description
_id - String
messageIds - [String!]!
roomId - ID!
status - String!
Example
{
  "_id": "abc123",
  "messageIds": ["abc123"],
  "roomId": 4,
  "status": "xyz789"
}

ChatTarget

Description

A candidate recipient when starting a chat: a user or a group.

Types
Union Types

Group

User

Example
Group

Comment

Description

A comment written by a user in reply to a post.

Fields
Field Name Description
_id - String
activityId - String ActivityPub activity id, for federated comments.
author - User
Arguments
filter - _UserFilter
content - String! Comment body as rich text (HTML).
createdAt - String
deleted - Boolean True once the comment has been moderated away.
disabled - Boolean True once the comment has been disabled by a moderator.
id - ID!
isPostObservedByMe - Boolean! Whether the current user observes the post this comment belongs to.
post - Post The post this comment belongs to.
Arguments
filter - _PostFilter
postObservingUsersCount - Int! Number of users observing the post this comment belongs to.
shoutedByCurrentUser - Boolean! Whether the current user has shouted (endorsed) this comment.
shoutedCount - Int! Number of users who have shouted (endorsed) this comment.
updatedAt - String
Example
{
  "_id": "xyz789",
  "activityId": "abc123",
  "author": User,
  "content": "xyz789",
  "createdAt": "abc123",
  "deleted": true,
  "disabled": false,
  "id": 4,
  "isPostObservedByMe": false,
  "post": Post,
  "postObservingUsersCount": 123,
  "shoutedByCurrentUser": false,
  "shoutedCount": 987,
  "updatedAt": "xyz789"
}

Deletable

Description

Resources that can be deleted along with a user account.

Values
Enum Value Description

Comment

Post

Example
"Comment"

Donations

Description

Instance-wide donation campaign state, shown in the donation progress widget.

Fields
Field Name Description
_id - String
createdAt - String!
goal - Int! Fundraising target amount.
id - ID!
progress - Int! Amount raised so far.
showDonations - Boolean! Whether the donation widget is shown to users.
updatedAt - String!
Example
{
  "_id": "abc123",
  "createdAt": "xyz789",
  "goal": 987,
  "id": 4,
  "progress": 987,
  "showDonations": false,
  "updatedAt": "xyz789"
}

EMOTED

Description

Relationship representing a user's emotional reaction to a post.

Fields
Field Name Description
createdAt - String
emotion - Emotion
from - User The reacting user.
to - Post The post reacted to.
updatedAt - String
Example
{
  "createdAt": "abc123",
  "emotion": "angry",
  "from": User,
  "to": Post,
  "updatedAt": "abc123"
}

EffectivePermission

Description

A permission the current viewer effectively holds, carrying its catalog group so the webapp can gate UI areas by group (e.g. show the admin area for ANY administration-group permission) without a hard-coded key list.

Fields
Field Name Description
_id - String
group - String!
key - String!
Example
{
  "_id": "xyz789",
  "group": "abc123",
  "key": "abc123"
}

EmailAddress

Description

An email address belonging to a user, with its verification state.

Fields
Field Name Description
createdAt - String
email - ID!
verifiedAt - String When the address was verified, or null if still unverified.
Example
{
  "createdAt": "abc123",
  "email": 4,
  "verifiedAt": "abc123"
}

EmailNotificationSettings

Description

A user's email notification toggles for one category (post, chat or group).

Fields
Field Name Description
settings - [EmailNotificationSettingsOption]
type - EmailNotificationSettingsType
Example
{
  "settings": [EmailNotificationSettingsOption],
  "type": "chat"
}

EmailNotificationSettingsInput

Description

Input toggling a single email notification setting on or off.

Fields
Input Field Description
name - EmailNotificationSettingsName
value - Boolean
Example
{"name": "chatMessage", "value": true}

EmailNotificationSettingsName

Description

An individual email-notification toggle, identifying the event that triggers an email.

Values
Enum Value Description

chatMessage

The user received a direct chat message.

commentOnObservedPost

Someone commented on a post the user observes.

followingUsers

A user the current user follows published a post.

groupMemberJoined

A user joined a group the user administrates.

groupMemberLeft

A user left a group the user administrates.

groupMemberRemoved

A member was removed from a group the user administrates.

groupMemberRoleChanged

A member's role changed in a group the user administrates.

mention

The user was mentioned in a post or comment.

postInGroup

A new post was created in a group the user is a member of.
Example
"chatMessage"

EmailNotificationSettingsOption

Description

A single email notification toggle and its current value.

Fields
Field Name Description
name - EmailNotificationSettingsName
value - Boolean
Example
{"name": "chatMessage", "value": false}

EmailNotificationSettingsType

Description

The category a set of email-notification toggles belongs to.

Values
Enum Value Description

chat

Notifications about direct chat messages.

group

Notifications about group membership events.

post

Notifications about posts and comments.
Example
"chat"

Embed

Description

oEmbed-style metadata scraped from an external URL, used to render link previews.

Fields
Field Name Description
audio - String
author - String
date - String
description - String
html - String Embeddable HTML fragment (e.g. a player iframe), when the provider offers one.
image - String URL of a representative preview image.
lang - String Detected content language.
publisher - String
sources - [String]
title - String
type - String The oEmbed resource type (e.g. link, video, photo, rich).
url - String
video - String
Example
{
  "audio": "xyz789",
  "author": "abc123",
  "date": "xyz789",
  "description": "xyz789",
  "html": "xyz789",
  "image": "abc123",
  "lang": "xyz789",
  "publisher": "xyz789",
  "sources": ["abc123"],
  "title": "xyz789",
  "type": "xyz789",
  "url": "xyz789",
  "video": "xyz789"
}

Emotion

Description

An emotional reaction a user can leave on a post.

Values
Enum Value Description

angry

cry

funny

happy

surprised

Example
"angry"

FILED

Description

Relationship recording that a user filed a moderation report against a resource, with the stated reason.

Fields
Field Name Description
createdAt - String!
reasonCategory - ReasonCategory!
reasonDescription - String! Free-text explanation the reporter provided.
submitter - User The user who filed the report.
Arguments
filter - _UserFilter
Example
{
  "createdAt": "abc123",
  "reasonCategory": "advert_products_services_commercial",
  "reasonDescription": "xyz789",
  "submitter": User
}

File

Description

A file attached to a chat message.

Fields
Field Name Description
_id - String
duration - Float Duration in seconds for audio/video files.
extension - String
name - String
type - String MIME type of the file.
url - ID! The file's URL, which also serves as its identifier.
Example
{
  "_id": "abc123",
  "duration": 123.45,
  "extension": "abc123",
  "name": "xyz789",
  "type": "abc123",
  "url": 4
}

FileInput

Description

Input for a file to attach to a chat message. The file itself must be provided as upload (attaching without it is rejected); the remaining fields are its metadata.

Fields
Input Field Description
duration - Float
extension - String
name - String
type - String
upload - Upload The file to upload. Required — the resolver rejects an attachment without it.
Example
{
  "duration": 987.65,
  "extension": "abc123",
  "name": "abc123",
  "type": "xyz789",
  "upload": Upload
}

FiledReport

Description

The result of filing a report, echoing the reason and linking to the created report.

Fields
Field Name Description
_id - String
createdAt - String!
reasonCategory - ReasonCategory!
reasonDescription - String!
reportId - ID!
resource - ReportedResource!
Example
{
  "_id": "xyz789",
  "createdAt": "xyz789",
  "reasonCategory": "advert_products_services_commercial",
  "reasonDescription": "xyz789",
  "reportId": 4,
  "resource": Comment
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Group

Description

A group: a space where members share posts, chat and optionally hold video calls. Discoverability and joining are governed by its groupType.

Fields
Field Name Description
about - String Short statement of the group's goal.
actionRadius - GroupActionRadius!
avatar - Image
Arguments
filter - _ImageFilter
categories - [Category]
Arguments
filter - _CategoryFilter
first - Int
offset - Int
createdAt - String! ISO 8601 date-time string of creation.
currentlyPinnedPostsCount - Int! Number of posts currently pinned within this group.
deleted - Boolean
description - String! Full group description (rich text).
descriptionExcerpt - String! Plain-text excerpt of the description, for previews.
disabled - Boolean
groupType - GroupType!
id - ID!
inviteCodes - [InviteCode]! Invite codes to this group the current user has generated.
isMutedByMe - Boolean! Whether the current user has muted this group.
location - Location
locationName - String
membersCount - Int! Number of members, excluding those with a pending join request.
myRole - GroupMemberRole The current user's role in this group, or null if they are not a member.
name - String! The group's title.
posts - [Post]
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
slug - String! URL-safe unique handle for the group.
updatedAt - String! ISO 8601 date-time string of the last update.
Example
{
  "about": "abc123",
  "actionRadius": "continental",
  "avatar": Image,
  "categories": [Category],
  "createdAt": "xyz789",
  "currentlyPinnedPostsCount": 987,
  "deleted": true,
  "description": "abc123",
  "descriptionExcerpt": "abc123",
  "disabled": false,
  "groupType": "closed",
  "id": "4",
  "inviteCodes": [InviteCode],
  "isMutedByMe": true,
  "location": Location,
  "locationName": "abc123",
  "membersCount": 987,
  "myRole": "admin",
  "name": "abc123",
  "posts": [Post],
  "slug": "abc123",
  "updatedAt": "abc123"
}

GroupActionRadius

Description

The geographic reach a group intends its activities to have.

Values
Enum Value Description

continental

global

interplanetary

Tongue-in-cheek maximum reach: beyond planet Earth.

national

regional

Example
"continental"

GroupMember

Description

A group member paired with their membership relationship (role, join date).

Fields
Field Name Description
_id - String
membership - MEMBER_OF
Arguments
filter - _MEMBER_OFFilter
user - User
Arguments
filter - _UserFilter
Example
{
  "_id": "abc123",
  "membership": MEMBER_OF,
  "user": User
}

GroupMemberRole

Description

A user's role within a group, in ascending order of privilege.

Values
Enum Value Description

admin

Can manage members and group settings.

owner

Full control over the group, including deleting it; there is exactly one owner.

pending

Membership requested but not yet approved (closed groups); not counted as a member.

usual

Regular member.
Example
"admin"

GroupType

Description

Determines a group's discoverability and how users become members.

Values
Enum Value Description

closed

Anyone can find the group, but joining requires approval by a group admin/owner.

hidden

The group is unlisted; it can only be found and joined via invite.

public

Anyone can find the group and join without approval.
Example
"closed"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

Image

Description

An image asset (avatar, hero image, etc.) with rendering metadata.

Fields
Field Name Description
_id - String
alt - String Alternative text for accessibility.
aspectRatio - Float Width-to-height ratio, used to reserve layout space before load.
sensitive - Boolean Whether the image is flagged as sensitive and should be blurred by default.
transform - String URL of a variant resized to the requested width/height.
Arguments
height - Int
width - Int
type - String MIME type of the image.
url - ID! The image's URL, which also serves as its identifier.
Example
{
  "_id": "xyz789",
  "alt": "xyz789",
  "aspectRatio": 123.45,
  "sensitive": false,
  "transform": "xyz789",
  "type": "abc123",
  "url": 4
}

ImageInput

Description

Input for uploading or updating an image. Provide upload to set a new file.

Fields
Input Field Description
alt - String
aspectRatio - Float
sensitive - Boolean
type - String
upload - Upload
Example
{
  "alt": "xyz789",
  "aspectRatio": 123.45,
  "sensitive": true,
  "type": "xyz789",
  "upload": Upload
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

InviteCode

Description

An invite code. A personal code lets its holder register on the instance; a group code additionally grants membership in a specific group. May be limited by an expiry and a redemption limit.

Fields
Field Name Description
_id - String
code - ID! The code string, which also serves as its identifier.
comment - String Free-form note the issuer attached to the code.
createdAt - String!
expiresAt - String When the code expires, or null if it never expires.
generatedBy - User The user who issued the code.
Arguments
filter - _UserFilter
invitedTo - Group The group this code invites into, or null for a personal (registration-only) code.
isValid - Boolean! Whether the code can still be redeemed (not expired, invalidated, or over its redemption limit).
redeemedBy - [User] Users who have redeemed this code.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
redeemedByCount - Int!
Example
{
  "_id": "abc123",
  "code": 4,
  "comment": "abc123",
  "createdAt": "abc123",
  "expiresAt": "abc123",
  "generatedBy": User,
  "invitedTo": Group,
  "isValid": true,
  "redeemedBy": [User],
  "redeemedByCount": 123
}

Location

Description

A geographic place (city, region, country, …) linked to users, groups and events. Places nest via parent, forming a hierarchy up to the country level.

Fields
Field Name Description
distanceToMe - Int Distance in kilometres from the current user's location. Requires authentication.
id - ID!
lat - Float Latitude in decimal degrees (WGS84).
lng - Float Longitude in decimal degrees (WGS84).
name - String! Localized place name. Falls back through the requested lang, the instance default language, and finally the raw name/id.
Arguments
lang - String
parent - Location The enclosing place one level up in the hierarchy.
type - String! The place's granularity (e.g. country, region, place).
Example
{
  "distanceToMe": 123,
  "id": 4,
  "lat": 987.65,
  "lng": 123.45,
  "name": "xyz789",
  "parent": Location,
  "type": "abc123"
}

LocationMapBox

Description

A geocoding suggestion returned by the MapBox-backed place search.

Fields
Field Name Description
_id - String
id - ID!
place_name - String!
Example
{
  "_id": "abc123",
  "id": 4,
  "place_name": "abc123"
}

MEMBER_OF

Description

Relationship carrying a user's membership in a group, including their role and when it began.

Fields
Field Name Description
_id - String
createdAt - String!
role - GroupMemberRole!
updatedAt - String!
Example
{
  "_id": "xyz789",
  "createdAt": "xyz789",
  "role": "admin",
  "updatedAt": "abc123"
}

Message

Description

A single chat message within a room.

Fields
Field Name Description
_id - String
author - User!
Arguments
filter - _UserFilter
avatar - String Avatar URL of the sending user.
content - String
createdAt - String
date - String! Alias of createdAt; prefer createdAt in new code.
distributed - Boolean Whether the message has been distributed to recipients (delivery-status flag).
files - [File]! Files attached to the message.
Arguments
filter - _FileFilter
first - Int
offset - Int
orderBy - [_FileOrdering]
id - ID!
indexId - Int! Monotonically increasing index of the message within its room, used for ordering and paging.
room - Room!
Arguments
filter - _RoomFilter
saved - Boolean Whether the message has been persisted (delivery-status flag).
seen - Boolean Whether the current user has seen the message (always true for messages they sent).
senderId - String! Id of the sending user.
updatedAt - String
username - String! Display name of the sending user.
Example
{
  "_id": "xyz789",
  "author": User,
  "avatar": "xyz789",
  "content": "xyz789",
  "createdAt": "abc123",
  "date": "abc123",
  "distributed": true,
  "files": [File],
  "id": 4,
  "indexId": 123,
  "room": Room,
  "saved": false,
  "seen": true,
  "senderId": "xyz789",
  "updatedAt": "abc123",
  "username": "abc123"
}

NOTIFIED

Description

Relationship representing a notification delivered to a user about some source activity.

Fields
Field Name Description
createdAt - String!
from - NotificationSource The post, comment or group the notification is about.
id - ID!
read - Boolean Whether the recipient has read the notification.
reason - NotificationReason
relatedUser - User The user who triggered the notification, when applicable.
Arguments
filter - _UserFilter
to - User The recipient of the notification.
Arguments
filter - _UserFilter
updatedAt - String!
Example
{
  "createdAt": "abc123",
  "from": Comment,
  "id": "4",
  "read": false,
  "reason": "changed_group_member_role",
  "relatedUser": User,
  "to": User,
  "updatedAt": "xyz789"
}

NotificationOrdering

Description

Ordering options for the notifications query.

Values
Enum Value Description

createdAt_asc

createdAt_desc

updatedAt_asc

updatedAt_desc

Example
"createdAt_asc"

NotificationReason

Description

Why a notification was created.

Values
Enum Value Description

changed_group_member_role

commented_on_post

followed_user_posted

A user the recipient follows published a post.

mentioned_in_comment

mentioned_in_post

post_in_group

A new post was created in a group the recipient belongs to.

removed_user_from_group

user_joined_group

user_left_group

Example
"changed_group_member_role"

NotificationSource

Description

The kind of node a notification originates from.

Types
Union Types

Comment

Group

Post

Example
Comment

OnlineStatus

Description

A user's self-reported presence state.

Values
Enum Value Description

away

online

Example
"away"

Permission

Description

A single entry in the permission catalog: a grantable right and its metadata.

Fields
Field Name Description
_id - String
available - Boolean! Whether the permission is effective right now for the requesting viewer's config/policy. False ⇒ the feature is not configured/enabled; the admin UI disables granting it.
description - String!
gatedBy - String The runtime feature gate this permission depends on (e.g. videoCall, apiKeys), or null when it is always effective.
group - String!
key - String!
Example
{
  "_id": "xyz789",
  "available": true,
  "description": "abc123",
  "gatedBy": "xyz789",
  "group": "abc123",
  "key": "abc123"
}

PermissionsChanged

Description

A signal that effective permissions may have changed (a role's permission set, or a user's role assignment). Clients refetch their own myPermissions on receipt — the payload carries only the affected role name, no actor (Datensparsamkeit).

Fields
Field Name Description
_id - String
roleName - String
Example
{
  "_id": "abc123",
  "roleName": "abc123"
}

PinnedPostCounts

Description

Instance-wide pinned-post counters.

Fields
Field Name Description
_id - String
currentlyPinnedPosts - Int!
Example
{
  "_id": "xyz789",
  "currentlyPinnedPosts": 987
}

Policy

Description

Instance-wide configuration flags governing registration, moderation features and UI toggles. Which keys a caller actually receives depends on their permissions.

Fields
Field Name Description
_id - String
apiKeysEnabled - Boolean Whether personal API keys are enabled.
apiKeysMaxPerUser - Int Maximum number of API keys a user may hold.
askForRealName - Boolean! Whether the registration form asks for the user's real name.
badgesEnabled - Boolean! Whether badges are enabled.
categoriesActive - Boolean! Whether the category taxonomy is enabled.
inviteCodesGroupPerUser - Int Maximum number of group invite codes a user may hold per group.
inviteCodesPersonalPerUser - Int Maximum number of personal invite codes a user may hold.
inviteLinkLimit - Int Maximum number of redemptions per invite link, or null for unlimited.
inviteRegistration - Boolean! Whether registration via invite code is enabled.
maxGroupPinnedPosts - Int Maximum number of pinned posts per group.
maxPinnedPosts - Int Maximum number of instance-wide pinned posts.
publicRegistration - Boolean! Whether anyone may register without an invite.
requireLocation - Boolean! Whether a location is mandatory during registration.
showContentFilterHeaderMenu - Boolean! Whether the content filter appears in the header menu.
showContentFilterMasonryGrid - Boolean! Whether the content filter appears above the masonry grid.
showGroupButtonInHeader - Boolean! Whether the groups button is shown in the header.
Example
{
  "_id": "abc123",
  "apiKeysEnabled": false,
  "apiKeysMaxPerUser": 987,
  "askForRealName": false,
  "badgesEnabled": true,
  "categoriesActive": false,
  "inviteCodesGroupPerUser": 123,
  "inviteCodesPersonalPerUser": 123,
  "inviteLinkLimit": 987,
  "inviteRegistration": true,
  "maxGroupPinnedPosts": 123,
  "maxPinnedPosts": 123,
  "publicRegistration": false,
  "requireLocation": true,
  "showContentFilterHeaderMenu": false,
  "showContentFilterMasonryGrid": false,
  "showGroupButtonInHeader": true
}

PolicyChangeEvent

Description

An applied change to a single policy key, with audit metadata.

Fields
Field Name Description
_id - String
actor - String!
key - PolicyKey!
timestamp - String!
value - String!
Example
{
  "_id": "abc123",
  "actor": "abc123",
  "key": "apiKeysEnabled",
  "timestamp": "abc123",
  "value": "xyz789"
}

PolicyDefaults

Description

The configured policy defaults together with audit info about the last change.

Fields
Field Name Description
_id - String
defaults - Policy!
Arguments
filter - _PolicyFilter
lastChange - PolicyLastChange
Arguments
Example
{
  "_id": "abc123",
  "defaults": Policy,
  "lastChange": PolicyLastChange
}

PolicyKey

Values
Enum Value Description

apiKeysEnabled

apiKeysMaxPerUser

askForRealName

badgesEnabled

categoriesActive

inviteCodesGroupPerUser

inviteCodesPersonalPerUser

inviteLinkLimit

inviteRegistration

maxGroupPinnedPosts

maxPinnedPosts

publicRegistration

requireLocation

showContentFilterHeaderMenu

showContentFilterMasonryGrid

showGroupButtonInHeader

Example
"apiKeysEnabled"

PolicyLastChange

Description

Who last changed a policy value, and when.

Fields
Field Name Description
_id - String
actor - String!
timestamp - String!
Example
{
  "_id": "abc123",
  "actor": "xyz789",
  "timestamp": "xyz789"
}

PolicyValueChanged

Description

A policy key/value change, broadcast to subscribers.

Fields
Field Name Description
_id - String
key - PolicyKey!
value - String!
Example
{
  "_id": "xyz789",
  "key": "apiKeysEnabled",
  "value": "abc123"
}

Post

Description

A contribution — an article or event — written by a user, optionally within a group.

Fields
Field Name Description
_id - String
activityId - String ActivityPub activity id, for federated posts.
author - User
Arguments
filter - _UserFilter
categories - [Category]
Arguments
filter - _CategoryFilter
first - Int
offset - Int
clickedCount - Int! Number of times the post has been opened.
comments - [Comment]!
Arguments
filter - _CommentFilter
first - Int
offset - Int
orderBy - [_CommentOrdering]
commentsCount - Int! Number of visible (non-deleted, non-disabled) comments.
content - String! Post body as rich text (HTML).
createdAt - String ISO 8601 date-time string of creation.
deleted - Boolean True once the post has been moderated away.
disabled - Boolean True once the post has been disabled by a moderator.
emotions - [_PostEmotions]
Arguments
emotionsCount - Int! Total number of emotional reactions on the post.
eventEnd - String Event end time (Event posts).
eventIsOnline - Boolean Whether the event takes place online (Event posts).
eventLocation - Location Structured location of the event (Event posts).
eventLocationName - String Name of the event's location (Event posts).
eventStart - String Event start time (Event posts).
eventVenue - String Venue/room of the event (Event posts).
group - Group The group this post belongs to, or null for a public/timeline post.
groupPinned - Boolean Whether the post is pinned within its group.
id - ID!
image - Image The post's hero image.
Arguments
filter - _ImageFilter
isObservedByMe - Boolean! Whether the current user observes this post (receives notifications about its comments).
language - String Content language as an IETF/ISO code (e.g. en, de).
objectId - String ActivityPub object id, for federated posts.
observingUsersCount - Int! Number of users observing this post.
pinned - Boolean Whether the post is pinned instance-wide.
pinnedAt - String When the post was pinned instance-wide, or null if not pinned.
pinnedBy - User The user who pinned the post instance-wide.
Arguments
filter - _UserFilter
postType - [PostType] The post's type(s), derived from its Neo4j labels (e.g. Article, Event).
relatedContributions - [Post]! Up to 10 other posts sharing a tag or category with this one.
Arguments
first - Int
offset - Int
orderBy - [_PostOrdering]
shoutedBy - [User]!
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
shoutedByCurrentUser - Boolean! Has the currently logged in user shouted that post?
shoutedCount - Int! Number of users who have shouted (endorsed) this post.
slug - String! URL-safe unique handle for the post.
sortDate - String Date used to sort the post in feeds (may differ from createdAt, e.g. for events).
tags - [Tag]!
Arguments
filter - _TagFilter
first - Int
offset - Int
orderBy - [_TagOrdering]
title - String!
unreadCommentNotificationsByCurrentUser - [NOTIFIED!]! Unread notifications for comments in this post targeting the currently logged in user.
unreadNotificationByCurrentUser - NOTIFIED Unread notification for this post targeting the currently logged in user, or null.
updatedAt - String ISO 8601 date-time string of the last update.
viewedTeaserByCurrentUser - Boolean! Whether the current user has viewed the post's teaser.
viewedTeaserCount - Int! Number of times the post's teaser has been viewed.
visibility - Visibility
Example
{
  "_id": "xyz789",
  "activityId": "abc123",
  "author": User,
  "categories": [Category],
  "clickedCount": 987,
  "comments": [Comment],
  "commentsCount": 987,
  "content": "xyz789",
  "createdAt": "abc123",
  "deleted": false,
  "disabled": false,
  "emotions": [_PostEmotions],
  "emotionsCount": 987,
  "eventEnd": "abc123",
  "eventIsOnline": false,
  "eventLocation": Location,
  "eventLocationName": "abc123",
  "eventStart": "abc123",
  "eventVenue": "abc123",
  "group": Group,
  "groupPinned": true,
  "id": "4",
  "image": Image,
  "isObservedByMe": true,
  "language": "xyz789",
  "objectId": "xyz789",
  "observingUsersCount": 987,
  "pinned": true,
  "pinnedAt": "xyz789",
  "pinnedBy": User,
  "postType": ["Article"],
  "relatedContributions": [Post],
  "shoutedBy": [User],
  "shoutedByCurrentUser": false,
  "shoutedCount": 987,
  "slug": "xyz789",
  "sortDate": "xyz789",
  "tags": [Tag],
  "title": "xyz789",
  "unreadCommentNotificationsByCurrentUser": [NOTIFIED],
  "unreadNotificationByCurrentUser": NOTIFIED,
  "updatedAt": "abc123",
  "viewedTeaserByCurrentUser": true,
  "viewedTeaserCount": 123,
  "visibility": "friends"
}

PostType

Description

The kind of content a post represents. Stored as an additional Neo4j node label.

Values
Enum Value Description

Article

A regular text article.

Event

An event with a date, and optionally a location or online link.
Example
"Article"

REVIEWED

Description

Relationship recording a moderator's decision on a report.

Fields
Field Name Description
closed - Boolean! Whether the moderator closed the report.
createdAt - String!
disable - Boolean! Whether the moderator disabled (hid) the reported resource.
moderator - User The moderator who made the decision.
Arguments
filter - _UserFilter
report - Report
resource - ReviewedResource
updatedAt - String!
Example
{
  "closed": true,
  "createdAt": "xyz789",
  "disable": true,
  "moderator": User,
  "report": Report,
  "resource": Comment,
  "updatedAt": "xyz789"
}

ReasonCategory

Description

Reason a report was filed. This list equals the strings of an array in file webapp/constants/modals.js.

Values
Enum Value Description

advert_products_services_commercial

Unsolicited advertising of products, services or commercial offers.

criminal_behavior_violation_german_law

Criminal behaviour or violation of (German) law.

discrimination_etc

Discrimination, racism, sexism and the like.

doxing

Publishing private/identifying information (doxing).

glorific_trivia_of_cruel_inhuman_acts

Glorification or trivialisation of cruel or inhuman acts.

intentional_intimidation_stalking_persecution

Intentional intimidation, stalking or persecution.

other

None of the listed categories fits.

pornographic_content_links

Pornographic content or links to it.
Example
"advert_products_services_commercial"

Report

Description

A moderation report about a user, post or comment, aggregating all filings and reviews for that resource.

Fields
Field Name Description
closed - Boolean! Whether the report has been closed by a moderator.
createdAt - String!
disable - Boolean! Whether the reported resource is currently disabled (hidden).
filed - [FILED]! All filings submitted against the resource.
id - ID!
resource - ReportedResource!
reviewed - [REVIEWED]! All moderator reviews of the report.
rule - ReportRule!
updatedAt - String!
Example
{
  "closed": true,
  "createdAt": "abc123",
  "disable": false,
  "filed": [FILED],
  "id": "4",
  "resource": Comment,
  "reviewed": [REVIEWED],
  "rule": "latestReviewUpdatedAtRules",
  "updatedAt": "xyz789"
}

ReportOrdering

Description

Ordering options for the reports query.

Values
Enum Value Description

createdAt_asc

createdAt_desc

Example
"createdAt_asc"

ReportRule

Description

The rule set by which a report's aggregate state is derived.

Values
Enum Value Description

latestReviewUpdatedAtRules

Example
"latestReviewUpdatedAtRules"

ReportedResource

Description

The kind of node a report can target.

Types
Union Types

Comment

Post

User

Example
Comment

ReviewedResource

Description

The kind of node a moderation decision can apply to.

Types
Union Types

Comment

Post

User

Example
Comment

Role

Description

A named bundle of permissions that can be assigned to users.

Fields
Field Name Description
_id - String
memberCount - Int Number of users currently assigned this role.
name - String!
permissions - [String!]! The permission keys granted by this role.
protected - Boolean! Whether the role is a protected built-in that cannot be deleted.
Example
{
  "_id": "xyz789",
  "memberCount": 987,
  "name": "xyz789",
  "permissions": ["abc123"],
  "protected": false
}

Room

Description

A chat room, either a one-to-one direct conversation between two users or the shared chat room of a group.

Fields
Field Name Description
_id - String
avatar - String Display avatar URL: the group's avatar for a group room, otherwise the other participant's avatar.
createdAt - String
group - Group The group this room belongs to, or null for a direct room.
id - ID!
isGroupRoom - Boolean! True if this is a group room, false for a direct room.
lastMessage - Message The most recent message in the room.
lastMessageAt - String Timestamp of the most recent message, for sorting the room list.
roomId - String! Alias of id; prefer id in new code.
roomName - String! Display name: the group's name for a group room, otherwise the other participant's name.
unreadCount - Int Count unread messages, excluding those from blocked/muted senders.
updatedAt - String
users - [User]! Participants of the room.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
Example
{
  "_id": "abc123",
  "avatar": "abc123",
  "createdAt": "xyz789",
  "group": Group,
  "id": "4",
  "isGroupRoom": false,
  "lastMessage": Message,
  "lastMessageAt": "xyz789",
  "roomId": "abc123",
  "roomName": "xyz789",
  "unreadCount": 123,
  "updatedAt": "abc123",
  "users": [User]
}

SearchResult

Description

A single hit in the global search, which can be any searchable entity.

Types
Union Types

Group

Post

Tag

User

Example
Group

ShoutTypeEnum

Description

The kind of node that can be shouted (endorsed/boosted).

Values
Enum Value Description

Comment

Post

Example
"Comment"

SocialMedia

Description

A link to an external social-media profile, shown on a user's profile.

Fields
Field Name Description
id - ID!
ownedBy - User!
Arguments
filter - _UserFilter
url - String
Example
{
  "id": 4,
  "ownedBy": User,
  "url": "abc123"
}

Statistics

Description

Aggregate counts describing the whole instance.

Fields
Field Name Description
badgesDisplayed - Int! Number of trophy badges users have chosen to display.
badgesRewarded - Int!
chatMessages - Int!
chatRooms - Int!
comments - Int!
emails - Int! Number of registered email addresses.
follows - Int!
groups - Int!
inviteCodes - Int!
inviteCodesExpired - Int!
inviteCodesRedeemed - Int!
invites - Int!
locations - Int!
notifications - Int!
posts - Int!
reports - Int!
shouts - Int!
tags - Int!
users - Int! Number of active (non-deleted) user accounts.
usersDeleted - Int!
usersVerified - Int!
Example
{
  "badgesDisplayed": 123,
  "badgesRewarded": 123,
  "chatMessages": 123,
  "chatRooms": 987,
  "comments": 123,
  "emails": 123,
  "follows": 987,
  "groups": 987,
  "inviteCodes": 987,
  "inviteCodesExpired": 987,
  "inviteCodesRedeemed": 987,
  "invites": 123,
  "locations": 123,
  "notifications": 987,
  "posts": 123,
  "reports": 123,
  "shouts": 123,
  "tags": 123,
  "users": 123,
  "usersDeleted": 123,
  "usersVerified": 987
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

Tag

Description

A free-form hashtag. The tag's text is its id. Tags are created implicitly from post content (unlike the curated Category taxonomy).

Fields
Field Name Description
_id - String
deleted - Boolean
disabled - Boolean
id - ID!
taggedCount - Int! Total number of posts carrying this tag.
taggedCountUnique - Int! Number of distinct authors who have used this tag.
taggedPosts - [Post]!
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
Example
{
  "_id": "abc123",
  "deleted": true,
  "disabled": true,
  "id": 4,
  "taggedCount": 123,
  "taggedCountUnique": 123,
  "taggedPosts": [Post]
}

Upload

Description

The Upload scalar type represents a file upload, sent as multipart/form-data per the GraphQL multipart request spec.

Example
Upload

User

Description

A person's account. Most fields are readable by any authenticated user; a few (email, notification and invite settings) are restricted to the owner or to admins.

Fields
Field Name Description
_id - String
about - String The user's profile bio.
activeCategories - [String] Category slugs the user has activated as their content filter.
actorId - String ActivityPub actor id, for federated users.
allowEmbedIframes - Boolean Whether the user permits embedded iframes in content they view.
avatar - Image
Arguments
filter - _ImageFilter
badgeTrophies - [Badge]! All trophy badges awarded to the user.
badgeTrophiesCount - Int!
badgeTrophiesSelected - [Badge!]! Trophy badges the user has chosen to display, in slot order.
badgeTrophiesUnused - [Badge]! Awarded trophy badges the user is not currently displaying.
badgeTrophiesUnusedCount - Int!
badgeVerification - Badge! The user's verification badge.
blocked - Boolean! Whether there is a block in either direction between this user and the current user.
categories - [Category]
Arguments
filter - _CategoryFilter
first - Int
offset - Int
commentedCount - Int!
comments - [Comment]! Comments written by this user.
Arguments
filter - _CommentFilter
first - Int
offset - Int
orderBy - [_CommentOrdering]
contributions - [Post]! Posts written by this user.
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
contributionsCount - Int!
createdAt - String ISO 8601 date-time string of registration.
deleted - Boolean True once the account has been deleted (soft delete).
disabled - Boolean True while the account is disabled/deactivated.
email - String! The user's primary email address. Visible only to the owner or with user.email.readAny.
emailNotificationSettings - [EmailNotificationSettings]! The user's email notification settings. Visible only to the owner.
emotions - [_UserEmotions]
Arguments
followedBy - [User]! Users who follow this user.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
followedByCount - Int!
followedByCurrentUser - Boolean! Is the currently logged in user following that user?
following - [User]! Users this user follows.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
followingCount - Int!
friends - [User]!
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
friendsCount - Int!
id - ID!
inviteCodes - [InviteCode]! personal inviteCodes the user has generated
invited - [User] Users this user has invited.
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
invitedBy - User The user who invited this user, if any.
Arguments
filter - _UserFilter
isBlocked - Boolean! Whether this user is blocked by the current user.
isMuted - Boolean! Whether this user is muted by the current user.
locale - String The user's preferred UI language.
location - Location
locationName - String
name - String
publicKey - String The user's public key, for federation/verification.
redeemedInviteCode - InviteCode The invite code this user redeemed on registration, if any.
Arguments
roleName - String The user's single dynamic role name (HAS_ROLE), incl. custom roles. Visible with role.manage.
shouted - [Post]! Posts this user has shouted (endorsed).
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
shoutedCount - Int!
showShoutsPublicly - Boolean Whether the user's shouts are shown publicly on their profile.
slug - String! URL-safe unique handle for the user.
socialMedia - [SocialMedia]!
termsAndConditionsAgreedAt - String When the user last agreed to the terms & conditions.
termsAndConditionsAgreedVersion - String Version of the terms & conditions the user last agreed to.
updatedAt - String ISO 8601 date-time string of the last update.
Example
{
  "_id": "abc123",
  "about": "abc123",
  "activeCategories": ["xyz789"],
  "actorId": "abc123",
  "allowEmbedIframes": true,
  "avatar": Image,
  "badgeTrophies": [Badge],
  "badgeTrophiesCount": 987,
  "badgeTrophiesSelected": [Badge],
  "badgeTrophiesUnused": [Badge],
  "badgeTrophiesUnusedCount": 987,
  "badgeVerification": Badge,
  "blocked": false,
  "categories": [Category],
  "commentedCount": 987,
  "comments": [Comment],
  "contributions": [Post],
  "contributionsCount": 987,
  "createdAt": "xyz789",
  "deleted": false,
  "disabled": false,
  "email": "xyz789",
  "emailNotificationSettings": [
    EmailNotificationSettings
  ],
  "emotions": [_UserEmotions],
  "followedBy": [User],
  "followedByCount": 987,
  "followedByCurrentUser": true,
  "following": [User],
  "followingCount": 123,
  "friends": [User],
  "friendsCount": 987,
  "id": 4,
  "inviteCodes": [InviteCode],
  "invited": [User],
  "invitedBy": User,
  "isBlocked": true,
  "isMuted": true,
  "locale": "abc123",
  "location": Location,
  "locationName": "abc123",
  "name": "abc123",
  "publicKey": "xyz789",
  "redeemedInviteCode": InviteCode,
  "roleName": "xyz789",
  "shouted": [Post],
  "shoutedCount": 987,
  "showShoutsPublicly": false,
  "slug": "abc123",
  "socialMedia": [SocialMedia],
  "termsAndConditionsAgreedAt": "abc123",
  "termsAndConditionsAgreedVersion": "xyz789",
  "updatedAt": "xyz789"
}

UserData

Description

A bundle of a user together with their posts, used for GDPR-style data export/inspection.

Fields
Field Name Description
_id - String
posts - [Post]
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
user - User!
Arguments
filter - _UserFilter
Example
{
  "_id": "xyz789",
  "posts": [Post],
  "user": User
}

VideoCallConfig

Description

Whether group video calls are available on this instance.

Fields
Field Name Description
enabled - Boolean!
Example
{"enabled": false}

VideoCallJoinPayload

Description

Credentials for connecting to a group's video-call room on the media server.

Fields
Field Name Description
roomName - String! Name of the room to join.
token - String! Access token authorising the current user to join the room.
url - String! WebSocket URL of the media server.
Example
{
  "roomName": "xyz789",
  "token": "abc123",
  "url": "abc123"
}

VideoCallParticipantCount

Description

Live participant count for a group's video call.

Fields
Field Name Description
count - Int!
groupId - ID!
Example
{"count": 987, "groupId": 4}

Visibility

Description

Who is allowed to see a post.

Values
Enum Value Description

friends

Visible only to the author's friends.

private

Visible only to the author.

public

Visible to everyone, including logged-out visitors and federated instances.
Example
"friends"

_CategoryFilter

Fields
Input Field Description
AND - [_CategoryFilter!]
OR - [_CategoryFilter!]
id_in - [ID!]
Example
{
  "AND": [_CategoryFilter],
  "OR": [_CategoryFilter],
  "id_in": [4]
}

_CategoryOrdering

Values
Enum Value Description

createdAt_asc

createdAt_desc

icon_asc

icon_desc

id_asc

id_desc

name_asc

name_desc

postCount_asc

postCount_desc

slug_asc

slug_desc

updatedAt_asc

updatedAt_desc

Example
"createdAt_asc"

_ChatMessageStatusPayloadFilter

Fields
Input Field Description
AND - [_ChatMessageStatusPayloadFilter!]
OR - [_ChatMessageStatusPayloadFilter!]
roomId - ID
roomId_contains - ID
roomId_ends_with - ID
roomId_in - [ID!]
roomId_not - ID
roomId_not_contains - ID
roomId_not_ends_with - ID
roomId_not_in - [ID!]
roomId_not_starts_with - ID
roomId_starts_with - ID
status - String
status_contains - String
status_ends_with - String
status_in - [String!]
status_not - String
status_not_contains - String
status_not_ends_with - String
status_not_in - [String!]
status_not_starts_with - String
status_starts_with - String
Example
{
  "AND": [_ChatMessageStatusPayloadFilter],
  "OR": [_ChatMessageStatusPayloadFilter],
  "roomId": "4",
  "roomId_contains": 4,
  "roomId_ends_with": "4",
  "roomId_in": ["4"],
  "roomId_not": "4",
  "roomId_not_contains": "4",
  "roomId_not_ends_with": "4",
  "roomId_not_in": ["4"],
  "roomId_not_starts_with": 4,
  "roomId_starts_with": 4,
  "status": "abc123",
  "status_contains": "xyz789",
  "status_ends_with": "xyz789",
  "status_in": ["abc123"],
  "status_not": "xyz789",
  "status_not_contains": "xyz789",
  "status_not_ends_with": "xyz789",
  "status_not_in": ["xyz789"],
  "status_not_starts_with": "abc123",
  "status_starts_with": "xyz789"
}

_ChatMessageStatusPayloadOrdering

Values
Enum Value Description

_id_asc

_id_desc

roomId_asc

roomId_desc

status_asc

status_desc

Example
"_id_asc"

_CommentFilter

Fields
Input Field Description
AND - [_CommentFilter!]
OR - [_CommentFilter!]
author - _UserFilter
author_in - [_UserFilter!]
author_not - _UserFilter
author_not_in - [_UserFilter!]
content - String
content_contains - String
content_ends_with - String
content_in - [String!]
content_not - String
content_not_contains - String
content_not_ends_with - String
content_not_in - [String!]
content_not_starts_with - String
content_starts_with - String
id - ID
id_in - [ID!]
id_not - ID
id_not_in - [ID!]
post - _PostFilter
post_in - [_PostFilter!]
post_not - _PostFilter
post_not_in - [_PostFilter!]
Example
{
  "AND": [_CommentFilter],
  "OR": [_CommentFilter],
  "author": _UserFilter,
  "author_in": [_UserFilter],
  "author_not": _UserFilter,
  "author_not_in": [_UserFilter],
  "content": "xyz789",
  "content_contains": "abc123",
  "content_ends_with": "abc123",
  "content_in": ["abc123"],
  "content_not": "xyz789",
  "content_not_contains": "xyz789",
  "content_not_ends_with": "abc123",
  "content_not_in": ["abc123"],
  "content_not_starts_with": "xyz789",
  "content_starts_with": "xyz789",
  "id": 4,
  "id_in": ["4"],
  "id_not": 4,
  "id_not_in": [4],
  "post": _PostFilter,
  "post_in": [_PostFilter],
  "post_not": _PostFilter,
  "post_not_in": [_PostFilter]
}

_CommentOrdering

Values
Enum Value Description

content_asc

content_desc

createdAt_asc

createdAt_desc

id_asc

id_desc

updatedAt_asc

updatedAt_desc

Example
"content_asc"

_DonationsFilter

Fields
Input Field Description
AND - [_DonationsFilter!]
OR - [_DonationsFilter!]
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
goal - Int
goal_gt - Int
goal_gte - Int
goal_in - [Int!]
goal_lt - Int
goal_lte - Int
goal_not - Int
goal_not_in - [Int!]
id - ID
id_contains - ID
id_ends_with - ID
id_in - [ID!]
id_not - ID
id_not_contains - ID
id_not_ends_with - ID
id_not_in - [ID!]
id_not_starts_with - ID
id_starts_with - ID
progress - Int
progress_gt - Int
progress_gte - Int
progress_in - [Int!]
progress_lt - Int
progress_lte - Int
progress_not - Int
progress_not_in - [Int!]
showDonations - Boolean
showDonations_not - Boolean
updatedAt - String
updatedAt_contains - String
updatedAt_ends_with - String
updatedAt_in - [String!]
updatedAt_not - String
updatedAt_not_contains - String
updatedAt_not_ends_with - String
updatedAt_not_in - [String!]
updatedAt_not_starts_with - String
updatedAt_starts_with - String
Example
{
  "AND": [_DonationsFilter],
  "OR": [_DonationsFilter],
  "createdAt": "xyz789",
  "createdAt_contains": "xyz789",
  "createdAt_ends_with": "xyz789",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "xyz789",
  "createdAt_not_contains": "xyz789",
  "createdAt_not_ends_with": "xyz789",
  "createdAt_not_in": ["abc123"],
  "createdAt_not_starts_with": "abc123",
  "createdAt_starts_with": "abc123",
  "goal": 123,
  "goal_gt": 123,
  "goal_gte": 987,
  "goal_in": [123],
  "goal_lt": 987,
  "goal_lte": 987,
  "goal_not": 123,
  "goal_not_in": [123],
  "id": 4,
  "id_contains": 4,
  "id_ends_with": "4",
  "id_in": ["4"],
  "id_not": 4,
  "id_not_contains": 4,
  "id_not_ends_with": 4,
  "id_not_in": [4],
  "id_not_starts_with": 4,
  "id_starts_with": "4",
  "progress": 987,
  "progress_gt": 123,
  "progress_gte": 123,
  "progress_in": [987],
  "progress_lt": 987,
  "progress_lte": 123,
  "progress_not": 123,
  "progress_not_in": [123],
  "showDonations": false,
  "showDonations_not": true,
  "updatedAt": "abc123",
  "updatedAt_contains": "abc123",
  "updatedAt_ends_with": "xyz789",
  "updatedAt_in": ["xyz789"],
  "updatedAt_not": "abc123",
  "updatedAt_not_contains": "abc123",
  "updatedAt_not_ends_with": "xyz789",
  "updatedAt_not_in": ["abc123"],
  "updatedAt_not_starts_with": "xyz789",
  "updatedAt_starts_with": "xyz789"
}

_EMOTEDInput

Description

Selects which emotion to add or remove on a post.

Fields
Input Field Description
createdAt - String
emotion - Emotion
updatedAt - String
Example
{
  "createdAt": "abc123",
  "emotion": "angry",
  "updatedAt": "xyz789"
}

_EffectivePermissionFilter

Fields
Input Field Description
AND - [_EffectivePermissionFilter!]
OR - [_EffectivePermissionFilter!]
group - String
group_contains - String
group_ends_with - String
group_in - [String!]
group_not - String
group_not_contains - String
group_not_ends_with - String
group_not_in - [String!]
group_not_starts_with - String
group_starts_with - String
key - String
key_contains - String
key_ends_with - String
key_in - [String!]
key_not - String
key_not_contains - String
key_not_ends_with - String
key_not_in - [String!]
key_not_starts_with - String
key_starts_with - String
Example
{
  "AND": [_EffectivePermissionFilter],
  "OR": [_EffectivePermissionFilter],
  "group": "abc123",
  "group_contains": "xyz789",
  "group_ends_with": "abc123",
  "group_in": ["xyz789"],
  "group_not": "xyz789",
  "group_not_contains": "xyz789",
  "group_not_ends_with": "xyz789",
  "group_not_in": ["xyz789"],
  "group_not_starts_with": "xyz789",
  "group_starts_with": "xyz789",
  "key": "xyz789",
  "key_contains": "xyz789",
  "key_ends_with": "abc123",
  "key_in": ["abc123"],
  "key_not": "abc123",
  "key_not_contains": "xyz789",
  "key_not_ends_with": "abc123",
  "key_not_in": ["abc123"],
  "key_not_starts_with": "abc123",
  "key_starts_with": "xyz789"
}

_EffectivePermissionOrdering

Values
Enum Value Description

_id_asc

_id_desc

group_asc

group_desc

key_asc

key_desc

Example
"_id_asc"

_EventInput

Description

Event details supplied when a post is of type Event.

Fields
Input Field Description
eventEnd - String
eventIsOnline - Boolean
eventLocationName - String
eventStart - String!
eventVenue - String
Example
{
  "eventEnd": "abc123",
  "eventIsOnline": false,
  "eventLocationName": "abc123",
  "eventStart": "abc123",
  "eventVenue": "xyz789"
}

_FileFilter

Fields
Input Field Description
AND - [_FileFilter!]
OR - [_FileFilter!]
duration - Float
duration_gt - Float
duration_gte - Float
duration_in - [Float!]
duration_lt - Float
duration_lte - Float
duration_not - Float
duration_not_in - [Float!]
extension - String
extension_contains - String
extension_ends_with - String
extension_in - [String!]
extension_not - String
extension_not_contains - String
extension_not_ends_with - String
extension_not_in - [String!]
extension_not_starts_with - String
extension_starts_with - String
name - String
name_contains - String
name_ends_with - String
name_in - [String!]
name_not - String
name_not_contains - String
name_not_ends_with - String
name_not_in - [String!]
name_not_starts_with - String
name_starts_with - String
type - String
type_contains - String
type_ends_with - String
type_in - [String!]
type_not - String
type_not_contains - String
type_not_ends_with - String
type_not_in - [String!]
type_not_starts_with - String
type_starts_with - String
url - ID
url_contains - ID
url_ends_with - ID
url_in - [ID!]
url_not - ID
url_not_contains - ID
url_not_ends_with - ID
url_not_in - [ID!]
url_not_starts_with - ID
url_starts_with - ID
Example
{
  "AND": [_FileFilter],
  "OR": [_FileFilter],
  "duration": 987.65,
  "duration_gt": 123.45,
  "duration_gte": 987.65,
  "duration_in": [123.45],
  "duration_lt": 987.65,
  "duration_lte": 123.45,
  "duration_not": 123.45,
  "duration_not_in": [987.65],
  "extension": "xyz789",
  "extension_contains": "abc123",
  "extension_ends_with": "xyz789",
  "extension_in": ["xyz789"],
  "extension_not": "xyz789",
  "extension_not_contains": "abc123",
  "extension_not_ends_with": "xyz789",
  "extension_not_in": ["abc123"],
  "extension_not_starts_with": "xyz789",
  "extension_starts_with": "abc123",
  "name": "abc123",
  "name_contains": "xyz789",
  "name_ends_with": "abc123",
  "name_in": ["xyz789"],
  "name_not": "abc123",
  "name_not_contains": "abc123",
  "name_not_ends_with": "abc123",
  "name_not_in": ["abc123"],
  "name_not_starts_with": "abc123",
  "name_starts_with": "abc123",
  "type": "abc123",
  "type_contains": "xyz789",
  "type_ends_with": "xyz789",
  "type_in": ["xyz789"],
  "type_not": "abc123",
  "type_not_contains": "abc123",
  "type_not_ends_with": "abc123",
  "type_not_in": ["abc123"],
  "type_not_starts_with": "xyz789",
  "type_starts_with": "xyz789",
  "url": "4",
  "url_contains": 4,
  "url_ends_with": 4,
  "url_in": [4],
  "url_not": "4",
  "url_not_contains": 4,
  "url_not_ends_with": 4,
  "url_not_in": [4],
  "url_not_starts_with": "4",
  "url_starts_with": "4"
}

_FileOrdering

Values
Enum Value Description

_id_asc

_id_desc

duration_asc

duration_desc

extension_asc

extension_desc

name_asc

name_desc

type_asc

type_desc

url_asc

url_desc

Example
"_id_asc"

_FiledReportFilter

Fields
Input Field Description
AND - [_FiledReportFilter!]
OR - [_FiledReportFilter!]
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
reasonCategory - ReasonCategory
reasonCategory_in - [ReasonCategory!]
reasonCategory_not - ReasonCategory
reasonCategory_not_in - [ReasonCategory!]
reasonDescription - String
reasonDescription_contains - String
reasonDescription_ends_with - String
reasonDescription_in - [String!]
reasonDescription_not - String
reasonDescription_not_contains - String
reasonDescription_not_ends_with - String
reasonDescription_not_in - [String!]
reasonDescription_not_starts_with - String
reasonDescription_starts_with - String
reportId - ID
reportId_contains - ID
reportId_ends_with - ID
reportId_in - [ID!]
reportId_not - ID
reportId_not_contains - ID
reportId_not_ends_with - ID
reportId_not_in - [ID!]
reportId_not_starts_with - ID
reportId_starts_with - ID
Example
{
  "AND": [_FiledReportFilter],
  "OR": [_FiledReportFilter],
  "createdAt": "abc123",
  "createdAt_contains": "abc123",
  "createdAt_ends_with": "xyz789",
  "createdAt_in": ["abc123"],
  "createdAt_not": "xyz789",
  "createdAt_not_contains": "abc123",
  "createdAt_not_ends_with": "xyz789",
  "createdAt_not_in": ["xyz789"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "xyz789",
  "reasonCategory": "advert_products_services_commercial",
  "reasonCategory_in": ["advert_products_services_commercial"],
  "reasonCategory_not": "advert_products_services_commercial",
  "reasonCategory_not_in": ["advert_products_services_commercial"],
  "reasonDescription": "abc123",
  "reasonDescription_contains": "xyz789",
  "reasonDescription_ends_with": "xyz789",
  "reasonDescription_in": ["abc123"],
  "reasonDescription_not": "xyz789",
  "reasonDescription_not_contains": "xyz789",
  "reasonDescription_not_ends_with": "xyz789",
  "reasonDescription_not_in": ["abc123"],
  "reasonDescription_not_starts_with": "abc123",
  "reasonDescription_starts_with": "abc123",
  "reportId": 4,
  "reportId_contains": 4,
  "reportId_ends_with": "4",
  "reportId_in": ["4"],
  "reportId_not": "4",
  "reportId_not_contains": "4",
  "reportId_not_ends_with": 4,
  "reportId_not_in": [4],
  "reportId_not_starts_with": "4",
  "reportId_starts_with": "4"
}

_FiledReportOrdering

Values
Enum Value Description

_id_asc

_id_desc

createdAt_asc

createdAt_desc

reasonCategory_asc

reasonCategory_desc

reasonDescription_asc

reasonDescription_desc

reportId_asc

reportId_desc

Example
"_id_asc"

_GroupFilter

Fields
Input Field Description
AND - [_GroupFilter!]
OR - [_GroupFilter!]
about_contains - String
actionRadius_in - [GroupActionRadius!]
description_contains - String
groupType_in - [GroupType!]
id - ID
id_in - [ID!]
id_not - ID
id_not_in - [ID!]
myRole_in - [GroupMemberRole!]
name_contains - String
slug_contains - String
Example
{
  "AND": [_GroupFilter],
  "OR": [_GroupFilter],
  "about_contains": "xyz789",
  "actionRadius_in": ["continental"],
  "description_contains": "abc123",
  "groupType_in": ["closed"],
  "id": "4",
  "id_in": ["4"],
  "id_not": "4",
  "id_not_in": [4],
  "myRole_in": ["admin"],
  "name_contains": "xyz789",
  "slug_contains": "xyz789"
}

_GroupMemberFilter

Fields
Input Field Description
AND - [_GroupMemberFilter!]
OR - [_GroupMemberFilter!]
Example
{
  "AND": [_GroupMemberFilter],
  "OR": [_GroupMemberFilter]
}

_GroupMemberOrdering

Values
Enum Value Description

_id_asc

_id_desc

Example
"_id_asc"

_ImageFilter

Fields
Input Field Description
AND - [_ImageFilter!]
OR - [_ImageFilter!]
alt - String
alt_contains - String
alt_ends_with - String
alt_in - [String!]
alt_not - String
alt_not_contains - String
alt_not_ends_with - String
alt_not_in - [String!]
alt_not_starts_with - String
alt_starts_with - String
aspectRatio - Float
aspectRatio_gt - Float
aspectRatio_gte - Float
aspectRatio_in - [Float!]
aspectRatio_lt - Float
aspectRatio_lte - Float
aspectRatio_not - Float
aspectRatio_not_in - [Float!]
sensitive - Boolean
sensitive_not - Boolean
transform - String
transform_contains - String
transform_ends_with - String
transform_in - [String!]
transform_not - String
transform_not_contains - String
transform_not_ends_with - String
transform_not_in - [String!]
transform_not_starts_with - String
transform_starts_with - String
type - String
type_contains - String
type_ends_with - String
type_in - [String!]
type_not - String
type_not_contains - String
type_not_ends_with - String
type_not_in - [String!]
type_not_starts_with - String
type_starts_with - String
url - ID
url_contains - ID
url_ends_with - ID
url_in - [ID!]
url_not - ID
url_not_contains - ID
url_not_ends_with - ID
url_not_in - [ID!]
url_not_starts_with - ID
url_starts_with - ID
Example
{
  "AND": [_ImageFilter],
  "OR": [_ImageFilter],
  "alt": "xyz789",
  "alt_contains": "abc123",
  "alt_ends_with": "xyz789",
  "alt_in": ["xyz789"],
  "alt_not": "abc123",
  "alt_not_contains": "abc123",
  "alt_not_ends_with": "xyz789",
  "alt_not_in": ["abc123"],
  "alt_not_starts_with": "xyz789",
  "alt_starts_with": "xyz789",
  "aspectRatio": 987.65,
  "aspectRatio_gt": 987.65,
  "aspectRatio_gte": 123.45,
  "aspectRatio_in": [123.45],
  "aspectRatio_lt": 987.65,
  "aspectRatio_lte": 123.45,
  "aspectRatio_not": 123.45,
  "aspectRatio_not_in": [123.45],
  "sensitive": true,
  "sensitive_not": true,
  "transform": "abc123",
  "transform_contains": "xyz789",
  "transform_ends_with": "abc123",
  "transform_in": ["abc123"],
  "transform_not": "abc123",
  "transform_not_contains": "xyz789",
  "transform_not_ends_with": "abc123",
  "transform_not_in": ["abc123"],
  "transform_not_starts_with": "xyz789",
  "transform_starts_with": "xyz789",
  "type": "xyz789",
  "type_contains": "xyz789",
  "type_ends_with": "xyz789",
  "type_in": ["xyz789"],
  "type_not": "xyz789",
  "type_not_contains": "abc123",
  "type_not_ends_with": "xyz789",
  "type_not_in": ["xyz789"],
  "type_not_starts_with": "xyz789",
  "type_starts_with": "abc123",
  "url": 4,
  "url_contains": 4,
  "url_ends_with": 4,
  "url_in": [4],
  "url_not": 4,
  "url_not_contains": "4",
  "url_not_ends_with": 4,
  "url_not_in": ["4"],
  "url_not_starts_with": "4",
  "url_starts_with": "4"
}

_ImageOrdering

Values
Enum Value Description

_id_asc

_id_desc

alt_asc

alt_desc

aspectRatio_asc

aspectRatio_desc

sensitive_asc

sensitive_desc

transform_asc

transform_desc

type_asc

type_desc

url_asc

url_desc

Example
"_id_asc"

_InviteCodeFilter

Fields
Input Field Description
AND - [_InviteCodeFilter!]
OR - [_InviteCodeFilter!]
code - ID
code_contains - ID
code_ends_with - ID
code_in - [ID!]
code_not - ID
code_not_contains - ID
code_not_ends_with - ID
code_not_in - [ID!]
code_not_starts_with - ID
code_starts_with - ID
comment - String
comment_contains - String
comment_ends_with - String
comment_in - [String!]
comment_not - String
comment_not_contains - String
comment_not_ends_with - String
comment_not_in - [String!]
comment_not_starts_with - String
comment_starts_with - String
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
expiresAt - String
expiresAt_contains - String
expiresAt_ends_with - String
expiresAt_in - [String!]
expiresAt_not - String
expiresAt_not_contains - String
expiresAt_not_ends_with - String
expiresAt_not_in - [String!]
expiresAt_not_starts_with - String
expiresAt_starts_with - String
generatedBy - _UserFilter
generatedBy_in - [_UserFilter!]
generatedBy_not - _UserFilter
generatedBy_not_in - [_UserFilter!]
redeemedBy - _UserFilter
redeemedBy_every - _UserFilter
redeemedBy_in - [_UserFilter!]
redeemedBy_none - _UserFilter
redeemedBy_not - _UserFilter
redeemedBy_not_in - [_UserFilter!]
redeemedBy_single - _UserFilter
redeemedBy_some - _UserFilter
Example
{
  "AND": [_InviteCodeFilter],
  "OR": [_InviteCodeFilter],
  "code": "4",
  "code_contains": 4,
  "code_ends_with": 4,
  "code_in": [4],
  "code_not": 4,
  "code_not_contains": "4",
  "code_not_ends_with": 4,
  "code_not_in": [4],
  "code_not_starts_with": 4,
  "code_starts_with": 4,
  "comment": "xyz789",
  "comment_contains": "xyz789",
  "comment_ends_with": "xyz789",
  "comment_in": ["abc123"],
  "comment_not": "xyz789",
  "comment_not_contains": "xyz789",
  "comment_not_ends_with": "xyz789",
  "comment_not_in": ["abc123"],
  "comment_not_starts_with": "xyz789",
  "comment_starts_with": "xyz789",
  "createdAt": "xyz789",
  "createdAt_contains": "abc123",
  "createdAt_ends_with": "abc123",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "abc123",
  "createdAt_not_contains": "abc123",
  "createdAt_not_ends_with": "xyz789",
  "createdAt_not_in": ["abc123"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "abc123",
  "expiresAt": "abc123",
  "expiresAt_contains": "xyz789",
  "expiresAt_ends_with": "abc123",
  "expiresAt_in": ["abc123"],
  "expiresAt_not": "abc123",
  "expiresAt_not_contains": "abc123",
  "expiresAt_not_ends_with": "abc123",
  "expiresAt_not_in": ["xyz789"],
  "expiresAt_not_starts_with": "abc123",
  "expiresAt_starts_with": "xyz789",
  "generatedBy": _UserFilter,
  "generatedBy_in": [_UserFilter],
  "generatedBy_not": _UserFilter,
  "generatedBy_not_in": [_UserFilter],
  "redeemedBy": _UserFilter,
  "redeemedBy_every": _UserFilter,
  "redeemedBy_in": [_UserFilter],
  "redeemedBy_none": _UserFilter,
  "redeemedBy_not": _UserFilter,
  "redeemedBy_not_in": [_UserFilter],
  "redeemedBy_single": _UserFilter,
  "redeemedBy_some": _UserFilter
}

_InviteCodeOrdering

Values
Enum Value Description

_id_asc

_id_desc

code_asc

code_desc

comment_asc

comment_desc

createdAt_asc

createdAt_desc

expiresAt_asc

expiresAt_desc

redeemedByCount_asc

redeemedByCount_desc

Example
"_id_asc"

_LocationMapBoxFilter

Fields
Input Field Description
AND - [_LocationMapBoxFilter!]
OR - [_LocationMapBoxFilter!]
id - ID
id_contains - ID
id_ends_with - ID
id_in - [ID!]
id_not - ID
id_not_contains - ID
id_not_ends_with - ID
id_not_in - [ID!]
id_not_starts_with - ID
id_starts_with - ID
place_name - String
place_name_contains - String
place_name_ends_with - String
place_name_in - [String!]
place_name_not - String
place_name_not_contains - String
place_name_not_ends_with - String
place_name_not_in - [String!]
place_name_not_starts_with - String
place_name_starts_with - String
Example
{
  "AND": [_LocationMapBoxFilter],
  "OR": [_LocationMapBoxFilter],
  "id": 4,
  "id_contains": 4,
  "id_ends_with": 4,
  "id_in": [4],
  "id_not": "4",
  "id_not_contains": "4",
  "id_not_ends_with": 4,
  "id_not_in": [4],
  "id_not_starts_with": 4,
  "id_starts_with": "4",
  "place_name": "abc123",
  "place_name_contains": "xyz789",
  "place_name_ends_with": "abc123",
  "place_name_in": ["abc123"],
  "place_name_not": "xyz789",
  "place_name_not_contains": "abc123",
  "place_name_not_ends_with": "xyz789",
  "place_name_not_in": ["abc123"],
  "place_name_not_starts_with": "abc123",
  "place_name_starts_with": "xyz789"
}

_LocationMapBoxOrdering

Values
Enum Value Description

_id_asc

_id_desc

id_asc

id_desc

place_name_asc

place_name_desc

Example
"_id_asc"

_MEMBER_OFFilter

Fields
Input Field Description
AND - [_MEMBER_OFFilter!]
OR - [_MEMBER_OFFilter!]
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
role - GroupMemberRole
role_in - [GroupMemberRole!]
role_not - GroupMemberRole
role_not_in - [GroupMemberRole!]
updatedAt - String
updatedAt_contains - String
updatedAt_ends_with - String
updatedAt_in - [String!]
updatedAt_not - String
updatedAt_not_contains - String
updatedAt_not_ends_with - String
updatedAt_not_in - [String!]
updatedAt_not_starts_with - String
updatedAt_starts_with - String
Example
{
  "AND": [_MEMBER_OFFilter],
  "OR": [_MEMBER_OFFilter],
  "createdAt": "abc123",
  "createdAt_contains": "xyz789",
  "createdAt_ends_with": "xyz789",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "xyz789",
  "createdAt_not_contains": "xyz789",
  "createdAt_not_ends_with": "xyz789",
  "createdAt_not_in": ["abc123"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "abc123",
  "role": "admin",
  "role_in": ["admin"],
  "role_not": "admin",
  "role_not_in": ["admin"],
  "updatedAt": "xyz789",
  "updatedAt_contains": "abc123",
  "updatedAt_ends_with": "abc123",
  "updatedAt_in": ["xyz789"],
  "updatedAt_not": "abc123",
  "updatedAt_not_contains": "xyz789",
  "updatedAt_not_ends_with": "abc123",
  "updatedAt_not_in": ["abc123"],
  "updatedAt_not_starts_with": "xyz789",
  "updatedAt_starts_with": "xyz789"
}

_MEMBER_OFOrdering

Values
Enum Value Description

_id_asc

_id_desc

createdAt_asc

createdAt_desc

role_asc

role_desc

updatedAt_asc

updatedAt_desc

Example
"_id_asc"

_MessageFilter

Fields
Input Field Description
AND - [_MessageFilter!]
OR - [_MessageFilter!]
author - _UserFilter
author_in - [_UserFilter!]
author_not - _UserFilter
author_not_in - [_UserFilter!]
content - String
content_contains - String
content_ends_with - String
content_in - [String!]
content_not - String
content_not_contains - String
content_not_ends_with - String
content_not_in - [String!]
content_not_starts_with - String
content_starts_with - String
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
distributed - Boolean
distributed_not - Boolean
files - _FileFilter
files_every - _FileFilter
files_in - [_FileFilter!]
files_none - _FileFilter
files_not - _FileFilter
files_not_in - [_FileFilter!]
files_single - _FileFilter
files_some - _FileFilter
id - ID
id_contains - ID
id_ends_with - ID
id_in - [ID!]
id_not - ID
id_not_contains - ID
id_not_ends_with - ID
id_not_in - [ID!]
id_not_starts_with - ID
id_starts_with - ID
indexId - Int
indexId_gt - Int
indexId_gte - Int
indexId_in - [Int!]
indexId_lt - Int
indexId_lte - Int
indexId_not - Int
indexId_not_in - [Int!]
room - _RoomFilter
room_in - [_RoomFilter!]
room_not - _RoomFilter
room_not_in - [_RoomFilter!]
saved - Boolean
saved_not - Boolean
updatedAt - String
updatedAt_contains - String
updatedAt_ends_with - String
updatedAt_in - [String!]
updatedAt_not - String
updatedAt_not_contains - String
updatedAt_not_ends_with - String
updatedAt_not_in - [String!]
updatedAt_not_starts_with - String
updatedAt_starts_with - String
Example
{
  "AND": [_MessageFilter],
  "OR": [_MessageFilter],
  "author": _UserFilter,
  "author_in": [_UserFilter],
  "author_not": _UserFilter,
  "author_not_in": [_UserFilter],
  "content": "xyz789",
  "content_contains": "xyz789",
  "content_ends_with": "xyz789",
  "content_in": ["xyz789"],
  "content_not": "xyz789",
  "content_not_contains": "xyz789",
  "content_not_ends_with": "abc123",
  "content_not_in": ["abc123"],
  "content_not_starts_with": "abc123",
  "content_starts_with": "abc123",
  "createdAt": "xyz789",
  "createdAt_contains": "xyz789",
  "createdAt_ends_with": "xyz789",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "abc123",
  "createdAt_not_contains": "xyz789",
  "createdAt_not_ends_with": "xyz789",
  "createdAt_not_in": ["abc123"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "abc123",
  "distributed": true,
  "distributed_not": false,
  "files": _FileFilter,
  "files_every": _FileFilter,
  "files_in": [_FileFilter],
  "files_none": _FileFilter,
  "files_not": _FileFilter,
  "files_not_in": [_FileFilter],
  "files_single": _FileFilter,
  "files_some": _FileFilter,
  "id": 4,
  "id_contains": "4",
  "id_ends_with": "4",
  "id_in": [4],
  "id_not": 4,
  "id_not_contains": "4",
  "id_not_ends_with": "4",
  "id_not_in": [4],
  "id_not_starts_with": "4",
  "id_starts_with": 4,
  "indexId": 123,
  "indexId_gt": 123,
  "indexId_gte": 987,
  "indexId_in": [123],
  "indexId_lt": 987,
  "indexId_lte": 987,
  "indexId_not": 123,
  "indexId_not_in": [987],
  "room": _RoomFilter,
  "room_in": [_RoomFilter],
  "room_not": _RoomFilter,
  "room_not_in": [_RoomFilter],
  "saved": false,
  "saved_not": false,
  "updatedAt": "xyz789",
  "updatedAt_contains": "xyz789",
  "updatedAt_ends_with": "abc123",
  "updatedAt_in": ["xyz789"],
  "updatedAt_not": "xyz789",
  "updatedAt_not_contains": "xyz789",
  "updatedAt_not_ends_with": "abc123",
  "updatedAt_not_in": ["abc123"],
  "updatedAt_not_starts_with": "abc123",
  "updatedAt_starts_with": "xyz789"
}

_MessageOrdering

Values
Enum Value Description

indexId_desc

Example
"indexId_desc"

_PermissionFilter

Fields
Input Field Description
AND - [_PermissionFilter!]
OR - [_PermissionFilter!]
available - Boolean
available_not - Boolean
description - String
description_contains - String
description_ends_with - String
description_in - [String!]
description_not - String
description_not_contains - String
description_not_ends_with - String
description_not_in - [String!]
description_not_starts_with - String
description_starts_with - String
gatedBy - String
gatedBy_contains - String
gatedBy_ends_with - String
gatedBy_in - [String!]
gatedBy_not - String
gatedBy_not_contains - String
gatedBy_not_ends_with - String
gatedBy_not_in - [String!]
gatedBy_not_starts_with - String
gatedBy_starts_with - String
group - String
group_contains - String
group_ends_with - String
group_in - [String!]
group_not - String
group_not_contains - String
group_not_ends_with - String
group_not_in - [String!]
group_not_starts_with - String
group_starts_with - String
key - String
key_contains - String
key_ends_with - String
key_in - [String!]
key_not - String
key_not_contains - String
key_not_ends_with - String
key_not_in - [String!]
key_not_starts_with - String
key_starts_with - String
Example
{
  "AND": [_PermissionFilter],
  "OR": [_PermissionFilter],
  "available": true,
  "available_not": true,
  "description": "abc123",
  "description_contains": "xyz789",
  "description_ends_with": "xyz789",
  "description_in": ["xyz789"],
  "description_not": "xyz789",
  "description_not_contains": "abc123",
  "description_not_ends_with": "xyz789",
  "description_not_in": ["abc123"],
  "description_not_starts_with": "xyz789",
  "description_starts_with": "xyz789",
  "gatedBy": "xyz789",
  "gatedBy_contains": "abc123",
  "gatedBy_ends_with": "abc123",
  "gatedBy_in": ["abc123"],
  "gatedBy_not": "xyz789",
  "gatedBy_not_contains": "xyz789",
  "gatedBy_not_ends_with": "abc123",
  "gatedBy_not_in": ["abc123"],
  "gatedBy_not_starts_with": "abc123",
  "gatedBy_starts_with": "abc123",
  "group": "abc123",
  "group_contains": "abc123",
  "group_ends_with": "xyz789",
  "group_in": ["abc123"],
  "group_not": "xyz789",
  "group_not_contains": "xyz789",
  "group_not_ends_with": "xyz789",
  "group_not_in": ["abc123"],
  "group_not_starts_with": "xyz789",
  "group_starts_with": "abc123",
  "key": "abc123",
  "key_contains": "abc123",
  "key_ends_with": "xyz789",
  "key_in": ["abc123"],
  "key_not": "xyz789",
  "key_not_contains": "xyz789",
  "key_not_ends_with": "xyz789",
  "key_not_in": ["abc123"],
  "key_not_starts_with": "abc123",
  "key_starts_with": "xyz789"
}

_PermissionOrdering

Values
Enum Value Description

_id_asc

_id_desc

available_asc

available_desc

description_asc

description_desc

gatedBy_asc

gatedBy_desc

group_asc

group_desc

key_asc

key_desc

Example
"_id_asc"

_PermissionsChangedFilter

Fields
Input Field Description
AND - [_PermissionsChangedFilter!]
OR - [_PermissionsChangedFilter!]
roleName - String
roleName_contains - String
roleName_ends_with - String
roleName_in - [String!]
roleName_not - String
roleName_not_contains - String
roleName_not_ends_with - String
roleName_not_in - [String!]
roleName_not_starts_with - String
roleName_starts_with - String
Example
{
  "AND": [_PermissionsChangedFilter],
  "OR": [_PermissionsChangedFilter],
  "roleName": "abc123",
  "roleName_contains": "xyz789",
  "roleName_ends_with": "xyz789",
  "roleName_in": ["xyz789"],
  "roleName_not": "xyz789",
  "roleName_not_contains": "xyz789",
  "roleName_not_ends_with": "xyz789",
  "roleName_not_in": ["xyz789"],
  "roleName_not_starts_with": "abc123",
  "roleName_starts_with": "xyz789"
}

_PermissionsChangedOrdering

Values
Enum Value Description

_id_asc

_id_desc

roleName_asc

roleName_desc

Example
"_id_asc"

_PinnedPostCountsFilter

Fields
Input Field Description
AND - [_PinnedPostCountsFilter!]
OR - [_PinnedPostCountsFilter!]
currentlyPinnedPosts - Int
currentlyPinnedPosts_gt - Int
currentlyPinnedPosts_gte - Int
currentlyPinnedPosts_in - [Int!]
currentlyPinnedPosts_lt - Int
currentlyPinnedPosts_lte - Int
currentlyPinnedPosts_not - Int
currentlyPinnedPosts_not_in - [Int!]
Example
{
  "AND": [_PinnedPostCountsFilter],
  "OR": [_PinnedPostCountsFilter],
  "currentlyPinnedPosts": 987,
  "currentlyPinnedPosts_gt": 987,
  "currentlyPinnedPosts_gte": 987,
  "currentlyPinnedPosts_in": [987],
  "currentlyPinnedPosts_lt": 123,
  "currentlyPinnedPosts_lte": 123,
  "currentlyPinnedPosts_not": 987,
  "currentlyPinnedPosts_not_in": [987]
}

_PinnedPostCountsOrdering

Values
Enum Value Description

_id_asc

_id_desc

currentlyPinnedPosts_asc

currentlyPinnedPosts_desc

Example
"_id_asc"

_PolicyChangeEventFilter

Fields
Input Field Description
AND - [_PolicyChangeEventFilter!]
OR - [_PolicyChangeEventFilter!]
actor - String
actor_contains - String
actor_ends_with - String
actor_in - [String!]
actor_not - String
actor_not_contains - String
actor_not_ends_with - String
actor_not_in - [String!]
actor_not_starts_with - String
actor_starts_with - String
key - PolicyKey
key_in - [PolicyKey!]
key_not - PolicyKey
key_not_in - [PolicyKey!]
timestamp - String
timestamp_contains - String
timestamp_ends_with - String
timestamp_in - [String!]
timestamp_not - String
timestamp_not_contains - String
timestamp_not_ends_with - String
timestamp_not_in - [String!]
timestamp_not_starts_with - String
timestamp_starts_with - String
value - String
value_contains - String
value_ends_with - String
value_in - [String!]
value_not - String
value_not_contains - String
value_not_ends_with - String
value_not_in - [String!]
value_not_starts_with - String
value_starts_with - String
Example
{
  "AND": [_PolicyChangeEventFilter],
  "OR": [_PolicyChangeEventFilter],
  "actor": "xyz789",
  "actor_contains": "xyz789",
  "actor_ends_with": "abc123",
  "actor_in": ["abc123"],
  "actor_not": "xyz789",
  "actor_not_contains": "abc123",
  "actor_not_ends_with": "xyz789",
  "actor_not_in": ["xyz789"],
  "actor_not_starts_with": "xyz789",
  "actor_starts_with": "abc123",
  "key": "apiKeysEnabled",
  "key_in": ["apiKeysEnabled"],
  "key_not": "apiKeysEnabled",
  "key_not_in": ["apiKeysEnabled"],
  "timestamp": "xyz789",
  "timestamp_contains": "abc123",
  "timestamp_ends_with": "xyz789",
  "timestamp_in": ["xyz789"],
  "timestamp_not": "xyz789",
  "timestamp_not_contains": "xyz789",
  "timestamp_not_ends_with": "abc123",
  "timestamp_not_in": ["xyz789"],
  "timestamp_not_starts_with": "abc123",
  "timestamp_starts_with": "abc123",
  "value": "abc123",
  "value_contains": "abc123",
  "value_ends_with": "abc123",
  "value_in": ["xyz789"],
  "value_not": "xyz789",
  "value_not_contains": "abc123",
  "value_not_ends_with": "abc123",
  "value_not_in": ["xyz789"],
  "value_not_starts_with": "xyz789",
  "value_starts_with": "abc123"
}

_PolicyChangeEventOrdering

Values
Enum Value Description

_id_asc

_id_desc

actor_asc

actor_desc

key_asc

key_desc

timestamp_asc

timestamp_desc

value_asc

value_desc

Example
"_id_asc"

_PolicyDefaultsFilter

Fields
Input Field Description
AND - [_PolicyDefaultsFilter!]
OR - [_PolicyDefaultsFilter!]
Example
{
  "AND": [_PolicyDefaultsFilter],
  "OR": [_PolicyDefaultsFilter]
}

_PolicyDefaultsOrdering

Values
Enum Value Description

_id_asc

_id_desc

Example
"_id_asc"

_PolicyFilter

Fields
Input Field Description
AND - [_PolicyFilter!]
OR - [_PolicyFilter!]
apiKeysEnabled - Boolean
apiKeysEnabled_not - Boolean
apiKeysMaxPerUser - Int
apiKeysMaxPerUser_gt - Int
apiKeysMaxPerUser_gte - Int
apiKeysMaxPerUser_in - [Int!]
apiKeysMaxPerUser_lt - Int
apiKeysMaxPerUser_lte - Int
apiKeysMaxPerUser_not - Int
apiKeysMaxPerUser_not_in - [Int!]
askForRealName - Boolean
askForRealName_not - Boolean
badgesEnabled - Boolean
badgesEnabled_not - Boolean
categoriesActive - Boolean
categoriesActive_not - Boolean
inviteCodesGroupPerUser - Int
inviteCodesGroupPerUser_gt - Int
inviteCodesGroupPerUser_gte - Int
inviteCodesGroupPerUser_in - [Int!]
inviteCodesGroupPerUser_lt - Int
inviteCodesGroupPerUser_lte - Int
inviteCodesGroupPerUser_not - Int
inviteCodesGroupPerUser_not_in - [Int!]
inviteCodesPersonalPerUser - Int
inviteCodesPersonalPerUser_gt - Int
inviteCodesPersonalPerUser_gte - Int
inviteCodesPersonalPerUser_in - [Int!]
inviteCodesPersonalPerUser_lt - Int
inviteCodesPersonalPerUser_lte - Int
inviteCodesPersonalPerUser_not - Int
inviteCodesPersonalPerUser_not_in - [Int!]
inviteLinkLimit - Int
inviteLinkLimit_gt - Int
inviteLinkLimit_gte - Int
inviteLinkLimit_in - [Int!]
inviteLinkLimit_lt - Int
inviteLinkLimit_lte - Int
inviteLinkLimit_not - Int
inviteLinkLimit_not_in - [Int!]
inviteRegistration - Boolean
inviteRegistration_not - Boolean
maxGroupPinnedPosts - Int
maxGroupPinnedPosts_gt - Int
maxGroupPinnedPosts_gte - Int
maxGroupPinnedPosts_in - [Int!]
maxGroupPinnedPosts_lt - Int
maxGroupPinnedPosts_lte - Int
maxGroupPinnedPosts_not - Int
maxGroupPinnedPosts_not_in - [Int!]
maxPinnedPosts - Int
maxPinnedPosts_gt - Int
maxPinnedPosts_gte - Int
maxPinnedPosts_in - [Int!]
maxPinnedPosts_lt - Int
maxPinnedPosts_lte - Int
maxPinnedPosts_not - Int
maxPinnedPosts_not_in - [Int!]
publicRegistration - Boolean
publicRegistration_not - Boolean
requireLocation - Boolean
requireLocation_not - Boolean
showContentFilterHeaderMenu - Boolean
showContentFilterHeaderMenu_not - Boolean
showContentFilterMasonryGrid - Boolean
showContentFilterMasonryGrid_not - Boolean
showGroupButtonInHeader - Boolean
showGroupButtonInHeader_not - Boolean
Example
{
  "AND": [_PolicyFilter],
  "OR": [_PolicyFilter],
  "apiKeysEnabled": true,
  "apiKeysEnabled_not": false,
  "apiKeysMaxPerUser": 123,
  "apiKeysMaxPerUser_gt": 987,
  "apiKeysMaxPerUser_gte": 123,
  "apiKeysMaxPerUser_in": [123],
  "apiKeysMaxPerUser_lt": 987,
  "apiKeysMaxPerUser_lte": 987,
  "apiKeysMaxPerUser_not": 123,
  "apiKeysMaxPerUser_not_in": [987],
  "askForRealName": false,
  "askForRealName_not": false,
  "badgesEnabled": true,
  "badgesEnabled_not": false,
  "categoriesActive": true,
  "categoriesActive_not": true,
  "inviteCodesGroupPerUser": 123,
  "inviteCodesGroupPerUser_gt": 123,
  "inviteCodesGroupPerUser_gte": 987,
  "inviteCodesGroupPerUser_in": [987],
  "inviteCodesGroupPerUser_lt": 987,
  "inviteCodesGroupPerUser_lte": 123,
  "inviteCodesGroupPerUser_not": 123,
  "inviteCodesGroupPerUser_not_in": [123],
  "inviteCodesPersonalPerUser": 987,
  "inviteCodesPersonalPerUser_gt": 987,
  "inviteCodesPersonalPerUser_gte": 123,
  "inviteCodesPersonalPerUser_in": [123],
  "inviteCodesPersonalPerUser_lt": 987,
  "inviteCodesPersonalPerUser_lte": 987,
  "inviteCodesPersonalPerUser_not": 123,
  "inviteCodesPersonalPerUser_not_in": [123],
  "inviteLinkLimit": 123,
  "inviteLinkLimit_gt": 123,
  "inviteLinkLimit_gte": 123,
  "inviteLinkLimit_in": [987],
  "inviteLinkLimit_lt": 123,
  "inviteLinkLimit_lte": 987,
  "inviteLinkLimit_not": 123,
  "inviteLinkLimit_not_in": [123],
  "inviteRegistration": true,
  "inviteRegistration_not": true,
  "maxGroupPinnedPosts": 987,
  "maxGroupPinnedPosts_gt": 987,
  "maxGroupPinnedPosts_gte": 123,
  "maxGroupPinnedPosts_in": [123],
  "maxGroupPinnedPosts_lt": 987,
  "maxGroupPinnedPosts_lte": 987,
  "maxGroupPinnedPosts_not": 123,
  "maxGroupPinnedPosts_not_in": [123],
  "maxPinnedPosts": 987,
  "maxPinnedPosts_gt": 987,
  "maxPinnedPosts_gte": 987,
  "maxPinnedPosts_in": [123],
  "maxPinnedPosts_lt": 123,
  "maxPinnedPosts_lte": 987,
  "maxPinnedPosts_not": 123,
  "maxPinnedPosts_not_in": [987],
  "publicRegistration": false,
  "publicRegistration_not": true,
  "requireLocation": true,
  "requireLocation_not": true,
  "showContentFilterHeaderMenu": false,
  "showContentFilterHeaderMenu_not": false,
  "showContentFilterMasonryGrid": true,
  "showContentFilterMasonryGrid_not": false,
  "showGroupButtonInHeader": false,
  "showGroupButtonInHeader_not": true
}

_PolicyLastChangeFilter

Fields
Input Field Description
AND - [_PolicyLastChangeFilter!]
OR - [_PolicyLastChangeFilter!]
actor - String
actor_contains - String
actor_ends_with - String
actor_in - [String!]
actor_not - String
actor_not_contains - String
actor_not_ends_with - String
actor_not_in - [String!]
actor_not_starts_with - String
actor_starts_with - String
timestamp - String
timestamp_contains - String
timestamp_ends_with - String
timestamp_in - [String!]
timestamp_not - String
timestamp_not_contains - String
timestamp_not_ends_with - String
timestamp_not_in - [String!]
timestamp_not_starts_with - String
timestamp_starts_with - String
Example
{
  "AND": [_PolicyLastChangeFilter],
  "OR": [_PolicyLastChangeFilter],
  "actor": "abc123",
  "actor_contains": "abc123",
  "actor_ends_with": "abc123",
  "actor_in": ["xyz789"],
  "actor_not": "xyz789",
  "actor_not_contains": "abc123",
  "actor_not_ends_with": "abc123",
  "actor_not_in": ["xyz789"],
  "actor_not_starts_with": "xyz789",
  "actor_starts_with": "abc123",
  "timestamp": "xyz789",
  "timestamp_contains": "xyz789",
  "timestamp_ends_with": "abc123",
  "timestamp_in": ["xyz789"],
  "timestamp_not": "xyz789",
  "timestamp_not_contains": "abc123",
  "timestamp_not_ends_with": "xyz789",
  "timestamp_not_in": ["abc123"],
  "timestamp_not_starts_with": "xyz789",
  "timestamp_starts_with": "xyz789"
}

_PolicyLastChangeOrdering

Values
Enum Value Description

_id_asc

_id_desc

actor_asc

actor_desc

timestamp_asc

timestamp_desc

Example
"_id_asc"

_PolicyOrdering

Values
Enum Value Description

_id_asc

_id_desc

apiKeysEnabled_asc

apiKeysEnabled_desc

apiKeysMaxPerUser_asc

apiKeysMaxPerUser_desc

askForRealName_asc

askForRealName_desc

badgesEnabled_asc

badgesEnabled_desc

categoriesActive_asc

categoriesActive_desc

inviteCodesGroupPerUser_asc

inviteCodesGroupPerUser_desc

inviteCodesPersonalPerUser_asc

inviteCodesPersonalPerUser_desc

inviteLinkLimit_asc

inviteLinkLimit_desc

inviteRegistration_asc

inviteRegistration_desc

maxGroupPinnedPosts_asc

maxGroupPinnedPosts_desc

maxPinnedPosts_asc

maxPinnedPosts_desc

publicRegistration_asc

publicRegistration_desc

requireLocation_asc

requireLocation_desc

showContentFilterHeaderMenu_asc

showContentFilterHeaderMenu_desc

showContentFilterMasonryGrid_asc

showContentFilterMasonryGrid_desc

showGroupButtonInHeader_asc

showGroupButtonInHeader_desc

Example
"_id_asc"

_PolicyValueChangedFilter

Fields
Input Field Description
AND - [_PolicyValueChangedFilter!]
OR - [_PolicyValueChangedFilter!]
key - PolicyKey
key_in - [PolicyKey!]
key_not - PolicyKey
key_not_in - [PolicyKey!]
value - String
value_contains - String
value_ends_with - String
value_in - [String!]
value_not - String
value_not_contains - String
value_not_ends_with - String
value_not_in - [String!]
value_not_starts_with - String
value_starts_with - String
Example
{
  "AND": [_PolicyValueChangedFilter],
  "OR": [_PolicyValueChangedFilter],
  "key": "apiKeysEnabled",
  "key_in": ["apiKeysEnabled"],
  "key_not": "apiKeysEnabled",
  "key_not_in": ["apiKeysEnabled"],
  "value": "abc123",
  "value_contains": "xyz789",
  "value_ends_with": "xyz789",
  "value_in": ["xyz789"],
  "value_not": "abc123",
  "value_not_contains": "abc123",
  "value_not_ends_with": "xyz789",
  "value_not_in": ["abc123"],
  "value_not_starts_with": "xyz789",
  "value_starts_with": "xyz789"
}

_PolicyValueChangedOrdering

Values
Enum Value Description

_id_asc

_id_desc

key_asc

key_desc

value_asc

value_desc

Example
"_id_asc"

_PostEMOTEDFilter

Fields
Input Field Description
createdAt - String
emotion_in - [Emotion]
updatedAt - String
Example
{
  "createdAt": "xyz789",
  "emotion_in": ["angry"],
  "updatedAt": "xyz789"
}

_PostEmotions

Fields
Field Name Description
User - User
createdAt - String
emotion - Emotion
updatedAt - String
Example
{
  "User": User,
  "createdAt": "xyz789",
  "emotion": "angry",
  "updatedAt": "abc123"
}

_PostFilter

Fields
Input Field Description
AND - [_PostFilter!]
OR - [_PostFilter!]
author - _UserFilter
author_in - [_UserFilter!]
author_not - _UserFilter
author_not_in - [_UserFilter!]
categories - _CategoryFilter
categories_every - _CategoryFilter
categories_in - [_CategoryFilter!]
categories_none - _CategoryFilter
categories_not - _CategoryFilter
categories_not_in - [_CategoryFilter!]
categories_single - _CategoryFilter
categories_some - _CategoryFilter
comments - _CommentFilter
comments_every - _CommentFilter
comments_in - [_CommentFilter!]
comments_none - _CommentFilter
comments_not - _CommentFilter
comments_not_in - [_CommentFilter!]
comments_single - _CommentFilter
comments_some - _CommentFilter
content - String
content_contains - String
content_ends_with - String
content_in - [String!]
content_not - String
content_not_contains - String
content_not_ends_with - String
content_not_in - [String!]
content_not_starts_with - String
content_starts_with - String
emotions - _PostEMOTEDFilter
emotions_every - _PostEMOTEDFilter
emotions_in - [_PostEMOTEDFilter!]
emotions_none - _PostEMOTEDFilter
emotions_not - _PostEMOTEDFilter
emotions_not_in - [_PostEMOTEDFilter!]
emotions_single - _PostEMOTEDFilter
emotions_some - _PostEMOTEDFilter
eventEnd_gte - String
eventStart_gte - String
group - _GroupFilter
groupPinned - Boolean
hasLocation - Boolean
id - ID
id_in - [ID!]
id_not - ID
id_not_in - [ID!]
language - String
language_in - [String!]
language_not - String
language_not_in - [String!]
pinned - Boolean
postType_in - [PostType]
postsInMyGroups - Boolean
shoutedBy_some - _UserFilter
skipPinnedFilter - Boolean
slug - String
slug_contains - String
slug_ends_with - String
slug_in - [String!]
slug_not - String
slug_not_contains - String
slug_not_ends_with - String
slug_not_in - [String!]
slug_not_starts_with - String
slug_starts_with - String
tags - _TagFilter
tags_every - _TagFilter
tags_in - [_TagFilter!]
tags_none - _TagFilter
tags_not - _TagFilter
tags_not_in - [_TagFilter!]
tags_single - _TagFilter
tags_some - _TagFilter
title - String
title_contains - String
title_ends_with - String
title_in - [String!]
title_not - String
title_not_contains - String
title_not_ends_with - String
title_not_in - [String!]
title_not_starts_with - String
title_starts_with - String
visibility - Visibility
visibility_in - [Visibility!]
visibility_not - Visibility
visibility_not_in - [Visibility!]
Example
{
  "AND": [_PostFilter],
  "OR": [_PostFilter],
  "author": _UserFilter,
  "author_in": [_UserFilter],
  "author_not": _UserFilter,
  "author_not_in": [_UserFilter],
  "categories": _CategoryFilter,
  "categories_every": _CategoryFilter,
  "categories_in": [_CategoryFilter],
  "categories_none": _CategoryFilter,
  "categories_not": _CategoryFilter,
  "categories_not_in": [_CategoryFilter],
  "categories_single": _CategoryFilter,
  "categories_some": _CategoryFilter,
  "comments": _CommentFilter,
  "comments_every": _CommentFilter,
  "comments_in": [_CommentFilter],
  "comments_none": _CommentFilter,
  "comments_not": _CommentFilter,
  "comments_not_in": [_CommentFilter],
  "comments_single": _CommentFilter,
  "comments_some": _CommentFilter,
  "content": "xyz789",
  "content_contains": "xyz789",
  "content_ends_with": "abc123",
  "content_in": ["abc123"],
  "content_not": "abc123",
  "content_not_contains": "abc123",
  "content_not_ends_with": "abc123",
  "content_not_in": ["abc123"],
  "content_not_starts_with": "xyz789",
  "content_starts_with": "abc123",
  "emotions": _PostEMOTEDFilter,
  "emotions_every": _PostEMOTEDFilter,
  "emotions_in": [_PostEMOTEDFilter],
  "emotions_none": _PostEMOTEDFilter,
  "emotions_not": _PostEMOTEDFilter,
  "emotions_not_in": [_PostEMOTEDFilter],
  "emotions_single": _PostEMOTEDFilter,
  "emotions_some": _PostEMOTEDFilter,
  "eventEnd_gte": "abc123",
  "eventStart_gte": "abc123",
  "group": _GroupFilter,
  "groupPinned": true,
  "hasLocation": false,
  "id": 4,
  "id_in": [4],
  "id_not": "4",
  "id_not_in": ["4"],
  "language": "abc123",
  "language_in": ["abc123"],
  "language_not": "abc123",
  "language_not_in": ["xyz789"],
  "pinned": true,
  "postType_in": ["Article"],
  "postsInMyGroups": true,
  "shoutedBy_some": _UserFilter,
  "skipPinnedFilter": true,
  "slug": "xyz789",
  "slug_contains": "abc123",
  "slug_ends_with": "abc123",
  "slug_in": ["xyz789"],
  "slug_not": "abc123",
  "slug_not_contains": "abc123",
  "slug_not_ends_with": "abc123",
  "slug_not_in": ["xyz789"],
  "slug_not_starts_with": "abc123",
  "slug_starts_with": "xyz789",
  "tags": _TagFilter,
  "tags_every": _TagFilter,
  "tags_in": [_TagFilter],
  "tags_none": _TagFilter,
  "tags_not": _TagFilter,
  "tags_not_in": [_TagFilter],
  "tags_single": _TagFilter,
  "tags_some": _TagFilter,
  "title": "xyz789",
  "title_contains": "abc123",
  "title_ends_with": "xyz789",
  "title_in": ["xyz789"],
  "title_not": "xyz789",
  "title_not_contains": "xyz789",
  "title_not_ends_with": "abc123",
  "title_not_in": ["abc123"],
  "title_not_starts_with": "abc123",
  "title_starts_with": "xyz789",
  "visibility": "friends",
  "visibility_in": ["friends"],
  "visibility_not": "friends",
  "visibility_not_in": ["friends"]
}

_PostInput

Description

References a post by id.

Fields
Input Field Description
id - ID!
Example
{"id": 4}

_PostOrdering

Values
Enum Value Description

content_asc

content_desc

createdAt_asc

createdAt_desc

eventStart_asc

eventStart_desc

groupPinned_asc

groupPinned_desc

id_asc

id_desc

language_asc

language_desc

pinned_asc

pinned_desc

slug_asc

slug_desc

sortDate_asc

sortDate_desc

title_asc

title_desc

updatedAt_asc

updatedAt_desc

visibility_asc

visibility_desc

Example
"content_asc"

_RoleFilter

Fields
Input Field Description
AND - [_RoleFilter!]
OR - [_RoleFilter!]
memberCount - Int
memberCount_gt - Int
memberCount_gte - Int
memberCount_in - [Int!]
memberCount_lt - Int
memberCount_lte - Int
memberCount_not - Int
memberCount_not_in - [Int!]
name - String
name_contains - String
name_ends_with - String
name_in - [String!]
name_not - String
name_not_contains - String
name_not_ends_with - String
name_not_in - [String!]
name_not_starts_with - String
name_starts_with - String
protected - Boolean
protected_not - Boolean
Example
{
  "AND": [_RoleFilter],
  "OR": [_RoleFilter],
  "memberCount": 123,
  "memberCount_gt": 123,
  "memberCount_gte": 987,
  "memberCount_in": [123],
  "memberCount_lt": 123,
  "memberCount_lte": 123,
  "memberCount_not": 987,
  "memberCount_not_in": [123],
  "name": "abc123",
  "name_contains": "xyz789",
  "name_ends_with": "xyz789",
  "name_in": ["abc123"],
  "name_not": "xyz789",
  "name_not_contains": "abc123",
  "name_not_ends_with": "abc123",
  "name_not_in": ["abc123"],
  "name_not_starts_with": "xyz789",
  "name_starts_with": "abc123",
  "protected": false,
  "protected_not": true
}

_RoleOrdering

Values
Enum Value Description

_id_asc

_id_desc

memberCount_asc

memberCount_desc

name_asc

name_desc

protected_asc

protected_desc

Example
"_id_asc"

_RoomFilter

Fields
Input Field Description
AND - [_RoomFilter!]
OR - [_RoomFilter!]
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
id - ID
id_contains - ID
id_ends_with - ID
id_in - [ID!]
id_not - ID
id_not_contains - ID
id_not_ends_with - ID
id_not_in - [ID!]
id_not_starts_with - ID
id_starts_with - ID
lastMessageAt - String
lastMessageAt_contains - String
lastMessageAt_ends_with - String
lastMessageAt_in - [String!]
lastMessageAt_not - String
lastMessageAt_not_contains - String
lastMessageAt_not_ends_with - String
lastMessageAt_not_in - [String!]
lastMessageAt_not_starts_with - String
lastMessageAt_starts_with - String
unreadCount - Int
unreadCount_gt - Int
unreadCount_gte - Int
unreadCount_in - [Int!]
unreadCount_lt - Int
unreadCount_lte - Int
unreadCount_not - Int
unreadCount_not_in - [Int!]
updatedAt - String
updatedAt_contains - String
updatedAt_ends_with - String
updatedAt_in - [String!]
updatedAt_not - String
updatedAt_not_contains - String
updatedAt_not_ends_with - String
updatedAt_not_in - [String!]
updatedAt_not_starts_with - String
updatedAt_starts_with - String
users - _UserFilter
users_every - _UserFilter
users_in - [_UserFilter!]
users_none - _UserFilter
users_not - _UserFilter
users_not_in - [_UserFilter!]
users_single - _UserFilter
users_some - _UserFilter
Example
{
  "AND": [_RoomFilter],
  "OR": [_RoomFilter],
  "createdAt": "abc123",
  "createdAt_contains": "abc123",
  "createdAt_ends_with": "xyz789",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "abc123",
  "createdAt_not_contains": "xyz789",
  "createdAt_not_ends_with": "abc123",
  "createdAt_not_in": ["xyz789"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "xyz789",
  "id": "4",
  "id_contains": "4",
  "id_ends_with": 4,
  "id_in": [4],
  "id_not": 4,
  "id_not_contains": 4,
  "id_not_ends_with": "4",
  "id_not_in": ["4"],
  "id_not_starts_with": "4",
  "id_starts_with": 4,
  "lastMessageAt": "xyz789",
  "lastMessageAt_contains": "abc123",
  "lastMessageAt_ends_with": "abc123",
  "lastMessageAt_in": ["abc123"],
  "lastMessageAt_not": "xyz789",
  "lastMessageAt_not_contains": "abc123",
  "lastMessageAt_not_ends_with": "xyz789",
  "lastMessageAt_not_in": ["xyz789"],
  "lastMessageAt_not_starts_with": "xyz789",
  "lastMessageAt_starts_with": "abc123",
  "unreadCount": 123,
  "unreadCount_gt": 987,
  "unreadCount_gte": 987,
  "unreadCount_in": [987],
  "unreadCount_lt": 123,
  "unreadCount_lte": 123,
  "unreadCount_not": 123,
  "unreadCount_not_in": [123],
  "updatedAt": "abc123",
  "updatedAt_contains": "xyz789",
  "updatedAt_ends_with": "xyz789",
  "updatedAt_in": ["abc123"],
  "updatedAt_not": "xyz789",
  "updatedAt_not_contains": "xyz789",
  "updatedAt_not_ends_with": "abc123",
  "updatedAt_not_in": ["abc123"],
  "updatedAt_not_starts_with": "xyz789",
  "updatedAt_starts_with": "abc123",
  "users": _UserFilter,
  "users_every": _UserFilter,
  "users_in": [_UserFilter],
  "users_none": _UserFilter,
  "users_not": _UserFilter,
  "users_not_in": [_UserFilter],
  "users_single": _UserFilter,
  "users_some": _UserFilter
}

_RoomOrdering

Values
Enum Value Description

createdAt_desc

lastMessageAt_desc

Example
"createdAt_desc"

_TagFilter

Fields
Input Field Description
AND - [_TagFilter!]
OR - [_TagFilter!]
id - ID
id_in - [ID!]
id_not - ID
id_not_in - [ID!]
taggedPosts - _PostFilter
taggedPosts_every - _PostFilter
taggedPosts_in - [_PostFilter!]
taggedPosts_none - _PostFilter
taggedPosts_not - _PostFilter
taggedPosts_not_in - [_PostFilter!]
taggedPosts_single - _PostFilter
taggedPosts_some - _PostFilter
Example
{
  "AND": [_TagFilter],
  "OR": [_TagFilter],
  "id": 4,
  "id_in": ["4"],
  "id_not": "4",
  "id_not_in": [4],
  "taggedPosts": _PostFilter,
  "taggedPosts_every": _PostFilter,
  "taggedPosts_in": [_PostFilter],
  "taggedPosts_none": _PostFilter,
  "taggedPosts_not": _PostFilter,
  "taggedPosts_not_in": [_PostFilter],
  "taggedPosts_single": _PostFilter,
  "taggedPosts_some": _PostFilter
}

_TagOrdering

Values
Enum Value Description

id_asc

id_desc

taggedCountUnique_asc

taggedCountUnique_desc

taggedCount_asc

taggedCount_desc

Example
"id_asc"

_UserDataFilter

Fields
Input Field Description
AND - [_UserDataFilter!]
OR - [_UserDataFilter!]
Example
{
  "AND": [_UserDataFilter],
  "OR": [_UserDataFilter]
}

_UserDataOrdering

Values
Enum Value Description

_id_asc

_id_desc

Example
"_id_asc"

_UserEMOTEDFilter

Fields
Input Field Description
AND - [_UserEMOTEDFilter!]
OR - [_UserEMOTEDFilter!]
Post - _PostFilter
createdAt - String
createdAt_contains - String
createdAt_ends_with - String
createdAt_in - [String!]
createdAt_not - String
createdAt_not_contains - String
createdAt_not_ends_with - String
createdAt_not_in - [String!]
createdAt_not_starts_with - String
createdAt_starts_with - String
emotion - Emotion
emotion_in - [Emotion!]
emotion_not - Emotion
emotion_not_in - [Emotion!]
updatedAt - String
updatedAt_contains - String
updatedAt_ends_with - String
updatedAt_in - [String!]
updatedAt_not - String
updatedAt_not_contains - String
updatedAt_not_ends_with - String
updatedAt_not_in - [String!]
updatedAt_not_starts_with - String
updatedAt_starts_with - String
Example
{
  "AND": [_UserEMOTEDFilter],
  "OR": [_UserEMOTEDFilter],
  "Post": _PostFilter,
  "createdAt": "xyz789",
  "createdAt_contains": "abc123",
  "createdAt_ends_with": "abc123",
  "createdAt_in": ["xyz789"],
  "createdAt_not": "abc123",
  "createdAt_not_contains": "abc123",
  "createdAt_not_ends_with": "abc123",
  "createdAt_not_in": ["xyz789"],
  "createdAt_not_starts_with": "xyz789",
  "createdAt_starts_with": "xyz789",
  "emotion": "angry",
  "emotion_in": ["angry"],
  "emotion_not": "angry",
  "emotion_not_in": ["angry"],
  "updatedAt": "abc123",
  "updatedAt_contains": "xyz789",
  "updatedAt_ends_with": "abc123",
  "updatedAt_in": ["abc123"],
  "updatedAt_not": "abc123",
  "updatedAt_not_contains": "xyz789",
  "updatedAt_not_ends_with": "abc123",
  "updatedAt_not_in": ["abc123"],
  "updatedAt_not_starts_with": "abc123",
  "updatedAt_starts_with": "xyz789"
}

_UserEmotions

Fields
Field Name Description
Post - Post
createdAt - String
emotion - Emotion
updatedAt - String
Example
{
  "Post": Post,
  "createdAt": "xyz789",
  "emotion": "angry",
  "updatedAt": "abc123"
}

_UserFilter

Fields
Input Field Description
AND - [_UserFilter!]
OR - [_UserFilter!]
about_contains - String
followedBy - _UserFilter
followedBy_every - _UserFilter
followedBy_in - [_UserFilter!]
followedBy_none - _UserFilter
followedBy_not - _UserFilter
followedBy_not_in - [_UserFilter!]
followedBy_single - _UserFilter
followedBy_some - _UserFilter
following - _UserFilter
following_every - _UserFilter
following_in - [_UserFilter!]
following_none - _UserFilter
following_not - _UserFilter
following_not_in - [_UserFilter!]
following_single - _UserFilter
following_some - _UserFilter
friends - _UserFilter
friends_every - _UserFilter
friends_in - [_UserFilter!]
friends_none - _UserFilter
friends_not - _UserFilter
friends_not_in - [_UserFilter!]
friends_single - _UserFilter
friends_some - _UserFilter
hasLocation - Boolean
id - ID
id_in - [ID!]
id_not - ID
id_not_in - [ID!]
name_contains - String
slug_contains - String
Example
{
  "AND": [_UserFilter],
  "OR": [_UserFilter],
  "about_contains": "xyz789",
  "followedBy": _UserFilter,
  "followedBy_every": _UserFilter,
  "followedBy_in": [_UserFilter],
  "followedBy_none": _UserFilter,
  "followedBy_not": _UserFilter,
  "followedBy_not_in": [_UserFilter],
  "followedBy_single": _UserFilter,
  "followedBy_some": _UserFilter,
  "following": _UserFilter,
  "following_every": _UserFilter,
  "following_in": [_UserFilter],
  "following_none": _UserFilter,
  "following_not": _UserFilter,
  "following_not_in": [_UserFilter],
  "following_single": _UserFilter,
  "following_some": _UserFilter,
  "friends": _UserFilter,
  "friends_every": _UserFilter,
  "friends_in": [_UserFilter],
  "friends_none": _UserFilter,
  "friends_not": _UserFilter,
  "friends_not_in": [_UserFilter],
  "friends_single": _UserFilter,
  "friends_some": _UserFilter,
  "hasLocation": false,
  "id": 4,
  "id_in": [4],
  "id_not": "4",
  "id_not_in": ["4"],
  "name_contains": "xyz789",
  "slug_contains": "abc123"
}

_UserOrdering

Values
Enum Value Description

about_asc

about_desc

createdAt_asc

createdAt_desc

id_asc

id_desc

locale_asc

locale_desc

locationName_asc

locationName_desc

name_asc

name_desc

slug_asc

slug_desc

updatedAt_asc

updatedAt_desc

Example
"about_asc"

_groupSearchResultsFilter

Fields
Input Field Description
AND - [_groupSearchResultsFilter!]
OR - [_groupSearchResultsFilter!]
groupCount - Int
groupCount_gt - Int
groupCount_gte - Int
groupCount_in - [Int!]
groupCount_lt - Int
groupCount_lte - Int
groupCount_not - Int
groupCount_not_in - [Int!]
Example
{
  "AND": [_groupSearchResultsFilter],
  "OR": [_groupSearchResultsFilter],
  "groupCount": 987,
  "groupCount_gt": 123,
  "groupCount_gte": 987,
  "groupCount_in": [123],
  "groupCount_lt": 123,
  "groupCount_lte": 123,
  "groupCount_not": 123,
  "groupCount_not_in": [987]
}

_groupSearchResultsOrdering

Values
Enum Value Description

_id_asc

_id_desc

groupCount_asc

groupCount_desc

Example
"_id_asc"

_hashtagSearchResultsFilter

Fields
Input Field Description
AND - [_hashtagSearchResultsFilter!]
OR - [_hashtagSearchResultsFilter!]
hashtagCount - Int
hashtagCount_gt - Int
hashtagCount_gte - Int
hashtagCount_in - [Int!]
hashtagCount_lt - Int
hashtagCount_lte - Int
hashtagCount_not - Int
hashtagCount_not_in - [Int!]
Example
{
  "AND": [_hashtagSearchResultsFilter],
  "OR": [_hashtagSearchResultsFilter],
  "hashtagCount": 987,
  "hashtagCount_gt": 123,
  "hashtagCount_gte": 987,
  "hashtagCount_in": [987],
  "hashtagCount_lt": 987,
  "hashtagCount_lte": 987,
  "hashtagCount_not": 123,
  "hashtagCount_not_in": [123]
}

_hashtagSearchResultsOrdering

Values
Enum Value Description

_id_asc

_id_desc

hashtagCount_asc

hashtagCount_desc

Example
"_id_asc"

_postSearchResultsFilter

Fields
Input Field Description
AND - [_postSearchResultsFilter!]
OR - [_postSearchResultsFilter!]
postCount - Int
postCount_gt - Int
postCount_gte - Int
postCount_in - [Int!]
postCount_lt - Int
postCount_lte - Int
postCount_not - Int
postCount_not_in - [Int!]
Example
{
  "AND": [_postSearchResultsFilter],
  "OR": [_postSearchResultsFilter],
  "postCount": 123,
  "postCount_gt": 987,
  "postCount_gte": 987,
  "postCount_in": [987],
  "postCount_lt": 987,
  "postCount_lte": 987,
  "postCount_not": 987,
  "postCount_not_in": [987]
}

_postSearchResultsOrdering

Values
Enum Value Description

_id_asc

_id_desc

postCount_asc

postCount_desc

Example
"_id_asc"

_userSearchResultsFilter

Fields
Input Field Description
AND - [_userSearchResultsFilter!]
OR - [_userSearchResultsFilter!]
userCount - Int
userCount_gt - Int
userCount_gte - Int
userCount_in - [Int!]
userCount_lt - Int
userCount_lte - Int
userCount_not - Int
userCount_not_in - [Int!]
Example
{
  "AND": [_userSearchResultsFilter],
  "OR": [_userSearchResultsFilter],
  "userCount": 987,
  "userCount_gt": 123,
  "userCount_gte": 987,
  "userCount_in": [123],
  "userCount_lt": 123,
  "userCount_lte": 123,
  "userCount_not": 123,
  "userCount_not_in": [987]
}

_userSearchResultsOrdering

Values
Enum Value Description

_id_asc

_id_desc

userCount_asc

userCount_desc

Example
"_id_asc"

groupSearchResults

Description

A page of group search results with the total match count.

Fields
Field Name Description
_id - String
groupCount - Int
groups - [Group]!
Example
{
  "_id": "abc123",
  "groupCount": 123,
  "groups": [Group]
}

hashtagSearchResults

Description

A page of hashtag search results with the total match count.

Fields
Field Name Description
_id - String
hashtagCount - Int
hashtags - [Tag]!
Arguments
filter - _TagFilter
first - Int
offset - Int
orderBy - [_TagOrdering]
Example
{
  "_id": "abc123",
  "hashtagCount": 987,
  "hashtags": [Tag]
}

postSearchResults

Description

A page of post search results with the total match count.

Fields
Field Name Description
_id - String
postCount - Int
posts - [Post]!
Arguments
filter - _PostFilter
first - Int
offset - Int
orderBy - [_PostOrdering]
Example
{
  "_id": "abc123",
  "postCount": 987,
  "posts": [Post]
}

userSearchResults

Description

A page of user search results with the total match count.

Fields
Field Name Description
_id - String
userCount - Int
users - [User]!
Arguments
filter - _UserFilter
first - Int
offset - Int
orderBy - [_UserOrdering]
Example
{
  "_id": "xyz789",
  "userCount": 987,
  "users": [User]
}