List rooms
curl --request GET \
--url https://api.timeless.day/v1/rooms \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.timeless.day/v1/rooms"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.timeless.day/v1/rooms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.timeless.day/v1/rooms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.timeless.day/v1/rooms"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.timeless.day/v1/rooms")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timeless.day/v1/rooms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "room_abc123",
"title": "Engineering standups",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-15T10:30:00Z",
"meeting_count": 42,
"share_url": "https://my.timeless.day/m/NEhuOGNSdlQ1a013UTJ4QmRKOXBMZTlXbTV0SGNKNnlRbkIzeFZwTDdkR2s=",
"meetings": [
{
"id": "mtg_abc123",
"title": "Weekly standup",
"status": "completed",
"source": "google_meet",
"start_time": "2025-01-15T10:00:00Z",
"duration": 1800
}
]
}
],
"next_cursor": null,
"has_more": false
}{
"error": {
"code": "not_found",
"message": "Resource not found",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Rooms
List rooms
Returns a paginated list of rooms accessible to the authenticated user. Rooms group related meetings together.
GET
/
rooms
List rooms
curl --request GET \
--url https://api.timeless.day/v1/rooms \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.timeless.day/v1/rooms"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.timeless.day/v1/rooms', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.timeless.day/v1/rooms",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.timeless.day/v1/rooms"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.timeless.day/v1/rooms")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timeless.day/v1/rooms")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "room_abc123",
"title": "Engineering standups",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-15T10:30:00Z",
"meeting_count": 42,
"share_url": "https://my.timeless.day/m/NEhuOGNSdlQ1a013UTJ4QmRKOXBMZTlXbTV0SGNKNnlRbkIzeFZwTDdkR2s=",
"meetings": [
{
"id": "mtg_abc123",
"title": "Weekly standup",
"status": "completed",
"source": "google_meet",
"start_time": "2025-01-15T10:00:00Z",
"duration": 1800
}
]
}
],
"next_cursor": null,
"has_more": false
}{
"error": {
"code": "not_found",
"message": "Resource not found",
"details": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from your Timeless dashboard.
Query Parameters
Filter by one or more room IDs.
Filter by ownership scope.
all— all accessible roomsowned— rooms you ownshared— rooms shared with you
Available options:
owned, shared, all Search by room title.
Expand related resources inline. Supported values: documents, meetings.
Available options:
documents, meetings Pagination cursor from a previous response's next_cursor.
Number of results per page (1–100).
Required range:
1 <= x <= 100