Ploy · Authentication Profile
Ploy Authentication
Authentication
Ploy secures its APIs with http across 3 declared security schemes, as derived from its OpenAPI definitions.
CompanyMarketingMarketing AutomationArtificial IntelligenceAI AgentsSEOWebsite BuilderGrowthAdvertisingWebhooksCLIAgent Skills
Methods: http
Schemes: 3
OAuth flows:
API key in: header
Security Schemes
PloyApiToken http
scheme: bearer
· in: env (PLOY_API_TOKEN)
PloyWebhookEndpointKey http
scheme: bearer
· in: header (Authorization)
PloyCliBrowserLogin http
scheme: bearer
· in: config (~/.config/ploy/config.json)
Source
Authentication Profile
generated: '2026-08-12'
method: searched
source: https://docs.ploy.ai/cli/authentication
docs:
- https://docs.ploy.ai/cli/authentication
- https://docs.ploy.ai/cli/remote-development
- https://docs.ploy.ai/webhooks
- https://docs.ploy.ai/enhanced-security
note: >-
Ploy publishes no OpenAPI, so this profile is read from the documentation
rather than derived from securitySchemes. Two distinct credentials exist and
they are not interchangeable: a workspace-scoped API token used by the Ploy CLI
(and anything driving it), and a per-endpoint webhook ingest key. Both are sent
as HTTP bearer tokens.
summary:
types: [http]
schemes: [bearer]
api_key_in: [header]
oauth2_flows: []
oauth2_note: >-
OAuth 2.0 appears only OUTBOUND — Ploy connects to third-party services
(Google, GitHub, HubSpot, Notion, Slack, Figma, ad platforms) over OAuth with
scoped permissions. Ploy does not publish an OAuth authorization server of
its own; /.well-known/oauth-authorization-server and
/.well-known/openid-configuration return 404 on ploy.ai (probed 2026-08-12).
schemes:
- name: PloyApiToken
type: http
scheme: bearer
in: env
parameter: PLOY_API_TOKEN
token_prefix: sk_ploy_pat_
scope: workspace
description: >-
Workspace-scoped personal access token created in workspace Settings →
Developer → API tokens. Read by the CLI on every invocation and never written
to disk. Each token is pinned to exactly one workspace; the pin is enforced
by the API, not by the client, and a mismatched --workspace/PLOY_WORKSPACE_ID
exits 1 with "This API token is scoped to a different workspace".
expiry:
options_days: [30, 90, 365]
default_days: 90
refresh: false
check: ploy whoami reports the pinned workspace and remaining days
issuance: >-
The raw token is shown once, with a copyable `export PLOY_API_TOKEN=…` line.
It cannot be retrieved later. Any workspace member can create and view their
own tokens; owners and admins can view and revoke every token in the
workspace.
restrictions: >-
ploy logout, ploy tokens and ploy token revoke are unavailable while
PLOY_API_TOKEN is set (exit code 2). API tokens cannot mint replacement
credentials or revoke the browser session that created them.
failure_modes:
- exit 3 — "PLOY_API_TOKEN is invalid or expired"
- exit 3 — "PLOY_API_TOKEN is not workspace-scoped"
rate_limit: 60 requests per minute per token
source: https://docs.ploy.ai/cli/authentication
- name: PloyWebhookEndpointKey
type: http
scheme: bearer
in: header
parameter: Authorization
scope: single webhook endpoint
description: >-
API key minted per webhook ingest endpoint in workspace Settings → Webhooks
and shown once. Sent as `Authorization: Bearer {apiKey}` on every POST to
https://ploy.ai/api/v1/webhook/{endpointSlug}. Requests without a valid key
are rejected with 401. Disabling or rotating an endpoint invalidates its key
immediately; there is no rotate-in-place — the documented rotation is create
a new endpoint, update the sender, disable the old one.
source: https://docs.ploy.ai/webhooks
- name: PloyCliBrowserLogin
type: http
scheme: bearer
in: config
parameter: ~/.config/ploy/config.json
description: >-
Interactive `ploy login` stores a server-side-revocable CLI refresh
credential in ~/.config/ploy/config.json (mode 0600). `ploy tokens` lists up
to 100 active CLI credentials; `ploy token revoke <id|name|current>` revokes
one. Superseded by PLOY_API_TOKEN when that variable is set.
source: https://docs.ploy.ai/cli/authentication
account_security:
passkeys: true
sso_saml: announced (listed as "Coming soon" on the Enterprise plan)
source: https://docs.ploy.ai/enhanced-security