Publer · Authentication Profile

Publer Authentication

Authentication

Publer secures its APIs with apiKey across 2 declared security schemes, as derived from its OpenAPI definitions.

Social-MediaSchedulingPublishingContent ManagementMarketingSocial Media ManagementAnalyticsAgentsMCPAutomation
Methods: apiKey Schemes: 2 OAuth flows: API key in: header

Security Schemes

BearerApiAuth apiKey
· in: header (Authorization)
workspace_id apiKey
· in: header (Publer-Workspace-Id)

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
docs: https://publer.com/docs/getting-started/authentication.md
source: >-
  https://publer.com/docs/getting-started/authentication.md,
  https://publer.com/docs/api-reference/introduction.md,
  https://publer.com/help/en/article/how-to-access-the-publer-api-1w08edo/ —
  cross-checked against openapi/_original/publer-openapi.yml
provider: Publer
providerId: publer
summary:
  types:
  - apiKey
  api_key_in:
  - header
  oauth2: false
  openid_connect: false
  mtls: false
  scoped: true
  note: >-
    API key only. Publer runs no OAuth 2.0 or OIDC authorization server, and
    serves no /.well-known/oauth-authorization-server or
    /.well-known/openid-configuration (probed 2026-08-13 — publer.com returns a
    Framer SPA HTML shell, app.publer.com returns 410). Keys are long-lived and
    user-scoped; the scope set is chosen at creation time.
schemes:
- name: BearerApiAuth
  type: apiKey
  in: header
  parameter: Authorization
  format: 'Bearer-API YOUR_API_KEY'
  description: >-
    API key passed as `Authorization: Bearer-API YOUR_API_KEY`. The auth-scheme
    token is `Bearer-API`, NOT the RFC 6750 `Bearer` — off-the-shelf bearer
    clients and generated SDKs will fail with 401 unless the prefix is
    customized. This is the single most common integration mistake on this API.
  sources:
  - openapi/_original/publer-openapi.yml
  - https://publer.com/docs/getting-started/authentication.md
- name: workspace_id
  type: apiKey
  in: header
  parameter: Publer-Workspace-Id
  description: >-
    Workspace scoping header, required on most endpoints (accounts, media,
    posts, analytics, competitors, jobs). Obtained from GET /workspaces.
    Omitting it returns 403 Forbidden, not 401 — a distinction that misleads
    clients into re-checking their key.
  sources:
  - openapi/_original/publer-openapi.yml
  - https://publer.com/docs/api-reference/workspaces.md
  note: >-
    Declared as a securityScheme in some of Publer's per-page OpenAPI blocks and
    as a required header PARAMETER in others — the specification is not
    internally consistent about which it is.
key_management:
  issuance: >-
    Self-service in the Publer app — Settings -> Access & Login -> API Keys (the
    help center also documents Settings -> API & Webhooks). Name is required;
    scopes are selected at creation.
  visibility: shown once at creation; not retrievable afterwards
  rotation: >-
    Manual. Publer recommends rotating every 90-180 days, or after team changes
    or incidents. Keys cannot be re-scoped — remove and recreate.
  revocation: self-service removal from the same settings screen
  expiry: not documented
  multiple_keys: >-
    Supported and recommended (separate keys per use case for least privilege),
    but note the rate limit is applied per USER ACCOUNT across all keys, so
    splitting keys does not split throughput.
  self_test: >-
    The app provides a "Try it out" console that fires test requests against
    selected endpoints with the new key.
scopes:
  supported: true
  model: per-key permission scopes selected at creation
  mandatory:
  - workspaces
  - accounts
  optional:
  - posts
  - media
  - analytics
  see: scopes/publer-scopes.yml
errors:
  '401':
  - Missing or invalid Authorization header
  - Key revoked or expired
  '403':
  - Insufficient scopes for the endpoint
  - Missing Publer-Workspace-Id header
  - Plan entitlement missing (e.g. analytics requires a paying subscription)
  body: '{"errors": ["Detailed error message"]}'
  note: >-
    403 conflates three unrelated causes and there is no machine-readable code
    to tell them apart — only the message string.
entitlement:
  gated: true
  requirement: >-
    Enterprise plan, Business plan in good standing (no failed or locked
    subscription), or Top Ambassador status.
  source: https://publer.com/help/en/article/does-publer-have-a-public-api-194nknf/
transport:
  https_required: true
  tls: TLSv1.3 on app.publer.com (probed 2026-08-13)
  see: security/publer-domain-security.yml
provider_guidance:
- Store keys in environment variables or a secrets vault, never in code.
- Rotate every 90-180 days or after any team change or incident.
- Create separate keys per use case (least privilege).
- Never log a full key; mask all but the last 4 characters.
- Always use HTTPS.
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com