Change plan
curl --request POST \
--url https://intentleads.si/api/v1/billing/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"plan": "growth"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({plan: 'growth'})
};
fetch('https://intentleads.si/api/v1/billing/plan', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/billing/plan"
payload = { "plan": "growth" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"plan": "growth",
"status": "checkout",
"checkout_url": "https://checkout.example.com/session/7f3c2a9e"
}
Change plan
Moves your organization to another plan: starter, growth, scale or partner (see plans in Get billing). What happens depends on how you’re billed:
- No plan yet (or a canceled one): returns
status: checkoutand acheckout_urlto pay by card. The plan starts when payment completes. Passemailto prefill the checkout. - Paid by card, moving to a pricier plan: upgrades at once (
status: changed). The difference for the rest of the period is charged to the card on file straight away, and the new plan’s contacts apply now. - Anything else (a downgrade, the same plan, a plan invoiced by DBEE, or no plan while online payment isn’t set up): returns
202withstatus: pending_confirmation. DBEE confirms the change; downgrades apply from the next period.
Admin key required. Standard keys get 403 admin_key_required.
POST
/
api
/
v1
/
billing
/
plan
Change plan
curl --request POST \
--url https://intentleads.si/api/v1/billing/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"plan": "growth"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({plan: 'growth'})
};
fetch('https://intentleads.si/api/v1/billing/plan', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://intentleads.si/api/v1/billing/plan"
payload = { "plan": "growth" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"plan": "growth",
"status": "checkout",
"checkout_url": "https://checkout.example.com/session/7f3c2a9e"
}
Authorizations
An Intent Leads API key, e.g. il_live_ followed by 32 letters and digits. Create one on the API and CLI page of the dashboard.
Body
application/json