Skip to main content
POST
/
api
/
v1
/
vendors
/
{vendorId}
/
plans
Create Plan
curl --request POST \
  --url https://app.phonebot.io:80/api/v1/vendors/{vendorId}/plans \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Standard Tier",
  "includedInboundSeconds": 1000,
  "includedOutboundSeconds": 500,
  "inboundSecondsLimit": 5000,
  "outboundSecondsLimit": 2000,
  "inboundSecondPriceCent": 2,
  "outboundSecondPriceCent": 4,
  "inboundSecondOverusePriceCent": 3,
  "outboundSecondOverusePriceCent": 5,
  "enforceInboundSecondsLimit": true,
  "enforceOutboundSecondsLimit": false,
  "baseRecurringPriceCent": 1000
}
'
{
  "success": true,
  "timestamp": "2025-04-17T14:23:30Z",
  "message": "<string>",
  "data": null,
  "traceId": "<string>"
}

Path Parameters

vendorId
string
required

ID of the Vendor (UUID)

Body

application/json

Plan creation data

Data required to create a new pricing Plan.

name
string
required

Name of the plan.

Example:

"Standard Tier"

includedInboundSeconds
integer<int32>
required

Number of inbound minutes included in the base price.

Example:

1000

includedOutboundSeconds
integer<int32>
required

Number of outbound minutes included in the base price.

Example:

500

inboundSecondsLimit
integer<int32>
required

Hard limit for inbound minutes (usage stops if exceeded and enforce=true).

Example:

5000

outboundSecondsLimit
integer<int32>
required

Hard limit for outbound minutes (usage stops if exceeded and enforce=true).

Example:

2000

inboundSecondPriceCent
integer<int32>
required

Price per inbound minute (within included amount, if applicable, otherwise standard rate). In Cents.

Example:

2

outboundSecondPriceCent
integer<int32>
required

Price per outbound minute (within included amount, if applicable, otherwise standard rate). In Cents.

Example:

4

inboundSecondOverusePriceCent
integer<int32>
required

Price per inbound minute after included amount is used. In Cents.

Example:

3

outboundSecondOverusePriceCent
integer<int32>
required

Price per outbound minute after included amount is used. In Cents.

Example:

5

enforceInboundSecondsLimit
boolean
required

Whether to enforce the hard limit for inbound minutes.

Example:

true

enforceOutboundSecondsLimit
boolean
required

Whether to enforce the hard limit for outbound minutes.

Example:

false

baseRecurringPriceCent
integer<int32>
required

Base recurring price for the plan (e.g., monthly). In Cents.

Example:

1000

Response

Plan successfully created

Standard API response wrapper

success
boolean
required

Indicates if the request was successful

Example:

true

timestamp
string<date-time>
required

Response timestamp in ISO-8601 format

Example:

"2025-04-17T14:23:30Z"

message
string

Human-readable message

data
any

Payload data object

Example:

null

traceId
string

Correlation or trace ID