Fountain's Developer APIs enable Fountain's clients to access and modify their hiring data.
If you are a Fountain partner, please refer to partners.fountain.com for guides on integrating with Fountain.
Fountain API Overview
Fountain's REST APIs let you manage applicants and workers, automate tasks, react to changes, and synchronize external systems across the product suite.
Use the shared Documentation section for authentication, webhooks, integration guides and API behavior. API Reference groups the public endpoints by Hire, Referrals, Pool, I-9, Compliance, Onboard, Shift and Platform. Hire Go and Source belong with Hire where public endpoints are available. The I-9 group contains the v2 API resources.
Get started
Hire and WX use the same Fountain One OAuth client-credentials flow.
1. Create an API key
- Personal key: Open your Profile > Manage API Keys. These keys act with your user's permissions. You can create separate keys for separate uses and replace them independently.
- Integration key: Open Settings > Integrations & API Keys, create an integration, and choose its role. The integration's keys use that role's permissions. Choose a role that provides only what your integration needs.
Save both the Key and Secret. The secret is shown only once, when the key is created.

2. Obtain an access token
On an API endpoint page, use ReadMe's OAuth credentials panel to enter the Key as Client ID and the Secret as Client secret, select the employer scope, and request a token. You can also request a token from your server using the example below.
The token endpoint accepts:
| Field | Value |
|---|---|
| Token URL | https://services.fountain.com/api/servicesecurity/processes/apikey/oauth/token |
| Grant type | client_credentials |
| Client ID | Your API Key |
| Client secret | Your API Secret |
| Scope | employer |
Send the Key and Secret using HTTP Basic authentication:
curl --request POST \
--url 'https://services.fountain.com/api/servicesecurity/processes/apikey/oauth/token' \
--user 'API_KEY:API_SECRET' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=employer'The response contains an access_token. Use that token for subsequent requests; do not use the Key or Secret as the Bearer token.
3. Make your first request
ReadMe applies the token to OAuth-secured endpoints. If you obtained a token separately, paste only its value into the Bearer field, without the Bearer prefix. If the panel only offers a Bearer field, use the token request above first.
For example, list workers:
curl 'https://services.fountain.com/api/serviceworkforce/workers' \
--header 'Authorization: Bearer ACCESS_TOKEN'Or use the same token to list Hire applicants:
curl 'https://services.fountain.com/api/servicehire/v2/applicants' \
--header 'Authorization: Bearer ACCESS_TOKEN'4. Renew tokens and replace keys
Access tokens expire. Use the expiry reported in the token response and request another token when needed. To replace credentials, create a replacement key, update your integration's Key and Secret, verify its requests, then revoke the superseded key.
Keep API keys, secrets and tokens on your server. Never put them in browser code or share them in a support conversation.
If you already use a Hire API token or tenant-specific URL, see Upgrading Authentication to OAuth.
API base URL
Use https://services.fountain.com. Hire requests use /api/servicehire/v2/…; WX requests retain their documented service paths. The Hire gateway resolves your tenant from the OAuth token, so use the documented OAuth token endpoint rather than a token from another login endpoint.