Get the manage in a space
GET
https://forumulate.com/api /orgs/{orgId}/spaces/{spaceId}/events/manage Every event including the unpublished ones, for an organiser’s view. Use this rather than the member listing when you need to see drafts and scheduled events alongside what is live.
Requires token scope: read (the coarse method gate) for Atlas key (ak_), Personal Access Token (cft_) or OAuth (cfo_) auth — in addition to any catalog scope (GET /pats/scopes) the route’s capability needs. Session/cookie auth is governed by RBAC capabilities instead.
Parameters
orgIdstringpathrequiredspaceIdstringpathrequiredlimitintegerqueryEvents per page, once a version is stated. Defaults to 100. 500 is the most this endpoint serves — a larger value is capped, not refused. A value that is not a whole number of 1 or more is a 422, never a silent default.
cursorstringqueryforumulate-versionstringheaderAPI version negotiation. Send
forumulate-version: 2026-12-01 on every request from a new integration; it is optional only so that integrations written before versioning keep working. Each version includes everything before it:Code samples
cURL
curl -X GET "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=" \
-H "forumulate-version: <value>"TypeScript
const res = await fetch('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=', {
method: 'GET',
headers: {
'forumulate-version': '<value>',
},
});
const data = await res.json();Python
import requests
res = requests.request(
"GET",
"https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=",
headers={
"forumulate-version": "<value>",
},
)
data = res.json()Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=", nil)
req.Header.Set("forumulate-version", "<value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['forumulate-version: <value>']);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ruby
require 'net/http'
require 'uri'
uri = URI('https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor=')
req = Net::HTTP::Get.new(uri)
req['forumulate-version'] = '<value>'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(req)
end
puts res.bodyJava
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://forumulate.com/api/orgs/{orgId}/spaces/{spaceId}/events/manage?limit=&cursor="))
.header("forumulate-version", "<value>")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Responses
200 Success.
Example
[
{
"attendanceMode": "hybrid",
"capacity": 0,
"capacityState": {
"capacity": null,
"full": true,
"going": 0,
"spotsLeft": null,
"waitlisted": 0,
"waitlistOpen": true
},
"counts": {
"declined": 0,
"going": 0,
"interested": 0,
"waitlist": 0
},
"coverAlt": "string",
"coverUrl": "string",
"customization": {
"customCss": null,
"jsonLd": null,
"ogDescription": null,
"ogTitle": null,
"shareImageUrl": null,
"theme": null,
"twitterCard": null
},
"description": "string",
"endsAt": "string",
"feedbackFormId": "string",
"gallery": [
{
"alt": null,
"caption": null,
"url": null
}
],
"guestsMax": 0,
"hostInfo": [
{
"author": null,
"avatarUrl": null,
"bio": null,
"handle": null,
"name": null,
"role": null,
"url": null,
"userId": null
}
],
"hosts": [
{}
],
"id": "string",
"joinLinkHidden": true,
"joinLinkVisibility": "attendees",
"location": "string",
"phase": "live",
"previousStartsAt": "string",
"questions": [
{
"help": null,
"label": null,
"max": null,
"min": null,
"name": null,
"options": null,
"pattern": null,
"placeholder": null,
"required": null,
"type": null,
"value": null
}
],
"recapUrl": "string",
"recordingUrl": "string",
"recurrence": {
"byWeekday": null,
"count": null,
"freq": null,
"interval": null,
"until": null
},
"rrule": "string",
"rsvpApproval": true,
"sequence": 0,
"seriesId": "string",
"slidesUrl": "string",
"slug": "string",
"startsAt": "string",
"state": "CANCELLED",
"stateReason": "string",
"tagInfo": [
{
"color": null,
"colorDark": null,
"coverUrl": null,
"description": null,
"gradient": null,
"icon": null,
"label": null,
"pagePalette": null,
"pageScheme": null,
"slug": null,
"textColor": null,
"textColorDark": null
}
],
"tags": [
"string"
],
"timezone": "string",
"title": "string",
"topicId": "string",
"updatedAt": "string",
"url": "string",
"venue": {
"city": null,
"country": null,
"lat": null,
"lng": null,
"name": null,
"postalCode": null,
"region": null,
"street": null
}
}
]Option 1
attendanceModestringrequiredcapacitynumberrequiredcapacityStateobjectrequiredShow child parameters
capacitynumberrequiredfullbooleanrequiredgoingnumberrequiredspotsLeftnumberrequiredwaitlistednumberrequiredwaitlistOpenbooleanrequiredcountsobjectrequiredShow child parameters
declinednumberrequiredgoingnumberrequiredinterestednumberrequiredwaitlistnumberrequiredcoverAltstringrequiredcoverUrlstringrequiredcustomizationPieceCustomizationrequiredShow child parameters
customCssstringjsonLdstringogDescriptionstringogTitlestringshareImageUrlstringthemeobjectShow child parameters
accentColorstringbodyFontFamilystringchangelogobjectcolorSchemestringcomponentsobjectcontentWidthstringcustomFontFamilystringfontstringheadingFontFamilystringlayoutobjectmonoFontFamilystringmotionobjectpaletteobjectpaletteDarkobjectpostobjectA structurally large type (a deeply nested or recursive union). Its full shape is served by the endpoint that produces it;
GET /docs/block-schema covers the document block model.primaryColorstringtypographyobjecttwitterCardstringdescriptionstringrequiredendsAtstringrequiredfeedbackFormIdstringrequiredgalleryobject[]requiredShow child parameters
altstringcaptionstringurlstringrequiredguestsMaxnumberrequiredhostInfoBylineView[]requiredShow child parameters
authorstringrequiredavatarUrlstringrequiredbiostringrequiredhandlestringnamestringrequiredrolestringrequiredurlstringrequireduserIdstringrequiredhostsobject[]requiredidstringrequiredjoinLinkHiddenbooleanrequiredjoinLinkVisibilitystringrequiredlocationstringrequiredphasestringrequiredpreviousStartsAtstringrequiredquestionsFormField[]requiredShow child parameters
helpstringlabelstringrequiredmaxnumberminnumbernamestringrequiredoptionsstring[]patternstringplaceholderstringrequiredbooleantypestringrequiredvaluestringrecapUrlstringrequiredrecordingUrlstringrequiredrecurrenceobjectrequiredShow child parameters
byWeekdaystring[]countnumberfreqstringrequiredintervalnumberuntilstringrrulestringrequiredrsvpApprovalbooleanrequiredsequencenumberrequiredseriesIdstringrequiredslidesUrlstringrequiredslugstringrequiredstartsAtstringrequiredstatestringrequiredstateReasonstringrequiredtagInfoTagDisplay[]requiredShow child parameters
colorstringrequiredcolorDarkstringrequiredcoverUrlstringrequireddescriptionstringrequiredgradientarrayrequirediconstringlabelstringrequiredpagePaletteobjectrequiredpageSchemestringrequiredslugstringrequiredtextColorstringrequiredtextColorDarkstringrequiredtagsstring[]requiredtimezonestringrequiredtitlestringrequiredtopicIdstringrequiredupdatedAtstringrequiredurlstringrequiredvenueobjectrequiredShow child parameters
citystringcountrystringlatnumberlngnumbernamestringpostalCodestringregionstringstreetstring[
{
"attendanceMode": "hybrid",
"capacity": 0,
"capacityState": {
"capacity": 0,
"full": true,
"going": 0,
"spotsLeft": 0,
"waitlisted": 0,
"waitlistOpen": true
},
"counts": {
"declined": 0,
"going": 0,
"interested": 0,
"waitlist": 0
},
"coverAlt": "string",
"coverUrl": "string",
"customization": {
"customCss": "string",
"jsonLd": "string",
"ogDescription": "string",
"ogTitle": "string",
"shareImageUrl": "string",
"theme": {
"accentColor": null,
"bodyFontFamily": null,
"changelog": null,
"colorScheme": null,
"components": null,
"contentWidth": null,
"customFontFamily": null,
"font": null,
"headingFontFamily": null,
"layout": null,
"monoFontFamily": null,
"motion": null,
"palette": null,
"paletteDark": null,
"post": null,
"primaryColor": null,
"typography": null
},
"twitterCard": "summary"
},
"description": "string",
"endsAt": "string",
"feedbackFormId": "string",
"gallery": [
{
"alt": "string",
"caption": "string",
"url": "string"
}
],
"guestsMax": 0,
"hostInfo": [
{
"author": null,
"avatarUrl": null,
"bio": null,
"handle": "string",
"name": "string",
"role": null,
"url": null,
"userId": null
}
],
"hosts": [
{}
],
"id": "string",
"joinLinkHidden": true,
"joinLinkVisibility": "attendees",
"location": "string",
"phase": "live",
"previousStartsAt": "string",
"questions": [
{
"help": "string",
"label": "string",
"max": 0,
"min": 0,
"name": "string",
"options": [
null
],
"pattern": "string",
"placeholder": "string",
"required": true,
"type": "checkbox",
"value": "string"
}
],
"recapUrl": "string",
"recordingUrl": "string",
"recurrence": {
"byWeekday": [
null
],
"count": 0,
"freq": "daily",
"interval": 0,
"until": "string"
},
"rrule": "string",
"rsvpApproval": true,
"sequence": 0,
"seriesId": "string",
"slidesUrl": "string",
"slug": "string",
"startsAt": "string",
"state": "CANCELLED",
"stateReason": "string",
"tagInfo": [
{
"color": null,
"colorDark": null,
"coverUrl": null,
"description": null,
"gradient": null,
"icon": "string",
"label": "string",
"pagePalette": null,
"pageScheme": "dark",
"slug": "string",
"textColor": null,
"textColorDark": null
}
],
"tags": [
"string"
],
"timezone": "string",
"title": "string",
"topicId": "string",
"updatedAt": "string",
"url": "string",
"venue": {
"city": "string",
"country": "string",
"lat": 0,
"lng": 0,
"name": "string",
"postalCode": "string",
"region": "string",
"street": "string"
}
}
]Option 2
eventsEventSummary[]requiredShow child parameters
attendanceModestringrequiredcapacitynumberrequiredcapacityStateobjectrequiredShow child parameters
capacitynumberrequiredfullbooleanrequiredgoingnumberrequiredspotsLeftnumberrequiredwaitlistednumberrequiredwaitlistOpenbooleanrequiredcountsobjectrequiredShow child parameters
declinednumberrequiredgoingnumberrequiredinterestednumberrequiredwaitlistnumberrequiredcoverAltstringrequiredcoverUrlstringrequiredcustomizationPieceCustomizationrequiredShow child parameters
customCssstringjsonLdstringogDescriptionstringogTitlestringshareImageUrlstringthemeobjecttwitterCardstringdescriptionstringrequiredendsAtstringrequiredfeedbackFormIdstringrequiredgalleryobject[]requiredShow child parameters
altstringcaptionstringurlstringrequiredguestsMaxnumberrequiredhostInfoBylineView[]requiredShow child parameters
authorstringrequiredavatarUrlstringrequiredbiostringrequiredhandlestringnamestringrequiredrolestringrequiredurlstringrequireduserIdstringrequiredhostsobject[]requiredidstringrequiredjoinLinkHiddenbooleanrequiredjoinLinkVisibilitystringrequiredlocationstringrequiredphasestringrequiredpreviousStartsAtstringrequiredquestionsFormField[]requiredShow child parameters
helpstringlabelstringrequiredmaxnumberminnumbernamestringrequiredoptionsstring[]patternstringplaceholderstringrequiredbooleantypestringrequiredvaluestringrecapUrlstringrequiredrecordingUrlstringrequiredrecurrenceobjectrequiredShow child parameters
byWeekdaystring[]countnumberfreqstringrequiredintervalnumberuntilstringrrulestringrequiredrsvpApprovalbooleanrequiredsequencenumberrequiredseriesIdstringrequiredslidesUrlstringrequiredslugstringrequiredstartsAtstringrequiredstatestringrequiredstateReasonstringrequired{
"events": [
{
"attendanceMode": "hybrid",
"capacity": 0,
"capacityState": {
"capacity": null,
"full": true,
"going": 0,
"spotsLeft": null,
"waitlisted": 0,
"waitlistOpen": true
},
"counts": {
"declined": 0,
"going": 0,
"interested": 0,
"waitlist": 0
},
"coverAlt": "string",
"coverUrl": "string",
"customization": {
"customCss": null,
"jsonLd": null,
"ogDescription": null,
"ogTitle": null,
"shareImageUrl": null,
"theme": null,
"twitterCard": null
},
"description": "string",
"endsAt": "string",
"feedbackFormId": "string",
"gallery": [
{
"alt": null,
"caption": null,
"url": null
}
],
"guestsMax": 0,
"hostInfo": [
{
"author": null,
"avatarUrl": null,
"bio": null,
"handle": null,
"name": null,
"role": null,
"url": null,
"userId": null
}
],
"hosts": [
{}
],
"id": "string",
"joinLinkHidden": true,
"joinLinkVisibility": "attendees",
"location": "string",
"phase": "live",
"previousStartsAt": "string",
"questions": [
{
"help": null,
"label": null,
"max": null,
"min": null,
"name": null,
"options": null,
"pattern": null,
"placeholder": null,
"required": null,
"type": null,
"value": null
}
],
"recapUrl": "string",
"recordingUrl": "string",
"recurrence": {
"byWeekday": null,
"count": null,
"freq": null,
"interval": null,
"until": null
},
"rrule": "string",
"rsvpApproval": true,
"sequence": 0,
"seriesId": "string",
"slidesUrl": "string",
"slug": "string",
"startsAt": "string",
"state": "CANCELLED",
"stateReason": "string",
"tagInfo": [
{
"color": null,
"colorDark": null,
"coverUrl": null,
"description": null,
"gradient": null,
"icon": null,
"label": null,
"pagePalette": null,
"pageScheme": null,
"slug": null,
"textColor": null,
"textColorDark": null
}
],
"tags": [
"string"
],
"timezone": "string",
"title": "string",
"topicId": "string",
"updatedAt": "string",
"url": "string",
"venue": {
"city": null,
"country": null,
"lat": null,
"lng": null,
"name": null,
"postalCode": null,
"region": null,
"street": null
}
}
],
"page": {
"limit": 0,
"hasMore": true,
"nextCursor": "string",
"has_more": true,
"next_cursor": "string",
"total": 0
},
"data": [
{
"attendanceMode": "hybrid",
"capacity": 0,
"capacityState": {
"capacity": null,
"full": true,
"going": 0,
"spotsLeft": null,
"waitlisted": 0,
"waitlistOpen": true
},
"counts": {
"declined": 0,
"going": 0,
"interested": 0,
"waitlist": 0
},
"coverAlt": "string",
"coverUrl": "string",
"customization": {
"customCss": null,
"jsonLd": null,
"ogDescription": null,
"ogTitle": null,
"shareImageUrl": null,
"theme": null,
"twitterCard": null
},
"description": "string",
"endsAt": "string",
"feedbackFormId": "string",
"gallery": [
{
"alt": null,
"caption": null,
"url": null
}
],
"guestsMax": 0,
"hostInfo": [
{
"author": null,
"avatarUrl": null,
"bio": null,
"handle": null,
"name": null,
"role": null,
"url": null,
"userId": null
}
],
"hosts": [
{}
],
"id": "string",
"joinLinkHidden": true,
"joinLinkVisibility": "attendees",
"location": "string",
"phase": "live",
"previousStartsAt": "string",
"questions": [
{
"help": null,
"label": null,
"max": null,
"min": null,
"name": null,
"options": null,
"pattern": null,
"placeholder": null,
"required": null,
"type": null,
"value": null
}
],
"recapUrl": "string",
"recordingUrl": "string",
"recurrence": {
"byWeekday": null,
"count": null,
"freq": null,
"interval": null,
"until": null
},
"rrule": "string",
"rsvpApproval": true,
"sequence": 0,
"seriesId": "string",
"slidesUrl": "string",
"slug": "string",
"startsAt": "string",
"state": "CANCELLED",
"stateReason": "string",
"tagInfo": [
{
"color": null,
"colorDark": null,
"coverUrl": null,
"description": null,
"gradient": null,
"icon": null,
"label": null,
"pagePalette": null,
"pageScheme": null,
"slug": null,
"textColor": null,
"textColorDark": null
}
],
"tags": [
"string"
],
"timezone": "string",
"title": "string",
"topicId": "string",
"updatedAt": "string",
"url": "string",
"venue": {
"city": null,
"country": null,
"lat": null,
"lng": null,
"name": null,
"postalCode": null,
"region": null,
"street": null
}
}
]
}400 The request could not be understood — a malformed header, path or query value (
request.malformed). A value that was understood but is not acceptable is a 422 validation.failed.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}401 No credential, or one that is expired or revoked (
auth.required). Send a Bearer token or the session cookie.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}403 Authenticated, and not allowed — always
rbac.forbidden, whether what is missing is the capability, the token scope, or a resource the token is pinned away from. The message names the capability and, for a scope refusal, the scopes that would grant it. A refusal because of the PLAN is a 402 with quota.exceeded, not this.{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}404 No such thing — one of the ids in the path does not resolve, or resolves to something this caller may not see (
*.not_found).{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}429 Rate limited — see the RateLimit-* headers.
{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}default Error — the stable { error: { code, message } } envelope.
{
"error": {
"code": "string",
"message": "string",
"details": {},
"docs": "string",
"reason": "string",
"slugs": [
"string"
],
"conflict": {
"etag": "string",
"ops": [
null
]
}
},
"requestId": "string"
}The Forumulate teamUpdated