Introduction
Welcome to the **Venue Family API**. This documentation provides everything you need to integrate external systems, websites, and apps with our ticketing, scheduling, dynamic forms, and venue management services.
### Official Client SDKs
We provide official, strongly-typed client libraries with built-in webhook verification and testing mocks:
- **PHP & Laravel**: `composer require venue-family/sdk`
- **TypeScript & JavaScript**: `npm install @venue-family/sdk`
- **Python**: `pip install venue-family`
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Endpoints
POST api/auth/login
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"password\": \"architecto\",
\"device_name\": \"n\",
\"organization_slug\": \"architecto\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"password": "architecto",
"device_name": "n",
"organization_slug": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/auth/register
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/register" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"chosen_name\": \"n\",
\"artist_name\": \"g\",
\"email\": \"rowan.gulgowski@example.com\",
\"phone\": \"dljnikhwaykcmyuw\",
\"bio\": \"p\",
\"interests\": \"architecto\",
\"password\": \"]|{+-0pBNvYg\",
\"device_name\": \"h\",
\"organization_slug\": \"architecto\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/register"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"chosen_name": "n",
"artist_name": "g",
"email": "rowan.gulgowski@example.com",
"phone": "dljnikhwaykcmyuw",
"bio": "p",
"interests": "architecto",
"password": "]|{+-0pBNvYg",
"device_name": "h",
"organization_slug": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Validate a token for embed access
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/validate-token" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"architecto\",
\"organization_slug\": \"architecto\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/validate-token"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "architecto",
"organization_slug": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send a password reset link to the user's email address
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/forgot-password" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"organization_slug\": \"architecto\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/forgot-password"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"organization_slug": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset the user's password
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/reset-password" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"token\": \"architecto\",
\"email\": \"zbailey@example.net\",
\"password\": \"-0pBNvYgxw\",
\"organization_slug\": \"architecto\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/reset-password"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"token": "architecto",
"email": "zbailey@example.net",
"password": "-0pBNvYgxw",
"organization_slug": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Stripe checkout session
Example request:
curl --request POST \
"https://venuefamily.com/api/create-checkout-session" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"plan\": \"base\"
}"
const url = new URL(
"https://venuefamily.com/api/create-checkout-session"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"plan": "base"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get checkout session status.
This endpoint is unauthenticated by necessity — it is polled by the
post-payment return page before an account exists — so it must leak
nothing about the buyer. It used to return customer_email,
customer_id (cus_…) and subscription_id (sub_…), keyed only by a
Stripe Checkout Session id. Session ids are not brute-forcible, but they
travel in a query string (?session_id={CHECKOUT_SESSION_ID}) and so
leak through browser history, the Referer header, proxy/CDN access
logs and analytics — anyone who recovers one could pull the buyer's
email and Stripe identifiers.
The only consumer (resources/views/signup/checkout-success.blade.php)
reads status and nothing else, so status is all this returns.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/checkout-session/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/checkout-session/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
set-cookie: XSRF-TOKEN=eyJpdiI6Ilh5eGVIUGVtZHAzTE9TdlJ6WW1OQUE9PSIsInZhbHVlIjoidTl2T21HZktoT1c3NVZjc3RVVFp3cHpseUF5djhFeGJ0TjV4TTRDZ1A0WXUwMXNxSFI4MTVML2lqTWJPRTJ6NTkweEV3SjVXZzJ1Q3VKdUplLzgxWU1OS2Q1ZUZxMUIxcjNFNlpZZUpDNVo5bWxVbitVZ1VSaTJEMWllN0VlalEiLCJtYWMiOiI0YmQyMjI4YjNlYTAzYWU2ODE4M2NiNDM0ZmQ1OGYyNDU2ZWU0NjcxZDZjM2Y5ZjdlNzg3YzgxOWQ4NTE5MGI4IiwidGFnIjoiIn0%3D; expires=Sat, 29 Aug 2026 23:48:53 GMT; Max-Age=7200; path=/; secure; samesite=none; partitioned; venue_family_session=eyJpdiI6IjJVMU5VWlk1QTl0VXhxSkJ3WGtkMXc9PSIsInZhbHVlIjoiWG5xa2tCUnBiWVFvWVNZblY3MHgrL1FhdGJoYzFnUWIveFFpNWtDV08wcTd5aklSbmVhbVM0WVlITmNxR1FwN0FWTDRuZ252ZldNZWFZUDJ0dG1odmpqRWhKcDZlVVpsWGZUejJlWTNRdFI2LzRYY0IwRHNaOTVOaWw1REs5ZUkiLCJtYWMiOiI5YmI5NjgxOTEzMmQ4ODlkYmQ1MThmOWRhNWZiYTJhMWQzZDI1OTdkMTc1NTNhYjQzN2UwZjNhYWY2ZjZiNzZlIiwidGFnIjoiIn0%3D; expires=Sat, 29 Aug 2026 23:48:53 GMT; Max-Age=7200; path=/; secure; httponly; samesite=none; partitioned; google_ads_visitor_id=eyJpdiI6Ing0UFdTanFwSGJpRE1MUlY5MTUxMVE9PSIsInZhbHVlIjoiTjNDeFZqTW9pZGlwd0p1a0hYQTdrejZEdGVRblUzODVDbWFBNWRVWkFCM1BjbTJjc2Rtd0hYc2Q2UGFJWEJnUW9lVDdkeEhwSXVPYi9tOGtYbDArTVZ3eHYwUFIzSm0xcjl1dlFQVDRLY2s9IiwibWFjIjoiNGZkYTBmY2E4MzRkY2ExODg1NzVjNjdkNDViOTI0YWJiYjdhZjE5YmIzN2M5NWVhYzQ5YTI3NDVmYzcyMDQ4YiIsInRhZyI6IiJ9; expires=Mon, 28 Sep 2026 21:48:53 GMT; Max-Age=2592000; path=/; secure; samesite=lax
{
"error": "Failed to retrieve session. Please try again."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Test connectivity for external integrations
Example request:
curl --request GET \
--get "https://venuefamily.com/api/health" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 58
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"status": "ok",
"timestamp": "2026-08-29T21:48:53.358596Z",
"service": "venue-family-forms-api",
"version": "1.0"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Exchange a console-minted 6-digit pairing code for the station-bound companion token. Public by necessity (the companion holds no credential yet), tightly throttled, and every failure is the same 422 so the endpoint cannot be used as a code oracle. The response carries station labels only — never member data.
Example request:
curl --request POST \
"https://venuefamily.com/api/companion/pair" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"code\": \"569775\",
\"device_name\": \"n\"
}"
const url = new URL(
"https://venuefamily.com/api/companion/pair"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"code": "569775",
"device_name": "n"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Relay a card tap from the paired companion. Requires a REAL companion token (session auth never resolves a station) holding the companion:tap ability — checked fail-closed with in_array, never can(), which wildcard-matches legacy '*' tokens. Only {picc, cmac} is read from the payload: no simulation shortcut, no client-supplied event date. Responses are deliberately coarse — the companion displays no PII and must never receive any.
Example request:
curl --request POST \
"https://venuefamily.com/api/companion/tap" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"picc\": \"b\",
\"cmac\": \"n\"
}"
const url = new URL(
"https://venuefamily.com/api/companion/tap"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"picc": "b",
"cmac": "n"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/events/upcoming
Example request:
curl --request GET \
--get "https://venuefamily.com/api/events/upcoming" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/events/upcoming"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
[]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Keyword search across every organization, UNAUTHENTICATED.
It filtered on nothing at all: drafts, pending submissions and events
explicitly flagged private were all searchable by name, subtitle and
description by anyone on the internet — the "Confidential Donor Dinner"
problem. Event::scopePubliclyListed() is the platform's single visibility
gate (published AND not private); the sitemap, the discover page and the
public event page all go through it, so this must too.
The keyword clauses have to be grouped: where(A)->orWhere(B)->orWhere(C)
on top of the visibility scope would let each or escape it and re-expose
everything.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/events/search" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"q\": \"bngz\"
}"
const url = new URL(
"https://venuefamily.com/api/events/search"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"q": "bngz"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 56
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
[]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/user
Example request:
curl --request GET \
--get "https://venuefamily.com/api/user" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/user"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List an organization's events.
auth:sanctum used to be the ENTIRE authorization: the organization is
named by a caller-chosen organization_id query parameter, so any
authenticated account could read any tenant's operator data by walking
ids. The response is raw Eloquent — Event declares no $hidden, so it
carries drafts, private events, the whole operator metadata registry,
tech_requirements, finance_approval/director_approval and the
eager-loaded creator User record.
Held to the same bar as eventDates() below (isStaff, which
short-circuits for super admins) rather than a policy on each row: this
is an operator surface, and the sibling method in this controller already
decided that operator data on an event belongs to staff of the
organization that owns it.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/events" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"organization_id\": 16,
\"location_id\": 16,
\"type\": \"architecto\",
\"private\": true,
\"recurring\": true,
\"start_date\": \"2026-08-29T14:48:53\",
\"end_date\": \"2026-08-29T14:48:53\",
\"include_past\": true,
\"per_page\": 22
}"
const url = new URL(
"https://venuefamily.com/api/events"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"organization_id": 16,
"location_id": 16,
"type": "architecto",
"private": true,
"recurring": true,
"start_date": "2026-08-29T14:48:53",
"end_date": "2026-08-29T14:48:53",
"include_past": true,
"per_page": 22
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create an event.
organization_id is REQUIRED and the event is attached through
attachToOrganization(), because this platform is multi-tenant by
Organization and an event that belongs to no tenant is not a harmless
loose row:
- EventPolicy::managesEventOrganization() resolves the owning org, so an orphan is invisible to every org dashboard and unmanageable by anyone except the account that made it;
- the global surfaces are NOT org-scoped — Event::publiclyListed() feeds
the sitemap, and /events/{slug}, /api/events/upcoming and
/api/events/search are cross-org — so any authenticated account could
POST an event, PUT status=published (the policy grants
updateto the creator) and mint permanent, indexable public content on our domain that no operator owns and no operator can take down.
Authorization reuses the events.create gate the Ops MCP CreateEventTool
already goes through, so an API caller cannot file an event into an
organization they have no role in.
user_id is the producer of record and is REQUIRED — implicitly, via the
authenticated caller, or explicitly by naming a user who holds a role in
the same organization. An explicit producer from outside the organization
is refused rather than silently ignored: attribution is what the partner
surfaces scope by, so it cannot be a way to file work onto a stranger.
Example request:
curl --request POST \
"https://venuefamily.com/api/events" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"organization_id\": 16,
\"user_id\": 16,
\"name\": \"n\",
\"subtitle\": \"g\",
\"description\": \"Eius et animi quos velit et.\",
\"type\": \"v\",
\"booking_type\": \"community\",
\"age_restriction\": 1,
\"private\": true,
\"recurring\": true,
\"requires_tech\": false,
\"frequency_mode\": \"l\"
}"
const url = new URL(
"https://venuefamily.com/api/events"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"organization_id": 16,
"user_id": 16,
"name": "n",
"subtitle": "g",
"description": "Eius et animi quos velit et.",
"type": "v",
"booking_type": "community",
"age_restriction": 1,
"private": true,
"recurring": true,
"requires_tech": false,
"frequency_mode": "l"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/events/{id}
Example request:
curl --request GET \
--get "https://venuefamily.com/api/events/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/events/44"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/events/{id}
Example request:
curl --request PUT \
"https://venuefamily.com/api/events/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"subtitle\": \"n\",
\"description\": \"Eius et animi quos velit et.\",
\"type\": \"v\",
\"booking_type\": \"internal\",
\"age_restriction\": 1,
\"private\": false,
\"recurring\": false,
\"requires_tech\": false,
\"frequency_mode\": \"l\"
}"
const url = new URL(
"https://venuefamily.com/api/events/44"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"subtitle": "n",
"description": "Eius et animi quos velit et.",
"type": "v",
"booking_type": "internal",
"age_restriction": 1,
"private": false,
"recurring": false,
"requires_tech": false,
"frequency_mode": "l"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/events/{id}
Example request:
curl --request DELETE \
"https://venuefamily.com/api/events/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/events/44"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Dates for one event, on the AUTHENTICATED api (`/api/events/{event}/dates`).
Kept separate from publicEventDates() below: this route has no
{organization} parameter, so it cannot share a signature with the
public one.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/events/44/dates" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/events/44/dates"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/events/{event_id}/dates
Example request:
curl --request POST \
"https://venuefamily.com/api/events/44/dates" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"subtitle\": \"n\",
\"description\": \"Eius et animi quos velit et.\",
\"date\": \"2026-08-29T14:48:53\",
\"event_start\": \"14:48\",
\"event_end\": \"14:48\",
\"rental_start\": \"14:48\",
\"rental_end\": \"14:48\",
\"status\": \"published\",
\"tech_required\": true
}"
const url = new URL(
"https://venuefamily.com/api/events/44/dates"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"subtitle": "n",
"description": "Eius et animi quos velit et.",
"date": "2026-08-29T14:48:53",
"event_start": "14:48",
"event_end": "14:48",
"rental_start": "14:48",
"rental_end": "14:48",
"status": "published",
"tech_required": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/event-dates/{eventDate_id}
Example request:
curl --request GET \
--get "https://venuefamily.com/api/event-dates/1673" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/event-dates/1673"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/auth/user
Example request:
curl --request GET \
--get "https://venuefamily.com/api/auth/user" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/auth/user"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/auth/logout
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/logout" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/auth/logout"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/auth/refresh
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/refresh" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"device_name\": \"b\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/refresh"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"device_name": "b"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/auth/revoke-all
Example request:
curl --request POST \
"https://venuefamily.com/api/auth/revoke-all" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/auth/revoke-all"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update user profile information
Example request:
curl --request PUT \
"https://venuefamily.com/api/auth/profile" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"first_name\": \"n\",
\"last_name\": \"g\",
\"chosen_name\": \"z\",
\"artist_name\": \"m\",
\"phone\": \"iyvdljnikhwaykcm\",
\"bio\": \"y\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/profile"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"first_name": "n",
"last_name": "g",
"chosen_name": "z",
"artist_name": "m",
"phone": "iyvdljnikhwaykcm",
"bio": "y"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update user password
Example request:
curl --request PUT \
"https://venuefamily.com/api/auth/password" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"current_password\": \"architecto\",
\"password\": \"]|{+-0pBNvYg\"
}"
const url = new URL(
"https://venuefamily.com/api/auth/password"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"current_password": "architecto",
"password": "]|{+-0pBNvYg"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a new location access request
Example request:
curl --request POST \
"https://venuefamily.com/api/location-access-requests" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"location_id\": \"architecto\",
\"message\": \"n\"
}"
const url = new URL(
"https://venuefamily.com/api/location-access-requests"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"location_id": "architecto",
"message": "n"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Approve a location access request
Example request:
curl --request POST \
"https://venuefamily.com/api/location-access-requests/1/approve" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/location-access-requests/1/approve"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Deny a location access request
Example request:
curl --request POST \
"https://venuefamily.com/api/location-access-requests/1/deny" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/location-access-requests/1/deny"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a newly created interest
Example request:
curl --request POST \
"https://venuefamily.com/api/interests" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"description\": \"Eius et animi quos velit et.\",
\"icon\": \"v\",
\"parent_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/interests"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"description": "Eius et animi quos velit et.",
"icon": "v",
"parent_id": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified interest
Example request:
curl --request PUT \
"https://venuefamily.com/api/interests/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"b\",
\"description\": \"Eius et animi quos velit et.\",
\"icon\": \"v\",
\"parent_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/interests/1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "b",
"description": "Eius et animi quos velit et.",
"icon": "v",
"parent_id": 16
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified interest
Example request:
curl --request DELETE \
"https://venuefamily.com/api/interests/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/interests/1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a new location (authenticated)
Example request:
curl --request POST \
"https://venuefamily.com/api/architecto/locations" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/architecto/locations"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update a location (authenticated)
Example request:
curl --request PUT \
"https://venuefamily.com/api/architecto/locations/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/architecto/locations/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete a location (authenticated)
Example request:
curl --request DELETE \
"https://venuefamily.com/api/architecto/locations/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/architecto/locations/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a child location (authenticated)
Example request:
curl --request POST \
"https://venuefamily.com/api/architecto/locations/architecto/children" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/architecto/locations/architecto/children"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get volunteer opportunities for a specific EVENT DATE (open, capacity remaining, future volunteer-category shifts).
Example request:
curl --request GET \
--get "https://venuefamily.com/api/volunteer-opportunities" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"organization_id\": 16,
\"search\": \"n\",
\"page\": 67,
\"per_page\": 16
}"
const url = new URL(
"https://venuefamily.com/api/volunteer-opportunities"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"organization_id": 16,
"search": "n",
"page": 67,
"per_page": 16
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the current user's volunteer ShiftAssignments.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/volunteer-roles/my-roles" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"user_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/volunteer-roles/my-roles"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"user_id": 16
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get standalone (ORGANIZATION-level) volunteer opportunities. A real, live endpoint now — previously backed by a Role query that no seeder or code path ever produced data for.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/standalone-volunteer-opportunities" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"organization_id\": 16,
\"search\": \"n\",
\"page\": 67,
\"per_page\": 16
}"
const url = new URL(
"https://venuefamily.com/api/standalone-volunteer-opportunities"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"organization_id": 16,
"search": "n",
"page": 67,
"per_page": 16
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Claim an open EVENT-DATE volunteer shift via ClaimShift. Leaves the resulting ShiftAssignment as `claimed` (awaiting coordinator approval) unless the ShiftType is configured to auto-approve.
Example request:
curl --request POST \
"https://venuefamily.com/api/volunteer-roles/sign-up" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"shift_id\": 16,
\"user_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/volunteer-roles/sign-up"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"shift_id": 16,
"user_id": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Release the current user's active volunteer ShiftAssignment, freeing the slot back up.
Example request:
curl --request POST \
"https://venuefamily.com/api/volunteer-roles/cancel" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"shift_id\": 16,
\"user_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/volunteer-roles/cancel"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"shift_id": 16,
"user_id": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Claim an open ORGANIZATION-level (standalone) volunteer shift via ClaimShift.
Example request:
curl --request POST \
"https://venuefamily.com/api/standalone-volunteer-roles/sign-up" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"shift_id\": 16,
\"user_id\": 16
}"
const url = new URL(
"https://venuefamily.com/api/standalone-volunteer-roles/sign-up"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"shift_id": 16,
"user_id": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/approve-all/{id}
Example request:
curl --request POST \
"https://venuefamily.com/api/approve-all/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/approve-all/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/approve-all-changes/{id}
Example request:
curl --request POST \
"https://venuefamily.com/api/approve-all-changes/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/approve-all-changes/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/approve-event/{id}
Example request:
curl --request POST \
"https://venuefamily.com/api/approve-event/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/approve-event/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/approve-image/{id}
Example request:
curl --request POST \
"https://venuefamily.com/api/approve-image/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/approve-image/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get reviews for the authenticated organization's locations
Example request:
curl --request GET \
--get "https://venuefamily.com/api/reviews" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"approved\",
\"type\": \"feedback\",
\"per_page\": 1
}"
const url = new URL(
"https://venuefamily.com/api/reviews"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "approved",
"type": "feedback",
"per_page": 1
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 120
x-ratelimit-remaining: 119
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Organization token required"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a new review via API
Example request:
curl --request POST \
"https://venuefamily.com/api/reviews" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type\": \"location\",
\"reviewable_id\": 16,
\"rating\": 2,
\"content\": \"g\",
\"reviewer_name\": \"z\",
\"reviewer_email\": \"rempel.chadrick@example.org\"
}"
const url = new URL(
"https://venuefamily.com/api/reviews"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type": "location",
"reviewable_id": 16,
"rating": 2,
"content": "g",
"reviewer_name": "z",
"reviewer_email": "rempel.chadrick@example.org"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update review status (approve/reject)
Example request:
curl --request PATCH \
"https://venuefamily.com/api/reviews/architecto/status" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"approved\",
\"message\": \"b\"
}"
const url = new URL(
"https://venuefamily.com/api/reviews/architecto/status"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "approved",
"message": "b"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get review statistics for the organization
Example request:
curl --request GET \
--get "https://venuefamily.com/api/reviews/stats" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/reviews/stats"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 120
x-ratelimit-remaining: 118
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Organization token required"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/track/conversion
Example request:
curl --request POST \
"https://venuefamily.com/api/track/conversion" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/track/conversion"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all interests in a flat structure for easy selection
Example request:
curl --request GET \
--get "https://venuefamily.com/api/interests/flat" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/interests/flat"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 55
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [
{
"id": 64,
"name": "3D Modeling",
"slug": "3d-modeling",
"description": "Creating three-dimensional digital assets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 123,
"name": "AI in Arts",
"slug": "ai-in-arts",
"description": "Exploring artificial intelligence in creative practice",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 134,
"name": "Accessibility Consulting",
"slug": "accessibility-consulting",
"description": "Ensuring programs are accessible to all",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 34,
"name": "Acrobatics",
"slug": "acrobatics",
"description": "Tumbling, balance, and physical feats",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 3,
"name": "Acting",
"slug": "acting",
"description": "Stage, screen, and voice acting",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 33,
"name": "Aerial Arts",
"slug": "aerial-arts",
"description": "Silks, trapeze, and aerial performances",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 19,
"name": "Aerial Dance",
"slug": "aerial-dance",
"description": "Dance combined with aerial apparatus",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 54,
"name": "Analog/Film Photography",
"slug": "analogfilm-photography",
"description": "Traditional darkroom and film processes",
"icon": null,
"parent_id": 50,
"category": "Photography",
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 65,
"name": "Animation",
"slug": "animation",
"description": "Creating moving digital imagery",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 118,
"name": "App Development",
"slug": "app-development",
"description": "Creating mobile and desktop applications",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 73,
"name": "Arranging",
"slug": "arranging",
"description": "Adapting music for different ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 140,
"name": "Art Therapy",
"slug": "art-therapy",
"description": "Visual arts for therapeutic purposes",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 131,
"name": "Arts Education",
"slug": "arts-education",
"description": "Formal arts education initiatives",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 76,
"name": "Audio Production",
"slug": "audio-production",
"description": "Capturing and processing sound",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
},
{
"id": 144,
"name": "Baking & Pastry",
"slug": "baking-pastry",
"description": "Sweet and savory baked goods",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 11,
"name": "Ballet",
"slug": "ballet",
"description": "Classical ballet performance and technique",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 15,
"name": "Ballroom",
"slug": "ballroom",
"description": "Partner and social dancing styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 106,
"name": "Business & Administration",
"slug": "business-administration",
"description": "Operational and leadership skills",
"icon": null,
"parent_id": null,
"category": "Business & Administration"
},
{
"id": 48,
"name": "Calligraphy",
"slug": "calligraphy",
"description": "Artistic lettering and penmanship",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 147,
"name": "Catering Management",
"slug": "catering-management",
"description": "Coordinating food service for events",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 59,
"name": "Ceramics/Pottery",
"slug": "ceramicspottery",
"description": "Clay-based art and functional forms",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 18,
"name": "Choreography",
"slug": "choreography",
"description": "Dance composition and movement design",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts",
"description": "Acrobatics, juggling, and other circus skills",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 31,
"name": "Clown/Vaudeville",
"slug": "clownvaudeville",
"description": "Physical and classical comedic forms",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 36,
"name": "Clowning",
"slug": "clowning",
"description": "Physical comedy and clown performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 27,
"name": "Comedy",
"slug": "comedy",
"description": "Stand-up, improv, and sketch comedy",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 53,
"name": "Commercial Photography",
"slug": "commercial-photography",
"description": "Photography for brands and marketing",
"icon": null,
"parent_id": 50,
"category": "Photography",
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 129,
"name": "Community Outreach",
"slug": "community-outreach",
"description": "Connecting arts with diverse populations",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 26,
"name": "Conducting",
"slug": "conducting",
"description": "Leading musical ensembles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 12,
"name": "Contemporary",
"slug": "contemporary",
"description": "Modern and contemporary dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 92,
"name": "Copywriting",
"slug": "copywriting",
"description": "Writing for marketing and advertising",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 101,
"name": "Costume Design",
"slug": "costume-design",
"description": "Creating costumes for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 89,
"name": "Creative Non-Fiction",
"slug": "creative-non-fiction",
"description": "Fact-based narrative writing",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing",
"description": "Fiction and narrative writing",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
},
{
"id": 143,
"name": "Culinary Arts",
"slug": "culinary-arts",
"description": "Cooking and food preparation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality",
"description": "Food, beverage, and event hosting",
"icon": null,
"parent_id": null,
"category": "Culinary Arts & Hospitality"
},
{
"id": 14,
"name": "Cultural Dance",
"slug": "cultural-dance",
"description": "Traditional and cultural dance forms",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 132,
"name": "Cultural Preservation",
"slug": "cultural-preservation",
"description": "Protecting and celebrating cultural heritage",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 128,
"name": "Curatorial Practice",
"slug": "curatorial-practice",
"description": "Organizing exhibitions and programs",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 24,
"name": "DJing",
"slug": "djing",
"description": "Live music mixing and performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 10,
"name": "Dance",
"slug": "dance",
"description": "Movement-based performance art",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 122,
"name": "Data Analytics",
"slug": "data-analytics",
"description": "Interpreting data to drive decisions",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 125,
"name": "Digital Archiving",
"slug": "digital-archiving",
"description": "Preserving digital assets and records",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 62,
"name": "Digital Art",
"slug": "digital-art",
"description": "Computer-generated and digital media art",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 67,
"name": "Digital Painting",
"slug": "digital-painting",
"description": "Painting using digital tools and tablets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 4,
"name": "Directing",
"slug": "directing",
"description": "Creative leadership for stage productions",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 52,
"name": "Documentary Photography",
"slug": "documentary-photography",
"description": "Capturing real-world events and stories",
"icon": null,
"parent_id": 50,
"category": "Photography",
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 9,
"name": "Dramaturgy",
"slug": "dramaturgy",
"description": "Research and development of plays and operas",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 95,
"name": "Editing/Proofreading",
"slug": "editingproofreading",
"description": "Reviewing and refining written content",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 126,
"name": "Education & Community",
"slug": "education-community",
"description": "Teaching and community engagement",
"icon": null,
"parent_id": null,
"category": "Education & Community"
},
{
"id": 23,
"name": "Ensemble Performance",
"slug": "ensemble-performance",
"description": "Group musical performance (band, choir, orchestra)",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 38,
"name": "Equilibristics",
"slug": "equilibristics",
"description": "Balancing arts (handstands, tightrope)",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 146,
"name": "Event Hosting",
"slug": "event-hosting",
"description": "Professional hosting and hospitality",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 85,
"name": "Fiction",
"slug": "fiction",
"description": "Short stories and novels",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 108,
"name": "Financial Management",
"slug": "financial-management",
"description": "Accounting, budgeting, and financial oversight",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 51,
"name": "Fine Art Photography",
"slug": "fine-art-photography",
"description": "Concept-driven photographic art",
"icon": null,
"parent_id": 50,
"category": "Photography",
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 37,
"name": "Fire Performance",
"slug": "fire-performance",
"description": "Fire manipulation and performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 112,
"name": "Fundraising & Development",
"slug": "fundraising-development",
"description": "Philanthropy and donor relations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 61,
"name": "Glass Art",
"slug": "glass-art",
"description": "Glass blowing and kiln-formed glass",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 91,
"name": "Grant Writing",
"slug": "grant-writing",
"description": "Securing funding through written proposals",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 63,
"name": "Graphic Design",
"slug": "graphic-design",
"description": "Visual communication and layout",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 13,
"name": "Hip Hop",
"slug": "hip-hop",
"description": "Urban dance forms and street styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 109,
"name": "Human Resources",
"slug": "human-resources",
"description": "Talent management and organizational culture",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 46,
"name": "Illustration",
"slug": "illustration",
"description": "Visual storytelling and commercial art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 6,
"name": "Improv",
"slug": "improv",
"description": "Improvisational performance",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 68,
"name": "Installation Art",
"slug": "installation-art",
"description": "Immersive and environmental art installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 22,
"name": "Instrumental Performance",
"slug": "instrumental-performance",
"description": "Playing musical instruments",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 16,
"name": "Jazz",
"slug": "jazz",
"description": "Jazz dance and theatrical dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 94,
"name": "Journalism",
"slug": "journalism",
"description": "Reporting and feature writing",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 35,
"name": "Juggling",
"slug": "juggling",
"description": "Object manipulation and prop juggling",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 110,
"name": "Legal & IP",
"slug": "legal-ip",
"description": "Contracts, copyright, and intellectual property",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 97,
"name": "Lighting Design",
"slug": "lighting-design",
"description": "Stage and performance lighting",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 81,
"name": "Live Sound Engineering",
"slug": "live-sound-engineering",
"description": "Managing audio for live events",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 111,
"name": "Marketing & PR",
"slug": "marketing-pr",
"description": "Audience engagement and brand management",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 141,
"name": "Massage Therapy",
"slug": "massage-therapy",
"description": "Manual manipulation of soft body tissues",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 79,
"name": "Mastering",
"slug": "mastering",
"description": "Final polish of audio productions",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 116,
"name": "Media & Technology",
"slug": "media-technology",
"description": "Digital tools and media platforms",
"icon": null,
"parent_id": null,
"category": "Media & Technology"
},
{
"id": 137,
"name": "Meditation",
"slug": "meditation",
"description": "Mindfulness and meditative techniques",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 57,
"name": "Metalwork",
"slug": "metalwork",
"description": "Sculpting and fabricating with metal",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 69,
"name": "Mixed Media",
"slug": "mixed-media",
"description": "Art combining multiple materials and techniques",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 78,
"name": "Mixing",
"slug": "mixing",
"description": "Balancing multi-track audio recordings",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 145,
"name": "Mixology",
"slug": "mixology",
"description": "Craft cocktail and beverage creation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 66,
"name": "Motion Graphics",
"slug": "motion-graphics",
"description": "Graphic design in motion",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 139,
"name": "Movement Therapy",
"slug": "movement-therapy",
"description": "Dance and movement for wellness",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 47,
"name": "Mural Arts",
"slug": "mural-arts",
"description": "Large-scale public wall art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 70,
"name": "Music & Audio",
"slug": "music-audio",
"description": "Music creation and audio engineering",
"icon": null,
"parent_id": null,
"category": "Music & Audio"
},
{
"id": 71,
"name": "Music Composition",
"slug": "music-composition",
"description": "Writing and arranging music",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
},
{
"id": 20,
"name": "Music Performance",
"slug": "music-performance",
"description": "Live musical performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 5,
"name": "Musical Theater",
"slug": "musical-theater",
"description": "Combined acting, singing, and dancing",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 114,
"name": "Non-Profit Governance",
"slug": "non-profit-governance",
"description": "Board management and non-profit operations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 44,
"name": "Oil Painting",
"slug": "oil-painting",
"description": "Classical and contemporary oil painting",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 25,
"name": "Opera",
"slug": "opera",
"description": "Classical operatic performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 75,
"name": "Orchestration",
"slug": "orchestration",
"description": "Writing music for large ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing",
"description": "2D visual art creation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 41,
"name": "Performance Art",
"slug": "performance-art",
"description": "Conceptual live art performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts",
"description": "Live performance disciplines",
"icon": null,
"parent_id": null,
"category": "Performing Arts"
},
{
"id": 50,
"name": "Photography",
"slug": "photography",
"description": "Photographic art and documentation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 55,
"name": "Photojournalism",
"slug": "photojournalism",
"description": "Telling news stories through photography",
"icon": null,
"parent_id": 50,
"category": "Photography",
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 7,
"name": "Physical Theater",
"slug": "physical-theater",
"description": "Movement-based dramatic storytelling",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 88,
"name": "Playwriting",
"slug": "playwriting",
"description": "Writing specifically for stage performance",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 82,
"name": "Podcast Production",
"slug": "podcast-production",
"description": "Recording and editing spoken word content",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 86,
"name": "Poetry",
"slug": "poetry",
"description": "Verse and poetic expression",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 49,
"name": "Printmaking",
"slug": "printmaking",
"description": "Etching, lithography, and screen printing",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing",
"description": "Writing for business and non-profits",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
},
{
"id": 113,
"name": "Project Management",
"slug": "project-management",
"description": "Organizing and executing specific initiatives",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 103,
"name": "Projection Design",
"slug": "projection-design",
"description": "Video and image projections for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 104,
"name": "Prop Mastery",
"slug": "prop-mastery",
"description": "Creating and managing production props",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 40,
"name": "Puppetry",
"slug": "puppetry",
"description": "Puppet shows and marionette performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 105,
"name": "Rigging",
"slug": "rigging",
"description": "Setting up overhead support systems",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 30,
"name": "Satire",
"slug": "satire",
"description": "Humorous social and political commentary",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 74,
"name": "Scoring for Film/Media",
"slug": "scoring-for-filmmedia",
"description": "Creating music for visual media",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 87,
"name": "Screenwriting",
"slug": "screenwriting",
"description": "Writing for film, TV, and theater",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 56,
"name": "Sculpture",
"slug": "sculpture",
"description": "3D art forms and installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 100,
"name": "Set Design",
"slug": "set-design",
"description": "Creating physical environments for performance",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 29,
"name": "Sketch Comedy",
"slug": "sketch-comedy",
"description": "Scripted comedic scenes",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 121,
"name": "Social Media Strategy",
"slug": "social-media-strategy",
"description": "Managing online community and presence",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 72,
"name": "Songwriting",
"slug": "songwriting",
"description": "Creating lyrics and melody",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 80,
"name": "Sound Design",
"slug": "sound-design",
"description": "Creating specific audio elements and atmospheres",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 98,
"name": "Sound Engineering",
"slug": "sound-engineering",
"description": "Audio systems and sound design",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 138,
"name": "Sound Healing",
"slug": "sound-healing",
"description": "Therapeutic use of sound and music",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 39,
"name": "Spoken Word",
"slug": "spoken-word",
"description": "Poetic and narrative performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 99,
"name": "Stage Management",
"slug": "stage-management",
"description": "Coordinating live productions",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 28,
"name": "Stand-up Comedy",
"slug": "stand-up-comedy",
"description": "Individual comedic performance",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 107,
"name": "Strategic Planning",
"slug": "strategic-planning",
"description": "Long-term goal setting and roadmapping",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 77,
"name": "Studio Recording",
"slug": "studio-recording",
"description": "Capturing audio in a controlled environment",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 124,
"name": "Systems Administration",
"slug": "systems-administration",
"description": "Managing IT infrastructure and networks",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 17,
"name": "Tap",
"slug": "tap",
"description": "Rhythm-based percussive dance",
"icon": null,
"parent_id": 10,
"category": "Dance",
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 127,
"name": "Teaching Artists",
"slug": "teaching-artists",
"description": "Artists who teach their craft",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 102,
"name": "Technical Direction",
"slug": "technical-direction",
"description": "Overseeing technical aspects of production",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 96,
"name": "Technical Production",
"slug": "technical-production",
"description": "Behind-the-scenes production roles",
"icon": null,
"parent_id": null,
"category": "Technical Production"
},
{
"id": 93,
"name": "Technical Writing",
"slug": "technical-writing",
"description": "Creating manuals and documentation",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 60,
"name": "Textile Art",
"slug": "textile-art",
"description": "Fiber-based art and fabric construction",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 2,
"name": "Theater",
"slug": "theater",
"description": "Stage acting and dramatic performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 119,
"name": "UI/UX Design",
"slug": "uiux-design",
"description": "User interface and experience design",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 120,
"name": "Video Production",
"slug": "video-production",
"description": "Filming, editing, and producing video content",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts",
"description": "Visual artistic expressions",
"icon": null,
"parent_id": null,
"category": "Visual Arts"
},
{
"id": 21,
"name": "Vocal Performance",
"slug": "vocal-performance",
"description": "Singing in various styles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 8,
"name": "Voiceover",
"slug": "voiceover",
"description": "Voice acting for various media",
"icon": null,
"parent_id": 2,
"category": "Theater",
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 115,
"name": "Volunteer Management",
"slug": "volunteer-management",
"description": "Recruiting and coordinating volunteers",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 45,
"name": "Watercolor",
"slug": "watercolor",
"description": "Transparent and opaque water-based media",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 117,
"name": "Web Development",
"slug": "web-development",
"description": "Building and maintaining websites",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts",
"description": "Practices focused on health and well-being",
"icon": null,
"parent_id": null,
"category": "Wellness & Healing Arts"
},
{
"id": 148,
"name": "Wine/Sommelier",
"slug": "winesommelier",
"description": "Professional knowledge of wine and service",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 58,
"name": "Woodworking",
"slug": "woodworking",
"description": "Crafting and sculpting with wood",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 130,
"name": "Workshop Facilitation",
"slug": "workshop-facilitation",
"description": "Leading hands-on learning experiences",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature",
"description": "Creative and professional writing",
"icon": null,
"parent_id": null,
"category": "Writing & Literature"
},
{
"id": 136,
"name": "Yoga",
"slug": "yoga",
"description": "Physical and mental yoga practice",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 133,
"name": "Youth Mentorship",
"slug": "youth-mentorship",
"description": "Guiding and supporting young artists",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of interests
Example request:
curl --request GET \
--get "https://venuefamily.com/api/interests" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/interests"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 54
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [
{
"id": 106,
"name": "Business & Administration",
"slug": "business-administration",
"description": "Operational and leadership skills",
"icon": null,
"parent_id": null,
"category": "Business & Administration",
"children": [
{
"id": 107,
"name": "Strategic Planning",
"slug": "strategic-planning",
"description": "Long-term goal setting and roadmapping",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 108,
"name": "Financial Management",
"slug": "financial-management",
"description": "Accounting, budgeting, and financial oversight",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 109,
"name": "Human Resources",
"slug": "human-resources",
"description": "Talent management and organizational culture",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 110,
"name": "Legal & IP",
"slug": "legal-ip",
"description": "Contracts, copyright, and intellectual property",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 111,
"name": "Marketing & PR",
"slug": "marketing-pr",
"description": "Audience engagement and brand management",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 112,
"name": "Fundraising & Development",
"slug": "fundraising-development",
"description": "Philanthropy and donor relations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 113,
"name": "Project Management",
"slug": "project-management",
"description": "Organizing and executing specific initiatives",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 114,
"name": "Non-Profit Governance",
"slug": "non-profit-governance",
"description": "Board management and non-profit operations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 115,
"name": "Volunteer Management",
"slug": "volunteer-management",
"description": "Recruiting and coordinating volunteers",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
}
]
},
{
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality",
"description": "Food, beverage, and event hosting",
"icon": null,
"parent_id": null,
"category": "Culinary Arts & Hospitality",
"children": [
{
"id": 143,
"name": "Culinary Arts",
"slug": "culinary-arts",
"description": "Cooking and food preparation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 144,
"name": "Baking & Pastry",
"slug": "baking-pastry",
"description": "Sweet and savory baked goods",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 145,
"name": "Mixology",
"slug": "mixology",
"description": "Craft cocktail and beverage creation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 146,
"name": "Event Hosting",
"slug": "event-hosting",
"description": "Professional hosting and hospitality",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 147,
"name": "Catering Management",
"slug": "catering-management",
"description": "Coordinating food service for events",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 148,
"name": "Wine/Sommelier",
"slug": "winesommelier",
"description": "Professional knowledge of wine and service",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
}
]
},
{
"id": 126,
"name": "Education & Community",
"slug": "education-community",
"description": "Teaching and community engagement",
"icon": null,
"parent_id": null,
"category": "Education & Community",
"children": [
{
"id": 127,
"name": "Teaching Artists",
"slug": "teaching-artists",
"description": "Artists who teach their craft",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 128,
"name": "Curatorial Practice",
"slug": "curatorial-practice",
"description": "Organizing exhibitions and programs",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 129,
"name": "Community Outreach",
"slug": "community-outreach",
"description": "Connecting arts with diverse populations",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 130,
"name": "Workshop Facilitation",
"slug": "workshop-facilitation",
"description": "Leading hands-on learning experiences",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 131,
"name": "Arts Education",
"slug": "arts-education",
"description": "Formal arts education initiatives",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 132,
"name": "Cultural Preservation",
"slug": "cultural-preservation",
"description": "Protecting and celebrating cultural heritage",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 133,
"name": "Youth Mentorship",
"slug": "youth-mentorship",
"description": "Guiding and supporting young artists",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 134,
"name": "Accessibility Consulting",
"slug": "accessibility-consulting",
"description": "Ensuring programs are accessible to all",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
}
]
},
{
"id": 116,
"name": "Media & Technology",
"slug": "media-technology",
"description": "Digital tools and media platforms",
"icon": null,
"parent_id": null,
"category": "Media & Technology",
"children": [
{
"id": 117,
"name": "Web Development",
"slug": "web-development",
"description": "Building and maintaining websites",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 118,
"name": "App Development",
"slug": "app-development",
"description": "Creating mobile and desktop applications",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 119,
"name": "UI/UX Design",
"slug": "uiux-design",
"description": "User interface and experience design",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 120,
"name": "Video Production",
"slug": "video-production",
"description": "Filming, editing, and producing video content",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 121,
"name": "Social Media Strategy",
"slug": "social-media-strategy",
"description": "Managing online community and presence",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 122,
"name": "Data Analytics",
"slug": "data-analytics",
"description": "Interpreting data to drive decisions",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 123,
"name": "AI in Arts",
"slug": "ai-in-arts",
"description": "Exploring artificial intelligence in creative practice",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 124,
"name": "Systems Administration",
"slug": "systems-administration",
"description": "Managing IT infrastructure and networks",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 125,
"name": "Digital Archiving",
"slug": "digital-archiving",
"description": "Preserving digital assets and records",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
}
]
},
{
"id": 70,
"name": "Music & Audio",
"slug": "music-audio",
"description": "Music creation and audio engineering",
"icon": null,
"parent_id": null,
"category": "Music & Audio",
"children": [
{
"id": 71,
"name": "Music Composition",
"slug": "music-composition",
"description": "Writing and arranging music",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"children": [
{
"id": 72,
"name": "Songwriting",
"slug": "songwriting",
"description": "Creating lyrics and melody",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 73,
"name": "Arranging",
"slug": "arranging",
"description": "Adapting music for different ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 74,
"name": "Scoring for Film/Media",
"slug": "scoring-for-filmmedia",
"description": "Creating music for visual media",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 75,
"name": "Orchestration",
"slug": "orchestration",
"description": "Writing music for large ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
}
],
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
},
{
"id": 76,
"name": "Audio Production",
"slug": "audio-production",
"description": "Capturing and processing sound",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"children": [
{
"id": 77,
"name": "Studio Recording",
"slug": "studio-recording",
"description": "Capturing audio in a controlled environment",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 78,
"name": "Mixing",
"slug": "mixing",
"description": "Balancing multi-track audio recordings",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 79,
"name": "Mastering",
"slug": "mastering",
"description": "Final polish of audio productions",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 80,
"name": "Sound Design",
"slug": "sound-design",
"description": "Creating specific audio elements and atmospheres",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 81,
"name": "Live Sound Engineering",
"slug": "live-sound-engineering",
"description": "Managing audio for live events",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 82,
"name": "Podcast Production",
"slug": "podcast-production",
"description": "Recording and editing spoken word content",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
}
],
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
}
]
},
{
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts",
"description": "Live performance disciplines",
"icon": null,
"parent_id": null,
"category": "Performing Arts",
"children": [
{
"id": 2,
"name": "Theater",
"slug": "theater",
"description": "Stage acting and dramatic performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 3,
"name": "Acting",
"slug": "acting",
"description": "Stage, screen, and voice acting",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 4,
"name": "Directing",
"slug": "directing",
"description": "Creative leadership for stage productions",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 5,
"name": "Musical Theater",
"slug": "musical-theater",
"description": "Combined acting, singing, and dancing",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 6,
"name": "Improv",
"slug": "improv",
"description": "Improvisational performance",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 7,
"name": "Physical Theater",
"slug": "physical-theater",
"description": "Movement-based dramatic storytelling",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 8,
"name": "Voiceover",
"slug": "voiceover",
"description": "Voice acting for various media",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 9,
"name": "Dramaturgy",
"slug": "dramaturgy",
"description": "Research and development of plays and operas",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 10,
"name": "Dance",
"slug": "dance",
"description": "Movement-based performance art",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 11,
"name": "Ballet",
"slug": "ballet",
"description": "Classical ballet performance and technique",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 12,
"name": "Contemporary",
"slug": "contemporary",
"description": "Modern and contemporary dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 13,
"name": "Hip Hop",
"slug": "hip-hop",
"description": "Urban dance forms and street styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 14,
"name": "Cultural Dance",
"slug": "cultural-dance",
"description": "Traditional and cultural dance forms",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 15,
"name": "Ballroom",
"slug": "ballroom",
"description": "Partner and social dancing styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 16,
"name": "Jazz",
"slug": "jazz",
"description": "Jazz dance and theatrical dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 17,
"name": "Tap",
"slug": "tap",
"description": "Rhythm-based percussive dance",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 18,
"name": "Choreography",
"slug": "choreography",
"description": "Dance composition and movement design",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 19,
"name": "Aerial Dance",
"slug": "aerial-dance",
"description": "Dance combined with aerial apparatus",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 20,
"name": "Music Performance",
"slug": "music-performance",
"description": "Live musical performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 21,
"name": "Vocal Performance",
"slug": "vocal-performance",
"description": "Singing in various styles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 22,
"name": "Instrumental Performance",
"slug": "instrumental-performance",
"description": "Playing musical instruments",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 23,
"name": "Ensemble Performance",
"slug": "ensemble-performance",
"description": "Group musical performance (band, choir, orchestra)",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 24,
"name": "DJing",
"slug": "djing",
"description": "Live music mixing and performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 25,
"name": "Opera",
"slug": "opera",
"description": "Classical operatic performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 26,
"name": "Conducting",
"slug": "conducting",
"description": "Leading musical ensembles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 27,
"name": "Comedy",
"slug": "comedy",
"description": "Stand-up, improv, and sketch comedy",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 28,
"name": "Stand-up Comedy",
"slug": "stand-up-comedy",
"description": "Individual comedic performance",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 29,
"name": "Sketch Comedy",
"slug": "sketch-comedy",
"description": "Scripted comedic scenes",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 30,
"name": "Satire",
"slug": "satire",
"description": "Humorous social and political commentary",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 31,
"name": "Clown/Vaudeville",
"slug": "clownvaudeville",
"description": "Physical and classical comedic forms",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts",
"description": "Acrobatics, juggling, and other circus skills",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 33,
"name": "Aerial Arts",
"slug": "aerial-arts",
"description": "Silks, trapeze, and aerial performances",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 34,
"name": "Acrobatics",
"slug": "acrobatics",
"description": "Tumbling, balance, and physical feats",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 35,
"name": "Juggling",
"slug": "juggling",
"description": "Object manipulation and prop juggling",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 36,
"name": "Clowning",
"slug": "clowning",
"description": "Physical comedy and clown performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 37,
"name": "Fire Performance",
"slug": "fire-performance",
"description": "Fire manipulation and performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 38,
"name": "Equilibristics",
"slug": "equilibristics",
"description": "Balancing arts (handstands, tightrope)",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 39,
"name": "Spoken Word",
"slug": "spoken-word",
"description": "Poetic and narrative performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 40,
"name": "Puppetry",
"slug": "puppetry",
"description": "Puppet shows and marionette performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 41,
"name": "Performance Art",
"slug": "performance-art",
"description": "Conceptual live art performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
}
]
},
{
"id": 96,
"name": "Technical Production",
"slug": "technical-production",
"description": "Behind-the-scenes production roles",
"icon": null,
"parent_id": null,
"category": "Technical Production",
"children": [
{
"id": 97,
"name": "Lighting Design",
"slug": "lighting-design",
"description": "Stage and performance lighting",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 98,
"name": "Sound Engineering",
"slug": "sound-engineering",
"description": "Audio systems and sound design",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 99,
"name": "Stage Management",
"slug": "stage-management",
"description": "Coordinating live productions",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 100,
"name": "Set Design",
"slug": "set-design",
"description": "Creating physical environments for performance",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 101,
"name": "Costume Design",
"slug": "costume-design",
"description": "Creating costumes for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 102,
"name": "Technical Direction",
"slug": "technical-direction",
"description": "Overseeing technical aspects of production",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 103,
"name": "Projection Design",
"slug": "projection-design",
"description": "Video and image projections for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 104,
"name": "Prop Mastery",
"slug": "prop-mastery",
"description": "Creating and managing production props",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 105,
"name": "Rigging",
"slug": "rigging",
"description": "Setting up overhead support systems",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
}
]
},
{
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts",
"description": "Visual artistic expressions",
"icon": null,
"parent_id": null,
"category": "Visual Arts",
"children": [
{
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing",
"description": "2D visual art creation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 44,
"name": "Oil Painting",
"slug": "oil-painting",
"description": "Classical and contemporary oil painting",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 45,
"name": "Watercolor",
"slug": "watercolor",
"description": "Transparent and opaque water-based media",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 46,
"name": "Illustration",
"slug": "illustration",
"description": "Visual storytelling and commercial art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 47,
"name": "Mural Arts",
"slug": "mural-arts",
"description": "Large-scale public wall art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 48,
"name": "Calligraphy",
"slug": "calligraphy",
"description": "Artistic lettering and penmanship",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 49,
"name": "Printmaking",
"slug": "printmaking",
"description": "Etching, lithography, and screen printing",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 50,
"name": "Photography",
"slug": "photography",
"description": "Photographic art and documentation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 51,
"name": "Fine Art Photography",
"slug": "fine-art-photography",
"description": "Concept-driven photographic art",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 52,
"name": "Documentary Photography",
"slug": "documentary-photography",
"description": "Capturing real-world events and stories",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 53,
"name": "Commercial Photography",
"slug": "commercial-photography",
"description": "Photography for brands and marketing",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 54,
"name": "Analog/Film Photography",
"slug": "analogfilm-photography",
"description": "Traditional darkroom and film processes",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 55,
"name": "Photojournalism",
"slug": "photojournalism",
"description": "Telling news stories through photography",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 56,
"name": "Sculpture",
"slug": "sculpture",
"description": "3D art forms and installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 57,
"name": "Metalwork",
"slug": "metalwork",
"description": "Sculpting and fabricating with metal",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 58,
"name": "Woodworking",
"slug": "woodworking",
"description": "Crafting and sculpting with wood",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 59,
"name": "Ceramics/Pottery",
"slug": "ceramicspottery",
"description": "Clay-based art and functional forms",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 60,
"name": "Textile Art",
"slug": "textile-art",
"description": "Fiber-based art and fabric construction",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 61,
"name": "Glass Art",
"slug": "glass-art",
"description": "Glass blowing and kiln-formed glass",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 62,
"name": "Digital Art",
"slug": "digital-art",
"description": "Computer-generated and digital media art",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 63,
"name": "Graphic Design",
"slug": "graphic-design",
"description": "Visual communication and layout",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 64,
"name": "3D Modeling",
"slug": "3d-modeling",
"description": "Creating three-dimensional digital assets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 65,
"name": "Animation",
"slug": "animation",
"description": "Creating moving digital imagery",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 66,
"name": "Motion Graphics",
"slug": "motion-graphics",
"description": "Graphic design in motion",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 67,
"name": "Digital Painting",
"slug": "digital-painting",
"description": "Painting using digital tools and tablets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 68,
"name": "Installation Art",
"slug": "installation-art",
"description": "Immersive and environmental art installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 69,
"name": "Mixed Media",
"slug": "mixed-media",
"description": "Art combining multiple materials and techniques",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
}
]
},
{
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts",
"description": "Practices focused on health and well-being",
"icon": null,
"parent_id": null,
"category": "Wellness & Healing Arts",
"children": [
{
"id": 136,
"name": "Yoga",
"slug": "yoga",
"description": "Physical and mental yoga practice",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 137,
"name": "Meditation",
"slug": "meditation",
"description": "Mindfulness and meditative techniques",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 138,
"name": "Sound Healing",
"slug": "sound-healing",
"description": "Therapeutic use of sound and music",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 139,
"name": "Movement Therapy",
"slug": "movement-therapy",
"description": "Dance and movement for wellness",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 140,
"name": "Art Therapy",
"slug": "art-therapy",
"description": "Visual arts for therapeutic purposes",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 141,
"name": "Massage Therapy",
"slug": "massage-therapy",
"description": "Manual manipulation of soft body tissues",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
}
]
},
{
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature",
"description": "Creative and professional writing",
"icon": null,
"parent_id": null,
"category": "Writing & Literature",
"children": [
{
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing",
"description": "Fiction and narrative writing",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"children": [
{
"id": 85,
"name": "Fiction",
"slug": "fiction",
"description": "Short stories and novels",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 86,
"name": "Poetry",
"slug": "poetry",
"description": "Verse and poetic expression",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 87,
"name": "Screenwriting",
"slug": "screenwriting",
"description": "Writing for film, TV, and theater",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 88,
"name": "Playwriting",
"slug": "playwriting",
"description": "Writing specifically for stage performance",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 89,
"name": "Creative Non-Fiction",
"slug": "creative-non-fiction",
"description": "Fact-based narrative writing",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
}
],
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
},
{
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing",
"description": "Writing for business and non-profits",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"children": [
{
"id": 91,
"name": "Grant Writing",
"slug": "grant-writing",
"description": "Securing funding through written proposals",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 92,
"name": "Copywriting",
"slug": "copywriting",
"description": "Writing for marketing and advertising",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 93,
"name": "Technical Writing",
"slug": "technical-writing",
"description": "Creating manuals and documentation",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 94,
"name": "Journalism",
"slug": "journalism",
"description": "Reporting and feature writing",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 95,
"name": "Editing/Proofreading",
"slug": "editingproofreading",
"description": "Reviewing and refining written content",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
}
],
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
}
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified interest
Example request:
curl --request GET \
--get "https://venuefamily.com/api/interests/1" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/interests/1"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 53
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts",
"description": "Live performance disciplines",
"icon": null,
"parent_id": null,
"category": "Performing Arts",
"children": [
{
"id": 2,
"name": "Theater",
"slug": "theater",
"description": "Stage acting and dramatic performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 3,
"name": "Acting",
"slug": "acting",
"description": "Stage, screen, and voice acting",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 4,
"name": "Directing",
"slug": "directing",
"description": "Creative leadership for stage productions",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 5,
"name": "Musical Theater",
"slug": "musical-theater",
"description": "Combined acting, singing, and dancing",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 6,
"name": "Improv",
"slug": "improv",
"description": "Improvisational performance",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 7,
"name": "Physical Theater",
"slug": "physical-theater",
"description": "Movement-based dramatic storytelling",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 8,
"name": "Voiceover",
"slug": "voiceover",
"description": "Voice acting for various media",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 9,
"name": "Dramaturgy",
"slug": "dramaturgy",
"description": "Research and development of plays and operas",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 10,
"name": "Dance",
"slug": "dance",
"description": "Movement-based performance art",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 11,
"name": "Ballet",
"slug": "ballet",
"description": "Classical ballet performance and technique",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 12,
"name": "Contemporary",
"slug": "contemporary",
"description": "Modern and contemporary dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 13,
"name": "Hip Hop",
"slug": "hip-hop",
"description": "Urban dance forms and street styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 14,
"name": "Cultural Dance",
"slug": "cultural-dance",
"description": "Traditional and cultural dance forms",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 15,
"name": "Ballroom",
"slug": "ballroom",
"description": "Partner and social dancing styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 16,
"name": "Jazz",
"slug": "jazz",
"description": "Jazz dance and theatrical dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 17,
"name": "Tap",
"slug": "tap",
"description": "Rhythm-based percussive dance",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 18,
"name": "Choreography",
"slug": "choreography",
"description": "Dance composition and movement design",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 19,
"name": "Aerial Dance",
"slug": "aerial-dance",
"description": "Dance combined with aerial apparatus",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 20,
"name": "Music Performance",
"slug": "music-performance",
"description": "Live musical performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 21,
"name": "Vocal Performance",
"slug": "vocal-performance",
"description": "Singing in various styles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 22,
"name": "Instrumental Performance",
"slug": "instrumental-performance",
"description": "Playing musical instruments",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 23,
"name": "Ensemble Performance",
"slug": "ensemble-performance",
"description": "Group musical performance (band, choir, orchestra)",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 24,
"name": "DJing",
"slug": "djing",
"description": "Live music mixing and performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 25,
"name": "Opera",
"slug": "opera",
"description": "Classical operatic performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 26,
"name": "Conducting",
"slug": "conducting",
"description": "Leading musical ensembles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 27,
"name": "Comedy",
"slug": "comedy",
"description": "Stand-up, improv, and sketch comedy",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 28,
"name": "Stand-up Comedy",
"slug": "stand-up-comedy",
"description": "Individual comedic performance",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 29,
"name": "Sketch Comedy",
"slug": "sketch-comedy",
"description": "Scripted comedic scenes",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 30,
"name": "Satire",
"slug": "satire",
"description": "Humorous social and political commentary",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 31,
"name": "Clown/Vaudeville",
"slug": "clownvaudeville",
"description": "Physical and classical comedic forms",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts",
"description": "Acrobatics, juggling, and other circus skills",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 33,
"name": "Aerial Arts",
"slug": "aerial-arts",
"description": "Silks, trapeze, and aerial performances",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 34,
"name": "Acrobatics",
"slug": "acrobatics",
"description": "Tumbling, balance, and physical feats",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 35,
"name": "Juggling",
"slug": "juggling",
"description": "Object manipulation and prop juggling",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 36,
"name": "Clowning",
"slug": "clowning",
"description": "Physical comedy and clown performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 37,
"name": "Fire Performance",
"slug": "fire-performance",
"description": "Fire manipulation and performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 38,
"name": "Equilibristics",
"slug": "equilibristics",
"description": "Balancing arts (handstands, tightrope)",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 39,
"name": "Spoken Word",
"slug": "spoken-word",
"description": "Poetic and narrative performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 40,
"name": "Puppetry",
"slug": "puppetry",
"description": "Puppet shows and marionette performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 41,
"name": "Performance Art",
"slug": "performance-art",
"description": "Conceptual live art performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/events
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 52
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/events/upcoming
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events/upcoming" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events/upcoming"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 51
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/events/past
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events/past" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events/past"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 50
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/events/recurring
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events/recurring" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events/recurring"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 49
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Keyword search, scoped to one organization.
Delegates to index() rather than running its own query: index() already
applies the organization scope, the published-only filter and the
private-event redaction. The previous standalone implementation (on the
sibling EventController) had none of those and queried every event in
every organization — it was only harmless because its route sat after
/events/{event} and was never reachable.
It inherits index()'s endpoint toggle for the same reason: a search that answered while the index was switched off would serve the list the operator just closed, one query parameter away.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events/search" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"q\": \"bngz\"
}"
const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events/search"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"q": "bngz"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 48
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/events/{id}
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/events/44" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/events/44"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 47
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Event not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Dates for one event, on the public organization-scoped API.
$organization must be declared even though it is only used for scoping:
this route sits under the public/{organization} prefix, and an omitted
parameter is filled positionally, so the org slug landed in $event and
every request died with a TypeError (a 500 on every call in production).
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/events/44/dates" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/events/44/dates"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 46
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Event not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
One event date on the public organization-scoped API.
$organization used to be accepted and then only handed to
PublicTicketing: the date itself was resolved by raw global id, so ANY
organization's date — including one belonging to an unpublished or
private event — was readable through ANY organization's URL by walking
ids. The sibling publicEventDates() already scopes and gates exactly this
way; the two now agree.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/eventDates/1673" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/eventDates/1673"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 45
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Event date not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get form structure for external integrations
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/forms/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/forms/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 44
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"success": false,
"message": "Form or organization not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Submit a form from an external source
Example request:
curl --request POST \
"https://venuefamily.com/api/public/architecto/forms/architecto/submit" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/forms/architecto/submit"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get public venue listings for an organization
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/locations" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/locations"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 43
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Organization not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get map data for venues
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/locations/map" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/locations/map"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 42
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Organization not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single location
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/architecto/locations/santa-cruz-art-league" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/architecto/locations/santa-cruz-art-league"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 41
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of fiscal sponsorships for an organization.
The {organization} segment is the only tenant boundary this
unauthenticated route has, and the query ignored it entirely: every
organization's approved sponsorships came back through any organization's
URL. FiscalSponsorship is org-scoped through the model_organization
pivot (BelongsToOrganizations), the same way the sibling public
EventsController@index scopes its query.
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 40
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [],
"links": {
"first": "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships?page=1",
"last": "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": null,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships",
"per_page": 15,
"to": null,
"total": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get all available statuses
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships/statuses" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships/statuses"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 39
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": {
"approved": "Approved",
"pending": "Pending",
"draft": "Draft",
"rejected": "Rejected",
"suspended": "Suspended"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified fiscal sponsorship
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships/20" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/fiscal-sponsorships/20"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (404):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 38
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"error": "Fiscal sponsorship not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get artists with published profiles for a specific organization
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/marketplace/artists" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/marketplace/artists"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 37
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get a single artist by ID or slug for a specific organization
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/marketplace/artists/architecto" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/marketplace/artists/architecto"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 36
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get interests hierarchy
Example request:
curl --request GET \
--get "https://venuefamily.com/api/public/liminal-space/marketplace/interests" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://venuefamily.com/api/public/liminal-space/marketplace/interests"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Authorization
x-ratelimit-limit: 60
x-ratelimit-remaining: 35
access-control-allow-origin: https://venuefamily.com
access-control-allow-credentials: true
x-worktree: /Users/tommichael/Code/venue-family
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
referrer-policy: strict-origin-when-cross-origin
strict-transport-security: max-age=31536000; includeSubDomains
{
"data": [
{
"id": 106,
"name": "Business & Administration",
"slug": "business-administration",
"description": "Operational and leadership skills",
"icon": null,
"parent_id": null,
"category": "Business & Administration",
"children": [
{
"id": 107,
"name": "Strategic Planning",
"slug": "strategic-planning",
"description": "Long-term goal setting and roadmapping",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 108,
"name": "Financial Management",
"slug": "financial-management",
"description": "Accounting, budgeting, and financial oversight",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 109,
"name": "Human Resources",
"slug": "human-resources",
"description": "Talent management and organizational culture",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 110,
"name": "Legal & IP",
"slug": "legal-ip",
"description": "Contracts, copyright, and intellectual property",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 111,
"name": "Marketing & PR",
"slug": "marketing-pr",
"description": "Audience engagement and brand management",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 112,
"name": "Fundraising & Development",
"slug": "fundraising-development",
"description": "Philanthropy and donor relations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 113,
"name": "Project Management",
"slug": "project-management",
"description": "Organizing and executing specific initiatives",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 114,
"name": "Non-Profit Governance",
"slug": "non-profit-governance",
"description": "Board management and non-profit operations",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
},
{
"id": 115,
"name": "Volunteer Management",
"slug": "volunteer-management",
"description": "Recruiting and coordinating volunteers",
"icon": null,
"parent_id": 106,
"category": "Business & Administration",
"children": [],
"parent": {
"id": 106,
"name": "Business & Administration",
"slug": "business-administration"
}
}
]
},
{
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality",
"description": "Food, beverage, and event hosting",
"icon": null,
"parent_id": null,
"category": "Culinary Arts & Hospitality",
"children": [
{
"id": 143,
"name": "Culinary Arts",
"slug": "culinary-arts",
"description": "Cooking and food preparation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 144,
"name": "Baking & Pastry",
"slug": "baking-pastry",
"description": "Sweet and savory baked goods",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 145,
"name": "Mixology",
"slug": "mixology",
"description": "Craft cocktail and beverage creation",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 146,
"name": "Event Hosting",
"slug": "event-hosting",
"description": "Professional hosting and hospitality",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 147,
"name": "Catering Management",
"slug": "catering-management",
"description": "Coordinating food service for events",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
},
{
"id": 148,
"name": "Wine/Sommelier",
"slug": "winesommelier",
"description": "Professional knowledge of wine and service",
"icon": null,
"parent_id": 142,
"category": "Culinary Arts & Hospitality",
"children": [],
"parent": {
"id": 142,
"name": "Culinary Arts & Hospitality",
"slug": "culinary-arts-hospitality"
}
}
]
},
{
"id": 126,
"name": "Education & Community",
"slug": "education-community",
"description": "Teaching and community engagement",
"icon": null,
"parent_id": null,
"category": "Education & Community",
"children": [
{
"id": 127,
"name": "Teaching Artists",
"slug": "teaching-artists",
"description": "Artists who teach their craft",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 128,
"name": "Curatorial Practice",
"slug": "curatorial-practice",
"description": "Organizing exhibitions and programs",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 129,
"name": "Community Outreach",
"slug": "community-outreach",
"description": "Connecting arts with diverse populations",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 130,
"name": "Workshop Facilitation",
"slug": "workshop-facilitation",
"description": "Leading hands-on learning experiences",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 131,
"name": "Arts Education",
"slug": "arts-education",
"description": "Formal arts education initiatives",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 132,
"name": "Cultural Preservation",
"slug": "cultural-preservation",
"description": "Protecting and celebrating cultural heritage",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 133,
"name": "Youth Mentorship",
"slug": "youth-mentorship",
"description": "Guiding and supporting young artists",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
},
{
"id": 134,
"name": "Accessibility Consulting",
"slug": "accessibility-consulting",
"description": "Ensuring programs are accessible to all",
"icon": null,
"parent_id": 126,
"category": "Education & Community",
"children": [],
"parent": {
"id": 126,
"name": "Education & Community",
"slug": "education-community"
}
}
]
},
{
"id": 116,
"name": "Media & Technology",
"slug": "media-technology",
"description": "Digital tools and media platforms",
"icon": null,
"parent_id": null,
"category": "Media & Technology",
"children": [
{
"id": 117,
"name": "Web Development",
"slug": "web-development",
"description": "Building and maintaining websites",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 118,
"name": "App Development",
"slug": "app-development",
"description": "Creating mobile and desktop applications",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 119,
"name": "UI/UX Design",
"slug": "uiux-design",
"description": "User interface and experience design",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 120,
"name": "Video Production",
"slug": "video-production",
"description": "Filming, editing, and producing video content",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 121,
"name": "Social Media Strategy",
"slug": "social-media-strategy",
"description": "Managing online community and presence",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 122,
"name": "Data Analytics",
"slug": "data-analytics",
"description": "Interpreting data to drive decisions",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 123,
"name": "AI in Arts",
"slug": "ai-in-arts",
"description": "Exploring artificial intelligence in creative practice",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 124,
"name": "Systems Administration",
"slug": "systems-administration",
"description": "Managing IT infrastructure and networks",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
},
{
"id": 125,
"name": "Digital Archiving",
"slug": "digital-archiving",
"description": "Preserving digital assets and records",
"icon": null,
"parent_id": 116,
"category": "Media & Technology",
"children": [],
"parent": {
"id": 116,
"name": "Media & Technology",
"slug": "media-technology"
}
}
]
},
{
"id": 70,
"name": "Music & Audio",
"slug": "music-audio",
"description": "Music creation and audio engineering",
"icon": null,
"parent_id": null,
"category": "Music & Audio",
"children": [
{
"id": 71,
"name": "Music Composition",
"slug": "music-composition",
"description": "Writing and arranging music",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"children": [
{
"id": 72,
"name": "Songwriting",
"slug": "songwriting",
"description": "Creating lyrics and melody",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 73,
"name": "Arranging",
"slug": "arranging",
"description": "Adapting music for different ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 74,
"name": "Scoring for Film/Media",
"slug": "scoring-for-filmmedia",
"description": "Creating music for visual media",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
},
{
"id": 75,
"name": "Orchestration",
"slug": "orchestration",
"description": "Writing music for large ensembles",
"icon": null,
"parent_id": 71,
"category": "Music Composition",
"children": [],
"parent": {
"id": 71,
"name": "Music Composition",
"slug": "music-composition"
}
}
],
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
},
{
"id": 76,
"name": "Audio Production",
"slug": "audio-production",
"description": "Capturing and processing sound",
"icon": null,
"parent_id": 70,
"category": "Music & Audio",
"children": [
{
"id": 77,
"name": "Studio Recording",
"slug": "studio-recording",
"description": "Capturing audio in a controlled environment",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 78,
"name": "Mixing",
"slug": "mixing",
"description": "Balancing multi-track audio recordings",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 79,
"name": "Mastering",
"slug": "mastering",
"description": "Final polish of audio productions",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 80,
"name": "Sound Design",
"slug": "sound-design",
"description": "Creating specific audio elements and atmospheres",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 81,
"name": "Live Sound Engineering",
"slug": "live-sound-engineering",
"description": "Managing audio for live events",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
},
{
"id": 82,
"name": "Podcast Production",
"slug": "podcast-production",
"description": "Recording and editing spoken word content",
"icon": null,
"parent_id": 76,
"category": "Audio Production",
"children": [],
"parent": {
"id": 76,
"name": "Audio Production",
"slug": "audio-production"
}
}
],
"parent": {
"id": 70,
"name": "Music & Audio",
"slug": "music-audio"
}
}
]
},
{
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts",
"description": "Live performance disciplines",
"icon": null,
"parent_id": null,
"category": "Performing Arts",
"children": [
{
"id": 2,
"name": "Theater",
"slug": "theater",
"description": "Stage acting and dramatic performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 3,
"name": "Acting",
"slug": "acting",
"description": "Stage, screen, and voice acting",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 4,
"name": "Directing",
"slug": "directing",
"description": "Creative leadership for stage productions",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 5,
"name": "Musical Theater",
"slug": "musical-theater",
"description": "Combined acting, singing, and dancing",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 6,
"name": "Improv",
"slug": "improv",
"description": "Improvisational performance",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 7,
"name": "Physical Theater",
"slug": "physical-theater",
"description": "Movement-based dramatic storytelling",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 8,
"name": "Voiceover",
"slug": "voiceover",
"description": "Voice acting for various media",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
},
{
"id": 9,
"name": "Dramaturgy",
"slug": "dramaturgy",
"description": "Research and development of plays and operas",
"icon": null,
"parent_id": 2,
"category": "Theater",
"children": [],
"parent": {
"id": 2,
"name": "Theater",
"slug": "theater"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 10,
"name": "Dance",
"slug": "dance",
"description": "Movement-based performance art",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 11,
"name": "Ballet",
"slug": "ballet",
"description": "Classical ballet performance and technique",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 12,
"name": "Contemporary",
"slug": "contemporary",
"description": "Modern and contemporary dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 13,
"name": "Hip Hop",
"slug": "hip-hop",
"description": "Urban dance forms and street styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 14,
"name": "Cultural Dance",
"slug": "cultural-dance",
"description": "Traditional and cultural dance forms",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 15,
"name": "Ballroom",
"slug": "ballroom",
"description": "Partner and social dancing styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 16,
"name": "Jazz",
"slug": "jazz",
"description": "Jazz dance and theatrical dance styles",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 17,
"name": "Tap",
"slug": "tap",
"description": "Rhythm-based percussive dance",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 18,
"name": "Choreography",
"slug": "choreography",
"description": "Dance composition and movement design",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
},
{
"id": 19,
"name": "Aerial Dance",
"slug": "aerial-dance",
"description": "Dance combined with aerial apparatus",
"icon": null,
"parent_id": 10,
"category": "Dance",
"children": [],
"parent": {
"id": 10,
"name": "Dance",
"slug": "dance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 20,
"name": "Music Performance",
"slug": "music-performance",
"description": "Live musical performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 21,
"name": "Vocal Performance",
"slug": "vocal-performance",
"description": "Singing in various styles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 22,
"name": "Instrumental Performance",
"slug": "instrumental-performance",
"description": "Playing musical instruments",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 23,
"name": "Ensemble Performance",
"slug": "ensemble-performance",
"description": "Group musical performance (band, choir, orchestra)",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 24,
"name": "DJing",
"slug": "djing",
"description": "Live music mixing and performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 25,
"name": "Opera",
"slug": "opera",
"description": "Classical operatic performance",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
},
{
"id": 26,
"name": "Conducting",
"slug": "conducting",
"description": "Leading musical ensembles",
"icon": null,
"parent_id": 20,
"category": "Music Performance",
"children": [],
"parent": {
"id": 20,
"name": "Music Performance",
"slug": "music-performance"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 27,
"name": "Comedy",
"slug": "comedy",
"description": "Stand-up, improv, and sketch comedy",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 28,
"name": "Stand-up Comedy",
"slug": "stand-up-comedy",
"description": "Individual comedic performance",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 29,
"name": "Sketch Comedy",
"slug": "sketch-comedy",
"description": "Scripted comedic scenes",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 30,
"name": "Satire",
"slug": "satire",
"description": "Humorous social and political commentary",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
},
{
"id": 31,
"name": "Clown/Vaudeville",
"slug": "clownvaudeville",
"description": "Physical and classical comedic forms",
"icon": null,
"parent_id": 27,
"category": "Comedy",
"children": [],
"parent": {
"id": 27,
"name": "Comedy",
"slug": "comedy"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts",
"description": "Acrobatics, juggling, and other circus skills",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [
{
"id": 33,
"name": "Aerial Arts",
"slug": "aerial-arts",
"description": "Silks, trapeze, and aerial performances",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 34,
"name": "Acrobatics",
"slug": "acrobatics",
"description": "Tumbling, balance, and physical feats",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 35,
"name": "Juggling",
"slug": "juggling",
"description": "Object manipulation and prop juggling",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 36,
"name": "Clowning",
"slug": "clowning",
"description": "Physical comedy and clown performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 37,
"name": "Fire Performance",
"slug": "fire-performance",
"description": "Fire manipulation and performance",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
},
{
"id": 38,
"name": "Equilibristics",
"slug": "equilibristics",
"description": "Balancing arts (handstands, tightrope)",
"icon": null,
"parent_id": 32,
"category": "Circus Arts",
"children": [],
"parent": {
"id": 32,
"name": "Circus Arts",
"slug": "circus-arts"
}
}
],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 39,
"name": "Spoken Word",
"slug": "spoken-word",
"description": "Poetic and narrative performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 40,
"name": "Puppetry",
"slug": "puppetry",
"description": "Puppet shows and marionette performances",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
},
{
"id": 41,
"name": "Performance Art",
"slug": "performance-art",
"description": "Conceptual live art performance",
"icon": null,
"parent_id": 1,
"category": "Performing Arts",
"children": [],
"parent": {
"id": 1,
"name": "Performing Arts",
"slug": "performing-arts"
}
}
]
},
{
"id": 96,
"name": "Technical Production",
"slug": "technical-production",
"description": "Behind-the-scenes production roles",
"icon": null,
"parent_id": null,
"category": "Technical Production",
"children": [
{
"id": 97,
"name": "Lighting Design",
"slug": "lighting-design",
"description": "Stage and performance lighting",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 98,
"name": "Sound Engineering",
"slug": "sound-engineering",
"description": "Audio systems and sound design",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 99,
"name": "Stage Management",
"slug": "stage-management",
"description": "Coordinating live productions",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 100,
"name": "Set Design",
"slug": "set-design",
"description": "Creating physical environments for performance",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 101,
"name": "Costume Design",
"slug": "costume-design",
"description": "Creating costumes for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 102,
"name": "Technical Direction",
"slug": "technical-direction",
"description": "Overseeing technical aspects of production",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 103,
"name": "Projection Design",
"slug": "projection-design",
"description": "Video and image projections for performances",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 104,
"name": "Prop Mastery",
"slug": "prop-mastery",
"description": "Creating and managing production props",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
},
{
"id": 105,
"name": "Rigging",
"slug": "rigging",
"description": "Setting up overhead support systems",
"icon": null,
"parent_id": 96,
"category": "Technical Production",
"children": [],
"parent": {
"id": 96,
"name": "Technical Production",
"slug": "technical-production"
}
}
]
},
{
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts",
"description": "Visual artistic expressions",
"icon": null,
"parent_id": null,
"category": "Visual Arts",
"children": [
{
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing",
"description": "2D visual art creation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 44,
"name": "Oil Painting",
"slug": "oil-painting",
"description": "Classical and contemporary oil painting",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 45,
"name": "Watercolor",
"slug": "watercolor",
"description": "Transparent and opaque water-based media",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 46,
"name": "Illustration",
"slug": "illustration",
"description": "Visual storytelling and commercial art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 47,
"name": "Mural Arts",
"slug": "mural-arts",
"description": "Large-scale public wall art",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 48,
"name": "Calligraphy",
"slug": "calligraphy",
"description": "Artistic lettering and penmanship",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
},
{
"id": 49,
"name": "Printmaking",
"slug": "printmaking",
"description": "Etching, lithography, and screen printing",
"icon": null,
"parent_id": 43,
"category": "Painting & Drawing",
"children": [],
"parent": {
"id": 43,
"name": "Painting & Drawing",
"slug": "painting-drawing"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 50,
"name": "Photography",
"slug": "photography",
"description": "Photographic art and documentation",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 51,
"name": "Fine Art Photography",
"slug": "fine-art-photography",
"description": "Concept-driven photographic art",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 52,
"name": "Documentary Photography",
"slug": "documentary-photography",
"description": "Capturing real-world events and stories",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 53,
"name": "Commercial Photography",
"slug": "commercial-photography",
"description": "Photography for brands and marketing",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 54,
"name": "Analog/Film Photography",
"slug": "analogfilm-photography",
"description": "Traditional darkroom and film processes",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
},
{
"id": 55,
"name": "Photojournalism",
"slug": "photojournalism",
"description": "Telling news stories through photography",
"icon": null,
"parent_id": 50,
"category": "Photography",
"children": [],
"parent": {
"id": 50,
"name": "Photography",
"slug": "photography"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 56,
"name": "Sculpture",
"slug": "sculpture",
"description": "3D art forms and installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 57,
"name": "Metalwork",
"slug": "metalwork",
"description": "Sculpting and fabricating with metal",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 58,
"name": "Woodworking",
"slug": "woodworking",
"description": "Crafting and sculpting with wood",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 59,
"name": "Ceramics/Pottery",
"slug": "ceramicspottery",
"description": "Clay-based art and functional forms",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 60,
"name": "Textile Art",
"slug": "textile-art",
"description": "Fiber-based art and fabric construction",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
},
{
"id": 61,
"name": "Glass Art",
"slug": "glass-art",
"description": "Glass blowing and kiln-formed glass",
"icon": null,
"parent_id": 56,
"category": "Sculpture",
"children": [],
"parent": {
"id": 56,
"name": "Sculpture",
"slug": "sculpture"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 62,
"name": "Digital Art",
"slug": "digital-art",
"description": "Computer-generated and digital media art",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [
{
"id": 63,
"name": "Graphic Design",
"slug": "graphic-design",
"description": "Visual communication and layout",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 64,
"name": "3D Modeling",
"slug": "3d-modeling",
"description": "Creating three-dimensional digital assets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 65,
"name": "Animation",
"slug": "animation",
"description": "Creating moving digital imagery",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 66,
"name": "Motion Graphics",
"slug": "motion-graphics",
"description": "Graphic design in motion",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
},
{
"id": 67,
"name": "Digital Painting",
"slug": "digital-painting",
"description": "Painting using digital tools and tablets",
"icon": null,
"parent_id": 62,
"category": "Digital Art",
"children": [],
"parent": {
"id": 62,
"name": "Digital Art",
"slug": "digital-art"
}
}
],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 68,
"name": "Installation Art",
"slug": "installation-art",
"description": "Immersive and environmental art installations",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
},
{
"id": 69,
"name": "Mixed Media",
"slug": "mixed-media",
"description": "Art combining multiple materials and techniques",
"icon": null,
"parent_id": 42,
"category": "Visual Arts",
"children": [],
"parent": {
"id": 42,
"name": "Visual Arts",
"slug": "visual-arts"
}
}
]
},
{
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts",
"description": "Practices focused on health and well-being",
"icon": null,
"parent_id": null,
"category": "Wellness & Healing Arts",
"children": [
{
"id": 136,
"name": "Yoga",
"slug": "yoga",
"description": "Physical and mental yoga practice",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 137,
"name": "Meditation",
"slug": "meditation",
"description": "Mindfulness and meditative techniques",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 138,
"name": "Sound Healing",
"slug": "sound-healing",
"description": "Therapeutic use of sound and music",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 139,
"name": "Movement Therapy",
"slug": "movement-therapy",
"description": "Dance and movement for wellness",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 140,
"name": "Art Therapy",
"slug": "art-therapy",
"description": "Visual arts for therapeutic purposes",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
},
{
"id": 141,
"name": "Massage Therapy",
"slug": "massage-therapy",
"description": "Manual manipulation of soft body tissues",
"icon": null,
"parent_id": 135,
"category": "Wellness & Healing Arts",
"children": [],
"parent": {
"id": 135,
"name": "Wellness & Healing Arts",
"slug": "wellness-healing-arts"
}
}
]
},
{
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature",
"description": "Creative and professional writing",
"icon": null,
"parent_id": null,
"category": "Writing & Literature",
"children": [
{
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing",
"description": "Fiction and narrative writing",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"children": [
{
"id": 85,
"name": "Fiction",
"slug": "fiction",
"description": "Short stories and novels",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 86,
"name": "Poetry",
"slug": "poetry",
"description": "Verse and poetic expression",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 87,
"name": "Screenwriting",
"slug": "screenwriting",
"description": "Writing for film, TV, and theater",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 88,
"name": "Playwriting",
"slug": "playwriting",
"description": "Writing specifically for stage performance",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
},
{
"id": 89,
"name": "Creative Non-Fiction",
"slug": "creative-non-fiction",
"description": "Fact-based narrative writing",
"icon": null,
"parent_id": 84,
"category": "Creative Writing",
"children": [],
"parent": {
"id": 84,
"name": "Creative Writing",
"slug": "creative-writing"
}
}
],
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
},
{
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing",
"description": "Writing for business and non-profits",
"icon": null,
"parent_id": 83,
"category": "Writing & Literature",
"children": [
{
"id": 91,
"name": "Grant Writing",
"slug": "grant-writing",
"description": "Securing funding through written proposals",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 92,
"name": "Copywriting",
"slug": "copywriting",
"description": "Writing for marketing and advertising",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 93,
"name": "Technical Writing",
"slug": "technical-writing",
"description": "Creating manuals and documentation",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 94,
"name": "Journalism",
"slug": "journalism",
"description": "Reporting and feature writing",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
},
{
"id": 95,
"name": "Editing/Proofreading",
"slug": "editingproofreading",
"description": "Reviewing and refining written content",
"icon": null,
"parent_id": 90,
"category": "Professional Writing",
"children": [],
"parent": {
"id": 90,
"name": "Professional Writing",
"slug": "professional-writing"
}
}
],
"parent": {
"id": 83,
"name": "Writing & Literature",
"slug": "writing-literature"
}
}
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/public/{organization_slug}/tags