Groups

Generated groups operations.

GET/v1/groupsManage shared playback for the signed-in profileread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
social_get_v1_groups

Responses

200Successapplication/json

Example
{
  "groups": [
    {
      "authority": {
        "deviceId": "id_8h2k4q",
        "playbackId": "id_8h2k4q",
        "state": "string"
      },
      "createdAt": "2026-10-18T19:30:00Z",
      "endedReason": "string",
      "eventOrdinal": "string",
      "governanceRevision": "r12",
      "host": {
        "endAt": "2026-10-18T19:30:00Z",
        "lastSeenAt": "2026-10-18T19:30:00Z",
        "pauseAt": "2026-10-18T19:30:00Z",
        "presence": "string"
      },
      "hostAuthority": "string",
      "hostMemberId": "id_8h2k4q",
      "id": "id_8h2k4q",
      "lastCommand": "string",
      "lastCommandId": "id_8h2k4q",
      "members": [
        {
          "displayName": "Fargo",
          "id": "id_8h2k4q",
          "joinedAt": "2026-10-18T19:30:00Z",
          "positionUs": "string",
          "presence": "string",
          "private": true,
          "readiness": "string",
          "reportedAt": "2026-10-18T19:30:00Z",
          "role": "string",
          "state": "string",
          "username": "Fargo"
        }
      ],
      "name": "Fargo",
      "permissions": {
        "canClaimHost": true,
        "canControl": true,
        "canManageQueue": true,
        "isHost": true
      },
      "playbackRevision": "r12",
      "queue": {
        "eligibility": {
          "blockedEntries": 0,
          "currentEntryBlocked": true,
          "members": []
        },
        "entries": [
          {}
        ],
        "position": 0,
        "revision": "r12"
      },
      "queueRevision": "r12",
      "readiness": {
        "aggregate": "string",
        "buffering": 0,
        "lagging": 0,
        "memberCount": 0,
        "ready": 0,
        "stale": 0
      },
      "reconnectGeneration": "string",
      "revision": "r12",
      "settings": {
        "repeatMode": "string",
        "shuffleEnabled": true
      },
      "settingsRevision": "r12",
      "state": "string",
      "sync": {
        "noCorrectionUnderMs": 1800000,
        "rateCorrectionMaxMs": 1800000,
        "rateCorrectionMaximum": "string",
        "rateCorrectionMinimum": "string",
        "seekAtOrOverMs": 1800000
      },
      "timeline": {
        "anchorAt": "2026-10-18T19:30:00Z",
        "anchorPositionUs": "string",
        "currentEntryId": "id_8h2k4q",
        "itemId": "id_8h2k4q",
        "queuePosition": 0,
        "rate": {
          "denominator": "string",
          "numerator": "string"
        },
        "state": "string",
        "waitUntil": "string"
      },
      "updatedAt": "2026-10-18T19:30:00Z",
      "viewerMemberId": "id_8h2k4q"
    }
  ],
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupsarray of objectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/groups" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groupsManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups
Max body
256 KiB

Request body application/json · required

Example
{
  "displayName": "Fargo",
  "hostAuthority": "string",
  "name": "Fargo",
  "protocolVersion": "string"
}
Schema
  • displayNamestring
  • hostAuthoritystring
  • namestringrequired
  • protocolVersionstringrequired

Responses

201Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"displayName":"Fargo","hostAuthority":"string","name":"Fargo","protocolVersion":"string"}'
GET/v1/groups/{id}Manage shared playback for the signed-in profileread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
social_get_v1_groups_id

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/groups/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groups/{id}/endManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_end
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": "r12",
  "protocolVersion": "string"
}
Schema
  • expectedRevisionstringrequired
  • protocolVersionstringrequired

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/end" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":"r12","protocolVersion":"string"}'
GET/v1/groups/{id}/eventsManage shared playback for the signed-in profileread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
social_get_v1_groups_id_events

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "events": [
    {
      "data": null,
      "event": "string",
      "id": "id_8h2k4q"
    }
  ]
}
Schema
  • eventsarray of objectrequired
    • dataanyrequired
    • eventstringrequired
    • idstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/groups/{id}/events" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groups/{id}/heartbeatManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_heartbeat

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/heartbeat" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groups/{id}/host-transferManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_host_transfer
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": "r12",
  "memberId": "id_8h2k4q",
  "protocolVersion": "string"
}
Schema
  • expectedRevisionstringrequired
  • memberIdstringrequired
  • protocolVersionstringrequired

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/host-transfer" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":"r12","memberId":"id_8h2k4q","protocolVersion":"string"}'
POST/v1/groups/{id}/invitesManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_invites
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expiresInMs": 1800000,
  "maxUses": 0,
  "protocolVersion": "string",
  "recipientProfileId": "id_8h2k4q"
}
Schema
  • expiresInMsintegerrequired
  • maxUsesintegerrequired
  • protocolVersionstringrequired
  • recipientProfileIdstringrequired

Responses

201Successapplication/json

Example
{
  "invite": {
    "code": "string",
    "expiresAt": "2026-10-18T19:30:00Z",
    "groupId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "maxUses": 0,
    "recipientProfileId": "id_8h2k4q",
    "uses": 0
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • inviteobjectrequired
    • codestringrequired
    • expiresAtstringrequired
    • groupIdstringrequired
    • idstringrequired
    • maxUsesintegerrequired
    • recipientProfileIdstringrequired
    • usesintegerrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/invites" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expiresInMs":1800000,"maxUses":0,"protocolVersion":"string","recipientProfileId":"id_8h2k4q"}'
DELETE/v1/groups/{id}/invites/{inviteId}Manage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_delete_v1_groups_id_invites_inviteId

Parameters

NameInTypeDescription
idrequiredpathstring
inviteIdrequiredpathstring

Responses

204Success

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X DELETE "http://127.0.0.1:32500/v1/groups/{id}/invites/{inviteId}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groups/{id}/leaveManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_leave

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/leave" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/groups/{id}/queueManage shared playback for the signed-in profileread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
social_get_v1_groups_id_queue

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "groupId": "id_8h2k4q",
  "protocolVersion": "string",
  "queue": {
    "eligibility": {
      "blockedEntries": 0,
      "currentEntryBlocked": true,
      "members": [
        {
          "blockedEntryIds": [],
          "displayName": "Fargo",
          "memberId": "id_8h2k4q"
        }
      ]
    },
    "entries": [
      {
        "addedBy": "string",
        "entryId": "id_8h2k4q",
        "itemId": "id_8h2k4q",
        "position": 0,
        "unavailable": true
      }
    ],
    "position": 0,
    "revision": "r12"
  },
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupIdstringrequired
  • protocolVersionstringrequired
  • queueobjectrequired
    • eligibilityobject | any | nullrequired
      • blockedEntriesintegerrequired
      • currentEntryBlockedbooleanrequired
      • membersarray of objectrequired
        • blockedEntryIdsarray of stringrequired
        • displayNamestringrequired
        • memberIdstringrequired
    • entriesarray of objectrequired
      • addedBystringrequired
      • entryIdstringrequired
      • itemIdstring | any | nullrequired
      • positionintegerrequired
      • unavailablebooleanrequired
    • positionintegerrequired
    • revisionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/groups/{id}/queue" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/groups/{id}/queueManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_queue
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "destinationEntryId": "id_8h2k4q",
  "entryId": "id_8h2k4q",
  "expectedRevision": "r12",
  "idempotencyKey": "string",
  "itemIds": [
    "string"
  ],
  "operation": "string",
  "placement": "string",
  "protocolVersion": "string"
}
Schema
  • destinationEntryIdstringrequired
  • entryIdstringrequired
  • expectedRevisionstringrequired
  • idempotencyKeystringrequired
  • itemIdsarray of stringrequired
  • operationstringrequired
  • placementstringrequired
  • protocolVersionstringrequired

Responses

200Successapplication/json

Example
{
  "groupId": "id_8h2k4q",
  "protocolVersion": "string",
  "queue": {
    "eligibility": {
      "blockedEntries": 0,
      "currentEntryBlocked": true,
      "members": [
        {
          "blockedEntryIds": [],
          "displayName": "Fargo",
          "memberId": "id_8h2k4q"
        }
      ]
    },
    "entries": [
      {
        "addedBy": "string",
        "entryId": "id_8h2k4q",
        "itemId": "id_8h2k4q",
        "position": 0,
        "unavailable": true
      }
    ],
    "position": 0,
    "revision": "r12"
  },
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupIdstringrequired
  • protocolVersionstringrequired
  • queueobjectrequired
    • eligibilityobject | any | nullrequired
      • blockedEntriesintegerrequired
      • currentEntryBlockedbooleanrequired
      • membersarray of objectrequired
        • blockedEntryIdsarray of stringrequired
        • displayNamestringrequired
        • memberIdstringrequired
    • entriesarray of objectrequired
      • addedBystringrequired
      • entryIdstringrequired
      • itemIdstring | any | nullrequired
      • positionintegerrequired
      • unavailablebooleanrequired
    • positionintegerrequired
    • revisionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/queue" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "destinationEntryId": "id_8h2k4q",
  "entryId": "id_8h2k4q",
  "expectedRevision": "r12",
  "idempotencyKey": "string",
  "itemIds": [
    "string"
  ],
  "operation": "string",
  "placement": "string",
  "protocolVersion": "string"
}'
POST/v1/groups/{id}/readinessManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_readiness
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "ended": true,
  "playbackRevision": "r12",
  "positionUs": "string",
  "protocolVersion": "string",
  "readiness": "string"
}
Schema
  • endedboolean
  • playbackRevisionstringrequired
  • positionUsstring
  • protocolVersionstringrequired
  • readinessstringrequired

Responses

200Successapplication/json

Example
{
  "groupId": "id_8h2k4q",
  "playbackRevision": "r12",
  "protocolVersion": "string",
  "readiness": {
    "aggregate": "string",
    "buffering": 0,
    "lagging": 0,
    "memberCount": 0,
    "ready": 0,
    "stale": 0
  },
  "revision": "r12",
  "serverTime": "2026-10-18T19:30:00Z",
  "state": "string"
}
Schema
  • groupIdstringrequired
  • playbackRevisionstringrequired
  • protocolVersionstringrequired
  • readinessobjectrequired
    • aggregatestringrequired
    • bufferingintegerrequired
    • laggingintegerrequired
    • memberCountintegerrequired
    • readyintegerrequired
    • staleintegerrequired
  • revisionstringrequired
  • serverTimestringrequired
  • statestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/readiness" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ended":true,"playbackRevision":"r12","positionUs":"string","protocolVersion":"string","readiness":"string"}'
POST/v1/groups/{id}/settingsManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_settings
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": "r12",
  "idempotencyKey": "string",
  "protocolVersion": "string",
  "repeatMode": "string",
  "shuffleEnabled": true
}
Schema
  • expectedRevisionstringrequired
  • idempotencyKeystringrequired
  • protocolVersionstringrequired
  • repeatModestring
  • shuffleEnabledboolean

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/settings" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":"r12","idempotencyKey":"string","protocolVersion":"string","repeatMode":"string","shuffleEnabled":true}'
POST/v1/groups/{id}/transportManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_id_transport
Max body
256 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "allowUnavailable": true,
  "command": "string",
  "entryId": "id_8h2k4q",
  "expectedRevision": "r12",
  "idempotencyKey": "string",
  "positionUs": "string",
  "protocolVersion": "string",
  "queuePosition": 0,
  "rate": {
    "denominator": "string",
    "numerator": "string"
  }
}
Schema
  • allowUnavailableboolean
  • commandstringrequired
  • entryIdstring
  • expectedRevisionstringrequired
  • idempotencyKeystringrequired
  • positionUsstring
  • protocolVersionstringrequired
  • queuePositioninteger
  • rateobject
    • denominatorstringrequired
    • numeratorstringrequired

Responses

200Successapplication/json

Example
{
  "command": "string",
  "disposition": "string",
  "groupId": "id_8h2k4q",
  "groupState": "string",
  "idempotencyKey": "string",
  "override": {
    "blockedMemberIds": [
      "string"
    ],
    "reason": "string"
  },
  "playbackRevision": "r12",
  "protocolVersion": "string",
  "queueRevision": "r12",
  "recordedAt": "2026-10-18T19:30:00Z",
  "revision": "r12",
  "serverTime": "2026-10-18T19:30:00Z",
  "settings": {
    "repeatMode": "string",
    "shuffleEnabled": true
  },
  "timeline": {
    "anchorAt": "2026-10-18T19:30:00Z",
    "anchorPositionUs": "string",
    "currentEntryId": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "queuePosition": 0,
    "rate": {
      "denominator": "string",
      "numerator": "string"
    },
    "state": "string",
    "waitUntil": "string"
  }
}
Schema
  • commandstringrequired
  • dispositionstringrequired
  • groupIdstringrequired
  • groupStatestringrequired
  • idempotencyKeystringrequired
  • overrideobject | any | nullrequired
    • blockedMemberIdsarray of stringrequired
    • reasonstringrequired
  • playbackRevisionstringrequired
  • protocolVersionstringrequired
  • queueRevisionstringrequired
  • recordedAtstringrequired
  • revisionstringrequired
  • serverTimestringrequired
  • settingsobjectrequired
    • repeatModestringrequired
    • shuffleEnabledbooleanrequired
  • timelineobjectrequired
    • anchorAtstringrequired
    • anchorPositionUsstringrequired
    • currentEntryIdstringrequired
    • itemIdstringrequired
    • queuePositionintegerrequired
    • rateobjectrequired
      • denominatorstringrequired
      • numeratorstringrequired
    • statestringrequired
    • waitUntilstring | any | nullrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/{id}/transport" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "allowUnavailable": true,
  "command": "string",
  "entryId": "id_8h2k4q",
  "expectedRevision": "r12",
  "idempotencyKey": "string",
  "positionUs": "string",
  "protocolVersion": "string",
  "queuePosition": 0,
  "rate": {
    "denominator": "string",
    "numerator": "string"
  }
}'
POST/v1/groups/joinManage shared playback for the signed-in profileplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
social_post_v1_groups_join
Max body
256 KiB

Request body application/json · required

Example
{
  "code": "string",
  "displayName": "Fargo",
  "protocolVersion": "string"
}
Schema
  • codestringrequired
  • displayNamestring
  • protocolVersionstringrequired

Responses

200Successapplication/json

Example
{
  "group": {
    "authority": {
      "deviceId": "id_8h2k4q",
      "playbackId": "id_8h2k4q",
      "state": "string"
    },
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "eventOrdinal": "string",
    "governanceRevision": "r12",
    "host": {
      "endAt": "2026-10-18T19:30:00Z",
      "lastSeenAt": "2026-10-18T19:30:00Z",
      "pauseAt": "2026-10-18T19:30:00Z",
      "presence": "string"
    },
    "hostAuthority": "string",
    "hostMemberId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "lastCommand": "string",
    "lastCommandId": "id_8h2k4q",
    "members": [
      {
        "displayName": "Fargo",
        "id": "id_8h2k4q",
        "joinedAt": "2026-10-18T19:30:00Z",
        "positionUs": "string",
        "presence": "string",
        "private": true,
        "readiness": "string",
        "reportedAt": "2026-10-18T19:30:00Z",
        "role": "string",
        "state": "string",
        "username": "Fargo"
      }
    ],
    "name": "Fargo",
    "permissions": {
      "canClaimHost": true,
      "canControl": true,
      "canManageQueue": true,
      "isHost": true
    },
    "playbackRevision": "r12",
    "queue": {
      "eligibility": {
        "blockedEntries": 0,
        "currentEntryBlocked": true,
        "members": [
          {}
        ]
      },
      "entries": [
        {
          "addedBy": "string",
          "entryId": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "position": 0,
          "unavailable": true
        }
      ],
      "position": 0,
      "revision": "r12"
    },
    "queueRevision": "r12",
    "readiness": {
      "aggregate": "string",
      "buffering": 0,
      "lagging": 0,
      "memberCount": 0,
      "ready": 0,
      "stale": 0
    },
    "reconnectGeneration": "string",
    "revision": "r12",
    "settings": {
      "repeatMode": "string",
      "shuffleEnabled": true
    },
    "settingsRevision": "r12",
    "state": "string",
    "sync": {
      "noCorrectionUnderMs": 1800000,
      "rateCorrectionMaxMs": 1800000,
      "rateCorrectionMaximum": "string",
      "rateCorrectionMinimum": "string",
      "seekAtOrOverMs": 1800000
    },
    "timeline": {
      "anchorAt": "2026-10-18T19:30:00Z",
      "anchorPositionUs": "string",
      "currentEntryId": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "queuePosition": 0,
      "rate": {
        "denominator": "string",
        "numerator": "string"
      },
      "state": "string",
      "waitUntil": "string"
    },
    "updatedAt": "2026-10-18T19:30:00Z",
    "viewerMemberId": "id_8h2k4q"
  },
  "protocolVersion": "string",
  "serverTime": "2026-10-18T19:30:00Z"
}
Schema
  • groupobjectrequired
    • authorityobjectrequired
      • deviceIdstringrequired
      • playbackIdstring | any | nullrequired
      • statestringrequired
    • createdAtstringrequired
    • endedReasonstringrequired
    • eventOrdinalstringrequired
    • governanceRevisionstringrequired
    • hostobjectrequired
      • endAtstring | any | nullrequired
      • lastSeenAtstringrequired
      • pauseAtstring | any | nullrequired
      • presencestringrequired
    • hostAuthoritystringrequired
    • hostMemberIdstringrequired
    • idstringrequired
    • lastCommandstringrequired
    • lastCommandIdstringrequired
    • membersarray of objectrequired
      • displayNamestringrequired
      • idstringrequired
      • joinedAtstringrequired
      • positionUsstringrequired
      • presencestringrequired
      • privatebooleanrequired
      • readinessstringrequired
      • reportedAtstring | any | nullrequired
      • rolestringrequired
      • statestringrequired
      • usernamestring
    • namestringrequired
    • permissionsobjectrequired
      • canClaimHostboolean
      • canControlbooleanrequired
      • canManageQueuebooleanrequired
      • isHostbooleanrequired
    • playbackRevisionstringrequired
    • queueobject | any | nullrequired
      • eligibilityobject | any | nullrequired
        • blockedEntriesintegerrequired
        • currentEntryBlockedbooleanrequired
        • membersarray of objectrequired
          • blockedEntryIdsarray of stringrequired
          • displayNamestringrequired
          • memberIdstringrequired
      • entriesarray of objectrequired
        • addedBystringrequired
        • entryIdstringrequired
        • itemIdstring | any | nullrequired
        • positionintegerrequired
        • unavailablebooleanrequired
      • positionintegerrequired
      • revisionstringrequired
    • queueRevisionstringrequired
    • readinessobjectrequired
      • aggregatestringrequired
      • bufferingintegerrequired
      • laggingintegerrequired
      • memberCountintegerrequired
      • readyintegerrequired
      • staleintegerrequired
    • reconnectGenerationstringrequired
    • revisionstringrequired
    • settingsobjectrequired
      • repeatModestringrequired
      • shuffleEnabledbooleanrequired
    • settingsRevisionstringrequired
    • statestringrequired
    • syncobjectrequired
      • noCorrectionUnderMsintegerrequired
      • rateCorrectionMaxMsintegerrequired
      • rateCorrectionMaximumstringrequired
      • rateCorrectionMinimumstringrequired
      • seekAtOrOverMsintegerrequired
    • timelineobjectrequired
      • anchorAtstringrequired
      • anchorPositionUsstringrequired
      • currentEntryIdstringrequired
      • itemIdstringrequired
      • queuePositionintegerrequired
      • rateobjectrequired
        • denominatorstringrequired
        • numeratorstringrequired
      • statestringrequired
      • waitUntilstring | any | nullrequired
    • updatedAtstringrequired
    • viewerMemberIdstringrequired
  • protocolVersionstringrequired
  • serverTimestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittedinternalreceiver_requiredcapacity_reachedcast_access_endedcast_code_consumedcast_code_expiredcast_code_not_foundcast_code_revokedcast_device_expiredcast_device_not_foundcast_device_revokedcast_unavailabledevice_requiredentry_not_foundgrant_not_acceptedgrant_not_pendinggroup_endedgroup_fullhandoff_expiredhandoff_in_progresshandoff_not_readyhandoff_source_conflicthandoff_source_revision_conflicthandoff_state_conflicthost_requiredidempotency_key_reusedinvalid_requestinvite_consumedinvite_expiredinvite_not_foundinvite_revokedinvite_wrong_recipientmedia_no_longer_accessiblemember_not_foundmembership_revokednot_foundparticipant_incompatibleplayback_authority_unavailablequeue_fullrate_limitedreceiver_key_mismatchrevision_conflicttarget_unavailabledatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/groups/join" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"string","displayName":"Fargo","protocolVersion":"string"}'