Skip to content

List Pin Spacing rules

GET
/v1/accounts/{accountId}/pin-spacing/rules
curl --request GET \
--url https://api-v1.tailwind.ai/v1/accounts/example/pin-spacing/rules \
--header 'Authorization: Bearer <token>'

Every Pin Spacing rule on the account: the account-wide default, the URL-specific custom rules, and the linked URLs that follow another URL’s rule. Pin Spacing is the minimum gap the scheduler keeps between Pins that share a destination URL. To find the rule a particular URL gets, call GET /v1/accounts/{accountId}/pin-spacing/applied-rule instead of matching URLs against this list yourself: URLs match after normalization and linked URLs inherit their base URL’s rule. Read-only: rules are managed in the Tailwind dashboard.

accountId
required
string

Numeric Tailwind account ID returned by GET /v1/accounts

The account’s Pin Spacing rules

Media typeapplication/json
object
data
object
defaultRule
required

The account-wide rule for every URL without a custom rule. Null when the account has none.

object
spacing
required

Minimum gap between Pins to one URL

integer
spacingUnits
required
string
Allowed values: DAYS
customRules
required
Array<object>
object
url
required

The destination URL the rule is set for

string
spacing
required

Minimum gap between Pins to this URL

integer
spacingUnits
required
string
Allowed values: DAYS
linkedUrls
required

URLs that follow another URL’s rule. Pins to a linked URL and its base URL share one spacing window.

Array<object>
object
url
required

The linked URL

string
baseUrl
required

The URL whose rule it follows

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"data": {
"defaultRule": {
"spacingUnits": "DAYS"
},
"customRules": [
{
"spacingUnits": "DAYS"
}
]
}
}

Authentication required or invalid bearer credentials

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable reason. On PAYMENT_REQUIRED errors it is the denial reason: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded. Other errors may carry an operation-specific reason, such as pinterest_reconnect_required, pinterest_rate_limited, pinterest_timeout, pinterest_request_failed or list_boards_upstream_failed; each operation’s documented error responses show the values it returns. Branch on reason rather than parsing message.

string
resolve_url

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.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
},
"meta": {
"requestId": "abc123"
}
}

Resource not found

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable reason. On PAYMENT_REQUIRED errors it is the denial reason: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded. Other errors may carry an operation-specific reason, such as pinterest_reconnect_required, pinterest_rate_limited, pinterest_timeout, pinterest_request_failed or list_boards_upstream_failed; each operation’s documented error responses show the values it returns. Branch on reason rather than parsing message.

string
resolve_url

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.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "NOT_FOUND",
"message": "Account not found"
},
"meta": {
"requestId": "abc123"
}
}

Rate limit exceeded

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable reason. On PAYMENT_REQUIRED errors it is the denial reason: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded. Other errors may carry an operation-specific reason, such as pinterest_reconnect_required, pinterest_rate_limited, pinterest_timeout, pinterest_request_failed or list_boards_upstream_failed; each operation’s documented error responses show the values it returns. Branch on reason rather than parsing message.

string
resolve_url

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.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Daily rate limit of 10000 requests for this organization exceeded. Resets at midnight UTC."
},
"meta": {
"requestId": "abc123"
}
}
Retry-After
integer

Seconds until the daily limit resets at midnight UTC.