How to Get Started with the Sparkforge Developer Marketplace
To build on Sparkforge: register an app at marketplace.sparkforge.com, choose Agency or Sub-Account distribution, add OAuth scopes, generate Client ID and Client Secret, and set up an OAuth redirect endpoint that exchanges the auth code for an access token. Webhooks fire to a POST endpoint you configure.
The Sparkforge Developer Marketplace exposes the platform's APIs through OAuth 2.0. You can build public apps for the Marketplace listing, private apps limited to your own agency, or vendor integrations with sub-account scope. This guide covers the OAuth flow, app registration, and webhook setup.
Distribution and access levels
- Sub-Account / Location level — operations scoped to a single sub-account. Pass the location ID with each call.
- Agency / Company level — operations across every sub-account in the agency.
- Public app — listed in the Marketplace, installable by any qualifying account.
- Private app — invite-only, capped at 5 unique agency installs. To go beyond 5 you publish public or request a security review.
OAuth 2.0 flow
- Register. Create an app in the Marketplace with name, type, distribution, and scopes. You receive a Client ID and Client Secret.
- Authorize. Redirect the user to the Marketplace authorization URL with your Client ID, scopes, and redirect URI.
- Consent. The user signs in and approves. The Marketplace redirects back to your URI with an authorization code in the query string.
- Exchange. Your server POSTs the code, Client ID, Client Secret, grant type, and redirect URI to
/oauth/token. You get back an access token, refresh token, and expiration. - Call. Include
Authorization: Bearer {access_token}on every API request. The token's scopes determine what calls succeed. - Refresh. When the access token expires, exchange the refresh token for a new one without involving the user.
OAuth 2.0 with PKCE
Public clients (browser apps, mobile apps) and providers that require PKCE add a code_challenge and code_challenge_method=S256 to the auth request, then send the matching code_verifier on the token exchange. Configuration details: marketplace.sparkforge.com/docs/oauth/ExternalAuthentication.
Step-by-step: build your first app
- Sign up at marketplace.sparkforge.com.
- In My Apps, click Create App. Fill in name, type (public or private), and distribution (agency or sub-account).
- Add the scopes your app needs. Reference the Scopes doc — request the minimum set, not everything.
- Generate client credentials. Save the Client ID and Client Secret in a vault.
- Build a GET endpoint at, e.g.,
/oauth/callback/sparkforge. It pulls thecodequery param, POSTs to the token endpoint, and stores the access and refresh tokens. - Set the OAuth Redirect URL in your app settings to that endpoint.
- Build a POST endpoint to receive webhook events. The body is JSON.
- Set the webhook URL in your app settings.
Install and connect a webhook
- Sign in as an agency admin.
- Open your app in the Marketplace, click + Add App, pick the target sub-account or location.
- You'll be redirected back with
code=...in the URL. - Open
YOUR_REDIRECT_URL?code=CODEto trigger the token exchange. - If the response from the token endpoint includes an access token, the webhook is connected.
Common API operations
- Contacts CRUD, search, and tags
- Conversations and messages (email, SMS, chat)
- Forms and form submissions
- Custom fields and custom values
- Email and SMS templates
- Opportunities and pipelines
- Calendars, appointments, and tasks
- Orders, customers, and invoices
- Workflows (create, update, trigger)
- Snapshots
Sell on Marketplace
When an agency admin clicks Sell on Marketplace, Sparkforge auto-creates a developer profile in the background using the existing account, prompts the admin to set a password, accept developer terms, and verify a one-time email code, then signs them into the new developer account. No separate signup form.
Frequently Asked Questions
What's the difference between agency and sub-account distribution?
How many agencies can install a private app?
Do I need PKCE?
How long do access tokens last?
Where do webhook events come from?
Was this article helpful?
Thanks for the feedback.