GET
/
v1
/
teams
/
{teamId}
/
scheduling-slots
/
next
TypeScript client
import { OctosparkClient } from '@octospark/sdk'

const client = new OctosparkClient({
  token: process.env.OCTOSPARK_TOKEN
})

const response = await client.schedulingSlots.getNextSchedulingSlots({
  teamId: process.env.OCTOSPARK_TEAM_ID ?? "teamId",
  query: {},
})
import os
from octospark_sdk import OctosparkClient

client = OctosparkClient(token=os.environ["OCTOSPARK_TOKEN"])

response = client.scheduling_slots.get_next_scheduling_slots(
teamId=os.environ.get("OCTOSPARK_TEAM_ID", "teamId")
)
octospark scheduling-slots get-next-scheduling-slots \
--request '{"path":{"teamId":"teamId"}}'
use reqwest::Client;
use std::env;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = Client::new();
let base_url = env::var("OCTOSPARK_API_URL").unwrap_or_else(|_| "https://api.octospark.ai".to_string());
let team_id = env::var("OCTOSPARK_TEAM_ID").unwrap_or_else(|_| "teamId".to_string());
let url = format!("{}/v1/teams/{}/scheduling-slots/next", base_url.trim_end_matches('/'), team_id);
let token = env::var("OCTOSPARK_TOKEN").expect("OCTOSPARK_TOKEN");
let mut request = client.get(url).bearer_auth(token);
let response = request.send().await?;
println!("{}", response.text().await?);
Ok(())
}
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;

Future<void> main() async {
final baseUrl = Platform.environment['OCTOSPARK_API_URL'] ?? 'https://api.octospark.ai';
final token = Platform.environment['OCTOSPARK_TOKEN'];
final teamId = Platform.environment['OCTOSPARK_TEAM_ID'] ?? 'teamId';
final url = '${baseUrl.replaceFirst(RegExp(r'/$'), '')}/v1/teams/$teamId/scheduling-slots/next';
final uri = Uri.parse(url);
final headers = {
'Authorization': 'Bearer $token',
};
final response = await http.get(
uri,
headers: headers,
);
print(response.body);
}
curl --request GET \
--url https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next \
--header 'Authorization: Bearer <token>'
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next",
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.octospark.ai/v1/teams/{teamId}/scheduling-slots/next"

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.octospark.ai/v1/teams/{teamId}/scheduling-slots/next")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next")

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
$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$response = Invoke-WebRequest -Uri 'https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next' -Method GET -Headers $headers
import Foundation

let url = URL(string: "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Authorization": "Bearer <token>"]

let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))
using RestSharp;


var options = new RestClientOptions("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
using RestSharp;


var options = new RestClientOptions("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
val client = OkHttpClient()

val request = Request.Builder()
.url("https://api.octospark.ai/v1/teams/{teamId}/scheduling-slots/next")
.get()
.addHeader("Authorization", "Bearer <token>")
.build()

val response = client.newCall(request).execute()
{
  "slots": [
    {
      "startsAt": "<string>",
      "hour": 123,
      "minute": 123,
      "label": "<string>"
    }
  ]
}
{
"issues": [
{
"path": [
"<string>"
],
"message": "<string>"
}
],
"message": "<string>",
"_tag": "HttpApiDecodeError"
}
{
"message": "<string>",
"_tag": "Unauthorized"
}
{
"message": "<string>",
"_tag": "PaymentRequired"
}
{
"message": "<string>",
"_tag": "Forbidden"
}
{
"message": "<string>",
"_tag": "NotFound"
}
{
"message": "<string>",
"_tag": "Conflict"
}
{
"message": "<string>",
"_tag": "TooManyRequests"
}
{
"message": "<string>",
"_tag": "InternalError"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

teamId
string
required

Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.

Query Parameters

socialAccountId
string

Connected social account id (UUID). When provided, the preview is occupancy-aware for that account; omit for a purely time-based preview.

count
string

How many upcoming slot instants to return, 1-20 (default 1). Values outside the range are clamped.

timezone
string

IANA timezone override used only when the team has no stored timezone; validated against the runtime's supported list (400 on an unsupported name).

Example:

"Europe/London"

Response

Success

slots
object[]
required