API Reference

Realtime

Notifications, server-sent events, and socket metadata routes.

Lists current-user notifications.

Authentication

Session or actor-linked API key.

Modes: logged-in user, API key

API key: users:read

Permissions or Scopes

current user

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyPreferred API-key header. Never send API keys in URLs.
x-api-keyprapi_your_keyAlternative API-key header.
x-api-tokenprapi_your_keyLegacy API-key header kept for backward compatibility.

Parameters

NameInRequiredDescription
No path, query, or body parameters.

Validation

  • Request parameters and JSON payloads are validated server-side.
  • Mutating session-authenticated requests require CSRF validation.
  • Permission checks run before privileged data is returned or modified.

Errors

400 Invalid input, missing parameters, or validation failure.

401 Authentication is missing or invalid.

403 The authenticated principal lacks the required permission or scope.

404 The requested resource was not found.

500 Unexpected server error.

Rate Limits

No endpoint-specific public rate limit is documented. Authentication and abuse controls still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -H "Authorization: Bearer prapi_your_key" "https://playroom.date/api/notifications"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/notifications', {
  method: 'GET',
  headers: {
    "Authorization": "Bearer prapi_your_key"
  },
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.get('https://playroom.date/api/notifications', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "notifications": []
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

This request has no editable path, query, or body fields.

Request

GET /api/notifications

curl Equivalent

curl "https://playroom.date/api/notifications"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "notifications": []
  },
  "error": null
}

Marks notifications read or updates notification state.

Authentication

Session + CSRF or actor-linked API key.

Modes: logged-in user, API key

API key: users:write

Permissions or Scopes

current user

Request Headers

HeaderValueDescription
Cookiesession=<session_cookie>Session cookie set by the login flow.
x-csrf-token<csrfToken>Required for mutating session-authenticated requests.
Content-Typeapplication/jsonRequired when sending a JSON body.
AuthorizationBearer prapi_your_keyPreferred API-key header. Never send API keys in URLs.
x-api-keyprapi_your_keyAlternative API-key header.
x-api-tokenprapi_your_keyLegacy API-key header kept for backward compatibility.

Parameters

NameInRequiredDescription
idbodyNoNotification ID.
readbodyNoRead state.

Validation

  • Request parameters and JSON payloads are validated server-side.
  • Mutating session-authenticated requests require CSRF validation.
  • Permission checks run before privileged data is returned or modified.

Errors

400 Invalid input, missing parameters, or validation failure.

401 Authentication is missing or invalid.

403 The authenticated principal lacks the required permission or scope.

404 The requested resource was not found.

500 Unexpected server error.

Rate Limits

No endpoint-specific public rate limit is documented. Authentication and abuse controls still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X PUT -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"id":"resource_id","read":true}' "https://playroom.date/api/notifications"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/notifications', {
  method: 'PUT',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "id": "resource_id",
    "read": true
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.put('https://playroom.date/api/notifications', headers=headers, json={"id": "resource_id", "read": True})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "notifications": []
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

PUT /api/notifications

Request Payload

{}

curl Equivalent

curl -X PUT -H "Content-Type: application/json" -d '{}' "https://playroom.date/api/notifications"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "notifications": []
  },
  "error": null
}

Returns realtime transport guidance for the WebSocket stream.

Authentication

Public metadata.

Modes: public

Permissions or Scopes

none

Request Headers

HeaderValueDescription
No special headers.

Parameters

NameInRequiredDescription
No path, query, or body parameters.

Validation

  • Request parameters and JSON payloads are validated server-side.
  • Mutating session-authenticated requests require CSRF validation.
  • Permission checks run before privileged data is returned or modified.

Errors

400 Invalid input, missing parameters, or validation failure.

401 Authentication is missing or invalid.

403 The authenticated principal lacks the required permission or scope.

404 The requested resource was not found.

500 Unexpected server error.

Rate Limits

No endpoint-specific public rate limit is documented. Authentication and abuse controls still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl "https://playroom.date/api/realtime/subscribe"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/realtime/subscribe', {
  method: 'GET',
});
const data = await response.json();

Python

import requests

headers = {}
response = requests.get('https://playroom.date/api/realtime/subscribe', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "stream": []
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

This request has no editable path, query, or body fields.

Request

GET /api/realtime/subscribe

curl Equivalent

curl "https://playroom.date/api/realtime/subscribe"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "stream": []
  },
  "error": null
}

Returns metadata for the realtime channel endpoint.

Authentication

Public metadata.

Modes: public

Permissions or Scopes

none

Request Headers

HeaderValueDescription
No special headers.

Parameters

NameInRequiredDescription
No path, query, or body parameters.

Validation

  • Request parameters and JSON payloads are validated server-side.
  • Mutating session-authenticated requests require CSRF validation.
  • Permission checks run before privileged data is returned or modified.

Errors

400 Invalid input, missing parameters, or validation failure.

401 Authentication is missing or invalid.

403 The authenticated principal lacks the required permission or scope.

404 The requested resource was not found.

500 Unexpected server error.

Rate Limits

No endpoint-specific public rate limit is documented. Authentication and abuse controls still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl "https://playroom.date/api/socket"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/socket', {
  method: 'GET',
});
const data = await response.json();

Python

import requests

headers = {}
response = requests.get('https://playroom.date/api/socket', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "socket": []
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

This request has no editable path, query, or body fields.

Request

GET /api/socket

curl Equivalent

curl "https://playroom.date/api/socket"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "socket": []
  },
  "error": null
}