LeadPanther API Overview

LeadPanther API v1 is available to accounts with active billing. API keys can be created and managed from Dashboard Settings -> Developer. Suspended, past-due, canceled, unpaid, and incomplete accounts cannot create or use API keys. API keys are bearer tokens. Keep them server-side and never expose them in browser code.

The canonical base URL is:

https://app.leadpanther.ai/api/v1

https://api.leadpanther.ai/v1 is not the LeadPanther app API base URL.

Current Capabilities

API v1 supports:

  • Reading API key subject information.
  • Listing accessible client accounts.
  • Creating, reading, updating, and deleting draft or scheduled posts.
  • Reading post engagement metrics.
  • Creating, reading, updating, and archiving lead magnets.
  • Reading lead magnet analytics.
  • Creating signed media upload URLs and deleting uploaded media.
  • Listing leads.
  • Listing inbound activity.
  • Scheduling workspace member comment and repost actions for enabled workspaces.

Do not guess endpoint names. Use only documented paths under https://app.leadpanther.ai/api/v1. Generic paths such as /accounts, /users, /lists, /campaigns, /organizations, /team, /workspaces, and /lead-magnet-posts are not API v1 endpoints. The only documented workspace path is /workspaces/{workspaceId}/social-actions.

Authentication

Send your API key in the Authorization header:

Authorization: Bearer lp_live_REDACTED

Supported key prefixes are lp_live_ and lp_test_.

All authenticated endpoints require a valid API key. Most endpoints also require a specific scope. The * scope satisfies any required scope.

Direct And Agency Access

Direct-user routes operate on the API key owner's account:

/posts
/lead-magnets
/leads
/activity

Agency client work uses nested client routes:

/clients/{clientId}/posts
/clients/{clientId}/lead-magnets
/clients/{clientId}/leads
/clients/{clientId}/activity

For agency access, use the nested client routes. A valid agency API key alone is not enough; the agency must also have an active grant for the target client account.

In API v1, clientId is the client account user_id. Use values returned by GET /clients; do not use account table IDs, API key IDs, key hashes, or private database fields.

Workspace social actions use:

/workspaces/{workspaceId}/social-actions

This route is not an agency-client route and does not use clientId.

Response Format

Success responses use a data envelope:

{
  "data": {
    "name": "LeadPanther API",
    "version": "v1"
  },
  "request_id": "req_000000000000000000000001"
}

List responses include pagination:

{
  "data": [],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "has_more": false
  },
  "request_id": "req_000000000000000000000002"
}

Error responses include a stable error code and message:

{
  "error": {
    "code": "forbidden",
    "message": "API key is missing a required scope."
  },
  "request_id": "req_000000000000000000000003"
}

Use the response request_id when contacting LeadPanther support about an API call.

Pagination

All list endpoints use limit and offset pagination. Unless otherwise documented, limit defaults to 50 and is capped at 100.

GET /posts?limit=25&offset=0

Canonical pagination loop:

  1. Start with offset=0.
  2. Keep limit and all filters the same for the full export.
  3. Read pagination.has_more from the response.
  4. If has_more is true, add the returned pagination.limit to the current offset and request the next page.
  5. If a page fails, retry the same offset; do not advance until that page succeeds.

Lead magnet analytics uses the same style for recent capture references.

Error Codes

API v1 can return these error codes:

  • bad_request
  • unauthorized
  • forbidden
  • not_found
  • conflict
  • method_not_allowed
  • not_implemented
  • internal_error

If a call returns 403, check the API key scope and the route authorization model. Agency routes also require an active agency-client grant. Workspace social action routes require active workspace membership or an active workspace API grant.

Data Sensitivity

Public examples in these docs are redacted and do not represent the full sensitivity of production data.

The leads:read scope can return personal data, including lead email fields and profile references. The activity:read scope can return message or comment content and platform identifiers. Store, process, and share responses according to your privacy and compliance obligations.

Current Limitations

These features are planned or future-facing and are not currently available as a public API v1 contract:

  • Published rate-limit semantics.
  • Guaranteed idempotency key behavior for endpoints that do not explicitly document it.
  • Webhook endpoints.
  • Generated SDKs.
  • A public changelog and deprecation policy.

Do not use Supabase REST, Supabase storage URLs, or api.leadpanther.ai as the app API unless LeadPanther support explicitly directs you to an internal integration path.

Endpoint Summary

MethodPathPurposeRequired scope
GET/API metadatanone
GET/meAPI key owner and subject infovalid API key
GET/clientsList accessible client accountsclients:read
GET/clients/{clientId}Get one client accountclients:read
GET/postsList posts for direct userposts:read
POST/postsCreate post for direct userposts:write
GET/posts/{id}Get post for direct userposts:read
PATCH/posts/{id}Update post for direct userposts:write
DELETE/posts/{id}Delete unpublished post for direct userposts:write
GET/posts/{id}/engagementGet post engagement for direct useranalytics:read
GET/lead-magnetsList lead magnets for direct userlead_magnets:read
POST/lead-magnetsCreate lead magnet for direct userlead_magnets:write
GET/lead-magnets/{id}Get lead magnet for direct userlead_magnets:read
PATCH/lead-magnets/{id}Update lead magnet for direct userlead_magnets:write
DELETE/lead-magnets/{id}Archive lead magnet for direct userlead_magnets:write
GET/lead-magnets/{id}/analyticsGet lead magnet analytics for direct useranalytics:read
POST/media/upload-urlCreate signed upload URL for direct usermedia:write
DELETE/mediaDelete uploaded media for direct usermedia:write
GET/leadsList leads for direct userleads:read
GET/activityList inbound activity for direct useractivity:read
GET/workspaces/{workspaceId}/social-actionsList workspace social actionssocial_actions:read
POST/workspaces/{workspaceId}/social-actionsSchedule workspace comment or repost actionsocial_actions:write
GET/workspaces/{workspaceId}/social-actions/{actionId}Get workspace social actionsocial_actions:read
POST/workspaces/{workspaceId}/social-actions/{actionId}/cancelCancel queued workspace social actionsocial_actions:write

Agency equivalents use /clients/{clientId}/... for posts, lead magnets, media, leads, and activity.