GreppooBack to GreppooTalk

GREPPOOTALK DEVELOPERS

GreppooTalk REST API

Create meeting links, integrate authenticated joins, inspect active meetings, and end meetings from your backend.

Open the complete API reference ↗

The reference includes request fields, response schemas, and an interactive request console. These endpoints affect the live service when executed. Availability is controlled by the server administrator.

Authentication

Base URL: https://www.greppootalk.com/api/v1. Ask your administrator for the server API key (configured as API_KEY_SECRET). Send the raw key in the authorization header, without a Bearer prefix. Keep it in your backend environment; never ship it in website JavaScript or a mobile app. Send JSON request bodies with Content-Type: application/json.

Create a meeting link

Set GREPPOOTALK_API_KEY in your server environment, then run:

curl --request POST 'https://www.greppootalk.com/api/v1/meeting' \
  --header "authorization: $GREPPOOTALK_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'
{ "meeting": "https://www.greppootalk.com/join/generated-room-id" }

This generates a shareable URL. It does not start a call or reserve an active room; participants start the meeting by opening the URL.

Endpoint directory

Method & path Purpose / response
GET /stats Returns timestamp, totalRooms, and totalUsers.
GET /meetings Returns meetings: active room IDs and peer details such as name, presenter, audio/video/screen state, OS and browser.
POST /meeting Returns meeting, a newly generated meeting URL. No body fields required.
POST /join Returns join, a URL containing the requested room and participant options.
POST /token Returns token, a signed token containing encrypted participant credentials.
DELETE /meeting/{room} Ends an active room. Optional JSON body: {"redirect":"https://www.greppoo.com"}. Returns success, message, and room on success. Disconnects every participant.
GET /activeRooms Public listing, available only when SHOW_ACTIVE_ROOMS is enabled. Returns activeRooms with id, peers, and join. Rate limited; no API key required.

Configure a participant join link

curl --request POST 'https://www.greppootalk.com/api/v1/join' \
  --header "authorization: $GREPPOOTALK_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"room":"team-demo","name":"Alex","audio":true,"video":true,"screen":false,"notify":false}'

Response: {"join":"https://www.greppootalk.com/join?room=team-demo&..."}. Open that URL in a browser or distribute it to the intended participant. Camera and microphone permissions are still required.

Field Type / behavior
room String room name; generated if omitted. Use a simple URL-safe name.
roomPassword String password, or false to disable.
name String display name; generated if omitted.
avatar Avatar URL string, or false.
audio, video, screen Booleans controlling requested initial media state; default false. Browser support, permission and moderator rules still apply.
chat, hide, notify Booleans: open chat, hide own tile, or show the sharing prompt on join; default false.
duration String in HH:MM:SS format or "unlimited" (default).
token Optional object containing username, password, presenter and expire. The API creates a signed token and appends it to the join URL.

Authenticated participants

For deployments with host/user authentication, supply credentials recognized by that deployment. presenter requests a role; host and room authorization rules still apply. expire is a token lifetime such as "1h". Treat generated tokens and authenticated join URLs as credentials.

POST /api/v1/token
authorization: YOUR_SERVER_API_KEY
Content-Type: application/json

{
  "username": "configured-user",
  "password": "configured-user-password",
  "presenter": false,
  "expire": "1h"
}

Use the returned token in a direct /join?...&token=... URL. The token field of the POST /join body instead takes the credentials object, not an already encoded token.

Call from a Node.js backend

const response = await fetch('https://www.greppootalk.com/api/v1/join', {
  method: 'POST',
  headers: {
    authorization: process.env.GREPPOOTALK_API_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ room: 'team-demo', name: 'Alex', audio: true, video: true })
});
if (!response.ok) throw new Error(`GreppooTalk API: ${response.status}`);
const { join } = await response.json();

Errors and troubleshooting

Support: support@greppootalk.com · www.greppoo.com