openapi: 3.2.0
info:
title: Leadping Users API
description: The Leadping API helps businesses capture and manage leads, automate follow-up, send SMS and MMS messages, place calls, track conversations, enforce contact suppression, and analyze communication workflows. Use this OpenAPI 3.1 contract to integrate lead sources, build organization tools, or generate a typed API client. Authenticate protected operations with a Leadping user access token or WorkOS organization API key. Lead intake operations also accept a Leadping source key.
termsOfService: https://leadping.ai/docs/terms-of-service
contact:
name: Leadping Support
url: https://leadping.ai/contact
email: support@leadping.ai
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: v1
summary: Lead management, messaging, calling, and automation API
servers:
- url: https://api.leadping.ai
description: Production
tags:
- name: Users
description: Manages the current Leadping user's profile, preferences, setup, and account workflows. Use these endpoints to retrieve and update user data, configure communication and compliance preferences, complete onboarding, manage plan-related actions, and request account operations.
paths:
/users/me/paymentmethod:
get:
tags:
- Users
summary: Get current user's billing payment method
description: Returns the current user's default payment method details for billing displays and account payment management.
operationId: Users_GetPaymentMethodForCurrentUser
responses:
'200':
description: Returns the stripe payment method response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/StripePaymentMethodResponse'
description: Describes stripe payment method data used in Leadping API requests and responses.
'400':
description: The request was invalid or failed validation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'401':
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'429':
description: The API rate limit for this account or client has been exceeded.
headers:
Retry-After:
description: Number of seconds to wait before retrying the request.
schema:
minimum: 0
type: integer
format: int32
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
security:
- Bearer: []
/users/me:
get:
tags:
- Users
summary: Get current user account profile details
description: Returns the current user's profile, roles, organization context, billing state, and compliance settings for portal sessions.
operationId: Users_GetForCurrentUser
responses:
'200':
description: Returns the user response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserResponse'
description: Describes user data returned by Leadping.
'404':
description: The requested resource was not found.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'401':
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'429':
description: The API rate limit for this account or client has been exceeded.
headers:
Retry-After:
description: Number of seconds to wait before retrying the request.
schema:
minimum: 0
type: integer
format: int32
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
security:
- Bearer: []
put:
tags:
- Users
summary: Update current user account profile
description: Updates the current user's profile fields, contact details, preferences, or organization context used across Leadping.
operationId: Users_UpdateForCurrentUser
requestBody:
description: The user request payload for the operation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserRequest'
description: Defines the fields clients can send when working with user profile.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/UserRequest'
description: Defines the fields clients can send when working with user profile.
required: true
responses:
'200':
description: Returns the user response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserResponse'
description: Describes user data returned by Leadping.
'400':
description: The request was invalid or failed validation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'401':
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'429':
description: The API rate limit for this account or client has been exceeded.
headers:
Retry-After:
description: Number of seconds to wait before retrying the request.
schema:
minimum: 0
type: integer
format: int32
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
security:
- Bearer: []
/users/change-billing-plan:
put:
tags:
- Users
summary: Change the current user's billing plan
description: Changes the current user's billing plan selection, updating account billing state and plan-specific capabilities.
operationId: Users_ChangeBillingPlan
requestBody:
description: The change billing plan request payload for the operation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ChangeBillingPlanRequest'
description: Defines the input used for change billing plan.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ChangeBillingPlanRequest'
description: Defines the input used for change billing plan.
required: true
responses:
'200':
description: Returns the user response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserResponse'
description: Describes user data returned by Leadping.
'400':
description: The request was invalid or failed validation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'404':
description: The requested resource was not found.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'401':
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'429':
description: The API rate limit for this account or client has been exceeded.
headers:
Retry-After:
description: Number of seconds to wait before retrying the request.
schema:
minimum: 0
type: integer
format: int32
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
security:
- Bearer: []
/users/compliance:
put:
tags:
- Users
summary: Update current user compliance settings
description: Updates current-user compliance settings used for messaging eligibility, billing readiness, and organization account setup.
operationId: Users_UpdateCompliance
requestBody:
description: The compliance update request payload for the operation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ComplianceUpdateRequest'
description: Defines the input used for compliance update.
application/*+json:
schema:
allOf:
- $ref: '#/components/schemas/ComplianceUpdateRequest'
description: Defines the input used for compliance update.
required: true
responses:
'200':
description: Returns the user response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/UserResponse'
description: Describes user data returned by Leadping.
'400':
description: The request was invalid or failed validation.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'401':
description: Authentication credentials are missing or invalid.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
'429':
description: The API rate limit for this account or client has been exceeded.
headers:
Retry-After:
description: Number of seconds to wait before retrying the request.
schema:
minimum: 0
type: integer
format: int32
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/ProblemDetails'
description: Standard problem-details response containing machine-readable and human-readable information about an HTTP API error.
security:
- Bearer: []
components:
schemas:
TrustedFormCertificate:
type: object
properties:
id:
type:
- 'null'
- string
description: Unique Leadping identifier for this TrustedForm certificate.
url:
type: string
description: The URL associated with this TrustedForm certificate.
format: uri
source:
type:
- 'null'
- string
description: Source for this TrustedForm certificate.
createdAt:
type:
- 'null'
- string
description: UTC timestamp for created at on this TrustedForm certificate.
format: date-time
description: Describes trusted form certificate data used in Leadping API requests and responses.
OrganizationBillingState:
type: object
properties:
hasStripeCustomer:
type: boolean
description: Indicates whether the organization has a Stripe customer account.
hasPaymentMethod:
type: boolean
description: Indicates whether the organization has a saved default payment method.
phoneNumberQuantity:
type:
- 'null'
- integer
description: Number of phone numbers included in the organization's subscription plan.
format: int64
organizationMemberQuantity:
type:
- 'null'
- integer
description: Number of user licenses included in the organization's subscription plan.
format: int64
organizationMemberAssignedQuantity:
type:
- 'null'
- integer
description: Number of user licenses currently assigned to organization members.
format: int64
pendingBillingPlan:
enum:
- Annual
- Monthly
type:
- 'null'
- string
description: Identifies the Leadping subscription plan that determines organization features, allowances, and billing behavior.
billingPlanChangeEffectiveAt:
type:
- 'null'
- string
description: Date and time when the scheduled billing plan change takes effect.
format: date-time
planRenewalAt:
type:
- 'null'
- string
description: Current plan renewal date.
format: date-time
planPeriodStartAt:
type:
- 'null'
- string
description: Start of the current plan billing period.
format: date-time
cancelAt:
type:
- 'null'
- string
description: UTC timestamp when the active subscription is scheduled to cancel.
format: date-time
dunning:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/OrganizationDunningInfo'
description: Customer-safe payment recovery state for the organization.
lastSubscriptionEventAt:
type:
- 'null'
- string
description: UTC timestamp when Leadping last processed a subscription event for the organization.
format: date-time
lastPaymentMethodEventAt:
type:
- 'null'
- string
description: UTC timestamp when Leadping last processed a payment-method event for the organization.
format: date-time
description: Customer-safe billing state for a Leadping organization.
StripePaymentMethodResponse:
required:
- id
- brand
- last4
type: object
properties:
id:
type: string
description: Unique Leadping identifier for this Stripe payment method.
brand:
type: string
description: Card network brand, such as Visa, Mastercard, or American Express.
last4:
type: string
description: UTC timestamp for last4 on this Stripe payment method.
expMonth:
type: integer
description: Two-digit month when the card expires.
format: int32
expYear:
type: integer
description: Four-digit year when the card expires.
format: int32
isDefault:
type: boolean
description: Whether this Stripe payment method is default.
createdAt:
type:
- 'null'
- string
description: UTC timestamp for created at on this Stripe payment method.
format: date-time
description: Describes stripe payment method data used in Leadping API requests and responses.
UserResponse:
type: object
properties:
email:
type: string
description: The email address associated with this user.
format: email
firstName:
type:
- 'null'
- string
description: First name for this user.
lastName:
type:
- 'null'
- string
description: UTC timestamp for last name on this user.
phone:
type:
- 'null'
- string
description: The phone number associated with this user.
timeZoneId:
type:
- 'null'
- string
description: IANA time zone identifier used when displaying dates and times for this user.
billingPlan:
enum:
- Annual
- Monthly
type:
- 'null'
- string
description: Identifies the Leadping subscription plan that determines organization features, allowances, and billing behavior.
subscriptionStatus:
enum:
- Pending
- Active
- Overdue
- Canceled
type:
- 'null'
- string
description: Describes an organization's billing subscription lifecycle, including trial, active, delinquent, canceled, and expired states.
billingState:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/OrganizationBillingState'
description: Customer-safe billing state for the user's currently selected organization.
roles:
type:
- 'null'
- array
items:
type: string
description: A Leadping user role value.
description: The roles included with this user.
identities:
type:
- 'null'
- array
items:
allOf:
- $ref: '#/components/schemas/UserIdentity'
description: Identifies an external sign-in identity linked to a Leadping user, including its provider, provider-assigned user identifier, and authentication method.
description: The identities included with this user.
currentOrganization:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/IdNamePair'
description: Current organization for this user.
compliance:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/UserCompliance'
description: Compliance for this user.
notificationPreferences:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/UserNotificationPreferences'
description: Notification preferences for this user.
mobileDevicePreferences:
type:
- 'null'
- array
items:
allOf:
- $ref: '#/components/schemas/MobileDevicePreferences'
description: Describes notification and calling preferences saved for one of the user's mobile devices.
description: The Leadping mobile device preferences for this user.
lastLoggedInAt:
type:
- 'null'
- string
description: The date and time when this user last completed the Leadping sign-in flow.
format: date-time
personalDataDeletionRequestedAt:
type:
- 'null'
- string
description: UTC timestamp for personal data deletion requested at on this user.
format: date-time
personalDataDeletedAt:
type:
- 'null'
- string
description: UTC timestamp for personal data deleted at on this user.
format: date-time
personalDataDeletionStatus:
type:
- 'null'
- string
description: The current personal data deletion status for this user.
personalDataDeletionReason:
type:
- 'null'
- string
description: The human-readable personal data deletion reason explaining this user.
name:
type: string
description: Human-readable display name of the resource.
id:
type: string
description: Stable unique identifier of the resource.
createdAt:
type: string
description: UTC timestamp when the resource was created.
format: date-time
modifiedAt:
type:
- 'null'
- string
description: UTC timestamp when the resource was last modified, or null when it has not been updated.
format: date-time
description: Describes user data returned by Leadping.
UserNotificationPreferences:
type: object
properties:
smsConsentOptedIn:
type:
- 'null'
- boolean
description: Whether the user has consented to receive Leadping account notification SMS messages.
smsConsentUpdatedAt:
type:
- 'null'
- string
description: When the user's Leadping notification SMS consent was last changed.
format: date-time
smsConsentTrustedFormCertificate:
type:
- 'null'
- object
allOf:
- $ref: '#/components/schemas/TrustedFormCertificate'
description: The TrustedForm certificate captured for the user's most recent SMS opt-in.
paymentFailedEnabled:
type: boolean
description: Whether payment failed notifications are enabled for this user notification preferences.
paymentFailedSmsEnabled:
type: boolean
description: Indicates whether payment failed SMS functionality is enabled for this Leadping user notification preferences.
lowWalletBalanceEnabled:
type: boolean
description: Whether low wallet balance notifications are enabled for this user notification preferences.
lowWalletBalanceEmailEnabled:
type: boolean
description: Indicates whether low wallet balance email functionality is enabled for this Leadping user notification preferences.
lowWalletBalanceSmsEnabled:
type: boolean
description: Indicates whether low wallet balance SMS functionality is enabled for this Leadping user notification preferences.
tenDlcStatusEnabled:
type: boolean
description: Whether 10DLC status notifications are enabled for this user notification preferences.
newLeadEnabled:
type: boolean
description: Whether new lead notifications are enabled for this user notification preferences.
newLeadEmailEnabled:
type: boolean
description: Whether new lead email is enabled for this user notification preferences.
newLeadSmsEnabled:
type: boolean
description: Whether new lead SMS is enabled for this user notification preferences.
missedCallEnabled:
type: boolean
description: Whether missed call notifications are enabled for this user notification preferences.
missedCallEmailEnabled:
type: boolean
description: Indicates whether missed call email functionality is enabled for this Leadping user notification preferences.
missedCallSmsEnabled:
type: boolean
description: Indicates whether missed call SMS functionality is enabled for this Leadping user notification preferences.
unreadSmsEnabled:
type: boolean
description: Whether unread SMS notifications are enabled for this user notification preferences.
unreadSmsEmailEnabled:
type: boolean
description: Indicates whether unread SMS email functionality is enabled for this Leadping user notification preferences.
unreadSmsSmsEnabled:
type: boolean
description: Indicates whether unread SMS SMS functionality is enabled for this Leadping user notification preferences.
automationFailedEnabled:
type: boolean
description: Whether automation failed notifications are enabled for this user notification preferences.
automationFailedEmailEnabled:
type: boolean
description: Indicates whether automation failed email functionality is enabled for this Leadping user notification preferences.
automationFailedSmsEnabled:
type: boolean
description: Indicates whether automation failed SMS functionality is enabled for this Leadping user notification preferences.
billingEmailEnabled:
type: boolean
description: Whether billing email is enabled for this user notification preferences.
billingSmsEnabled:
type: boolean
description: Whether billing SMS is enabled for this user notification preferences.
subscriptionRenewingEnabled:
type: boolean
description: Whether subscription renewing notifications are enabled for this user notification preferences.
subscriptionRenewingEmailEnabled:
type: boolean
description: Indicates whether subscription renewing email functionality is enabled for this Leadping user notification preferences.
subscriptionRenewingSmsEnabled:
type: boolean
description: Indicates whether subscription renewing SMS functionality is enabled for this Leadping user notification preferences.
usageLimitHitEnabled:
type: boolean
description: Whether usage limit hit notifications are enabled for this user notification preferences.
description: Describes user notification preferences data used in Leadping API requests and responses.
BillingPlan:
enum:
- Annual
- Monthly
type: string
description: Identifies the Leadping subscription plan that determines organization features, allowances, and billing behavior.
IdNamePair:
required:
- id
- name
type: object
properties:
id:
type: string
description: Stable unique identifier of the referenced resource.
name:
type: string
description: Human-readable display name of the referenced resource.
description: Provides a compact API reference to another resource using its stable identifier and human-readable display name.
ChangeBillingPlanRequest:
required:
- billingPlan
type: object
properties:
billingPlan:
allOf:
- $ref: '#/components/schemas/BillingPlan'
description: Billing plan for this billing plan.
userId:
type:
- 'null'
- string
description: The user ID associated with this billing plan.
description: Defines the input used for change billing plan.
MobileDevicePreferences:
type: object
properties:
device:
allOf:
- $ref: '#/components/schemas/IdNamePair'
description: Identifier and display name of the related device.
inboundPhoneCallsEnabled:
type: boolean
description: Whether inbound phone calls are enabled for this user device.
updatedAt:
type:
- 'null'
- string
description: The date and time this device preference was last updated.
format: date-time
description: Describes notification and calling preferences saved for one of the user's mobile devices.
UserIdentity:
type: object
properties:
issuer:
type: string
description: Identity provider or tenant that issued the sign-in identity, such as contoso.com or facebook.com.
issuerAssignedId:
type: string
description: Stable unique user identifier assigned by the identity provider within the issuer's namespace.
signInType:
type: string
description: Sign-in method represented by the identity, such as emailAddress, userName, or federated.
description: Identifies an external sign-in identity linked to a Leadping user, including its provider, provider-assigned user identifier, and authentication method.
UserCompliance:
type: object
properties:
acceptedTerms:
type: boolean
description: Whether the user accepted terms for this user compliance.
acceptedToSubscription:
type: boolean
description: Whether the user accepted subscription for this user compliance.
acceptedSms:
type: boolean
description: Whether the user accepted SMS for this user compliance.
acceptedBaa:
type: boolean
description: Whether the user accepted BAA for this user compliance.
acceptedEmail:
type: boolean
description: Whether the user accepted email for this user compliance.
trustedFormCertificates:
type:
- 'null'
- array
items:
allOf:
- $ref: '#/components/schemas/TrustedFormCertificate'
description: Describes trusted form certificate data used in Leadping API requests and responses.
description: The TrustedForm certificates included with this user compliance.
description: Describes user compliance data used in Leadping API requests and responses.
ProblemDetails:
type: object
properties:
type:
type:
- 'null'
- string
description: URI reference that identifies the problem type.
title:
type:
- 'null'
- string
description: Short, human-readable summary of the problem.
status:
type:
- 'null'
- integer
description: HTTP status code returned for the problem.
format: int32
detail:
type:
- 'null'
- string
description: Human-readable explanation specific to this occurrence of the problem.
instance:
type:
- 'null'
- string
description: URI reference that identifies t
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leadping/refs/heads/main/openapi/leadping-users-api-openapi.yml