List timeslots
const url = 'https://api-v1.tailwind.ai/v1/accounts/example/timeslots';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api-v1.tailwind.ai/v1/accounts/example/timeslots \ --header 'Authorization: Bearer <token>'List all smart schedule timeslots for an account. These are RECURRING WEEKLY rules (day of week + time of day + timezone), not dated occurrences, and they carry no occupancy information. For which specific upcoming times are actually free, use GET /v1/accounts/{accountId}/schedule.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Numeric Tailwind account ID returned by GET /v1/accounts
Responses
Section titled “Responses”List of timeslots
object
object
A recurring weekly posting rule, not a dated occurrence. Carries no occupancy — see ScheduleEntry.
object
Timeslot ID
Account ID
Day of week (0-6, where 0 is Sunday)
Time of day as a zero-padded 24-hour HHMM string (e.g. “0930”), in timezone
Timezone (e.g., America/New_York)
How the slot was added: generated by a rebuild, picked from Tailwind’s suggestions, or placed by hand (including every slot created or edited through this API)
Schedule ID, when associated with a schedule
Pin UUID, when associated with a pin
Unix timestamp of one occurrence, predicted when the slot was written. Not maintained afterwards; use GET /v1/accounts/{accountId}/schedule for real upcoming times.
object
Unique request ID for debugging
Example
{ "data": { "timeslots": [ { "type": "auto-created" } ] }}Authentication required or invalid bearer credentials
object
object
Error code
Error message
Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.
Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.
object
Unique request ID for debugging
Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid API key" }, "meta": { "requestId": "abc123" }}Resource not found
object
object
Error code
Error message
Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.
Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.
object
Unique request ID for debugging
Example
{ "error": { "code": "NOT_FOUND", "message": "Account not found" }, "meta": { "requestId": "abc123" }}Rate limit exceeded
object
object
Error code
Error message
Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.
Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.
object
Unique request ID for debugging
Example
{ "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Daily rate limit of 5000 requests exceeded. Resets at midnight UTC." }, "meta": { "requestId": "abc123" }}