FuseWP · Authentication Profile

Fusewp Authentication

Authentication

FuseWP secures its APIs with oauth2 and apiKey across 0 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and refreshToken flow(s).

CompanyWordPressEmail MarketingMarketing AutomationCRMIntegrationData SynchronizationOAuthPluginsNo Code
Methods: oauth2, apiKey Schemes: 0 OAuth flows: authorizationCode, refreshToken API key in: admin-form

Security Schemes

Source

Authentication Profile

fusewp-authentication.yml Raw ↑
generated: '2026-08-12'
method: probed
source: https://auth.fusewp.com/
docs: https://fusewp.com/article/installation-activation/
note: >-
  FuseWP publishes no OpenAPI, so no securityScheme could be derived
  mechanically. This profile was assembled from two real sources: the
  GPL-licensed first-party plugin source shipped at
  https://downloads.wordpress.org/plugin/fusewp.1.1.26.1.zip (specifically
  src/core/src/Integrations/AbstractIntegration.php and
  src/core/src/Base.php), and live HTTP probes of auth.fusewp.com and
  fusewp.com on 2026-08-12. Nothing here is inferred from marketing copy.
summary:
  types: [oauth2, apiKey]
  api_key_in: [admin-form]
  oauth2_flows: [authorizationCode, refreshToken]
  surfaces: 3
surfaces:
- id: oauth-broker
  name: FuseWP OAuth Broker
  host: https://auth.fusewp.com
  type: oauth2
  role: >-
    Confidential-client proxy. The FuseWP plugin runs self-hosted on the
    customer's server and therefore cannot hold OAuth client secrets for the
    partner platforms. FuseWP registers ONE OAuth application per partner
    against its own auth.fusewp.com redirect URI and brokers the code exchange
    and refresh on the customer's behalf.
  flows:
  - flow: authorizationCode
    initiation: GET https://auth.fusewp.com/{integration_id}
    parameters:
    - name: fwpnonce
      in: query
      required: true
      description: >-
        WordPress nonce minted by the plugin as wp_create_nonce("fusewp_{id}_auth");
        binds the round trip to the originating WordPress admin session.
    - name: redirect_url
      in: query
      required: true
      description: URL-encoded return address on the customer's own WordPress admin.
    behaviour: 302 to the partner platform's own authorize endpoint.
  - flow: refreshToken
    initiation: GET https://auth.fusewp.com/{integration_id}?refresh_token={token}
    response: JSON object carrying a boolean `success` field plus refreshed credentials
    error_handling: >-
      The plugin treats any response without `success: true` as a failure and
      increments a local refresh-error counter that feeds a client-side rate
      limiter (see rate-limits/fusewp-rate-limits.yml).
    transport_note: >-
      Called with wp_remote_get and sslverify enabled outside the vendor's local
      development constant.
  integration_ids_live:
  - {id: aweber, partner: AWeber, status: 302}
  - {id: birdsend, partner: BirdSend, status: 302}
  - {id: campaignmonitor, partner: Campaign Monitor, status: 302}
  - {id: constantcontact, partner: Constant Contact, status: 302}
  - {id: copper, partner: Copper CRM, status: 302}
  - {id: gohl, partner: GoHighLevel, status: 302}
  - {id: hubspot, partner: HubSpot, status: 302}
  - {id: keap, partner: Keap / Infusionsoft, status: 302}
  - {id: mailchimp, partner: Mailchimp, status: 302}
  - {id: zohocampaigns, partner: Zoho Campaigns, status: 302}
  - {id: zohocrm, partner: Zoho CRM, status: 302}
  integration_ids_erroring:
  - {id: google_sheet, partner: Google Sheets, status: 500}
  - {id: salesforce, partner: Salesforce, status: 500}
  erroring_note: >-
    Both are documented Pro integrations whose broker path returned HTTP 500 on
    2026-08-12 with an empty body. Recorded as observed; the cause was not
    determined and this is not asserted to be a permanent outage.
- id: mcp-oauth
  name: fusewp.com MCP OAuth server
  host: https://fusewp.com
  type: oauth2
  flows:
  - flow: authorizationCode
    authorizationUrl: https://fusewp.com/oauth/authorize
    tokenUrl: https://fusewp.com/oauth/token
    revocationUrl: https://fusewp.com/oauth/revoke
    pkce: S256
    scopes: [mcp]
  client_auth: none (public client, client_id metadata document supported)
  bearer_methods: [header]
  protects: https://fusewp.com/wp-json/mcp/mcp-oauth-server
  source: well-known/fusewp-oauth-authorization-server.json
  note: >-
    Emitted by the WordPress MCP Adapter on FuseWP's own site. See
    mcp/fusewp-mcp.yml.
- id: partner-api-keys
  name: Partner API key entry
  type: apiKey
  in: admin-form
  role: >-
    For the ~25 partner platforms that do not use OAuth (ActiveCampaign,
    Klaviyo, Brevo, MailerLite, ConvertKit/Kit, Drip, GetResponse,
    EmailOctopus, Encharge, Engage.so, Flodesk, Mailjet, Mailercloud,
    Omnisend, Ortto, Sender, SendPulse, Sendy, beehiiv, Bento, FluentCRM,
    Groundhogg, MailPoet and others) the site administrator pastes the
    partner's own API key or key+URL pair into the FuseWP settings screen. The
    credential is stored in the customer's WordPress options table and used
    directly against the partner API — it never traverses a FuseWP-operated
    service.
  storage: WordPress options table on the customer's own installation
- id: license-activation
  name: License activation
  host: https://fusewp.com
  type: apiKey
  role: >-
    The Pro build activates against Easy Digital Downloads Software Licensing
    on fusewp.com. The `edd-sl` and `edd` REST namespaces are registered on
    fusewp.com/wp-json/ and were observed in the namespace listing; the license
    key is issued to the customer at https://fusewp.com/account/.
  evidence: namespaces edd, edd-sl, edd/webhooks/v1 present at https://fusewp.com/wp-json/
inbound_api_of_own:
  present: false
  note: >-
    Grepped the entire shipped plugin for register_rest_route and WP_REST
    handlers — there are zero. FuseWP exposes no REST API on the customer's
    WordPress site. Its extension surface is PHP actions and filters
    (fusewp_loaded, fusewp_profile_update, fusewp_queued_job_handler,
    fusewp_disable_rate_limiting, fusewp_after_save_oauth_credentials and
    similar), which are in-process and not addressable over HTTP.
x-evidence:
  fetched: '2026-08-12'
  probes:
  - {url: 'https://auth.fusewp.com/mailchimp', status: 302}
  - {url: 'https://auth.fusewp.com/hubspot', status: 302}
  - {url: 'https://auth.fusewp.com/salesforce', status: 500}
  - {url: 'https://fusewp.com/.well-known/oauth-authorization-server/', status: 200}
  source_artifact: downloads.wordpress.org/plugin/fusewp.1.1.26.1.zip