Summary and recommendation
Influitive exposes a token-based REST API at `https://[your-hub].influitive.com/api/v1`, where `[your-hub]` must be replaced with your actual AdvocateHub subdomain.
Authentication is via a static API key passed in the `Authorization: Token token=YOUR_API_KEY` header - no OAuth 2.0 flow is publicly documented.
The developer portal at `influitive.readme.io` requires authentication to access most endpoint details, so public documentation is sparse and several behaviors documented here are inferred from standard REST conventions rather than confirmed specs.
There is no SCIM 2.0 support, meaning identity graph synchronization with Okta, Entra ID, Google Workspace, or OneLogin must be implemented entirely through direct API calls.
Rate limits, pagination defaults, and versioning policy are not publicly disclosed;
treat all inferred values as unverified until confirmed with Influitive support.
API quick reference
| Has user API | Yes |
| Auth method | API Key (token-based); passed as a request header or query parameter |
| Base URL | Official docs |
| SCIM available | No |
| SCIM plan required | N/A |
Authentication
Auth method: API Key (token-based); passed as a request header or query parameter
Setup steps
- Log in to your Influitive AdvocateHub as an administrator.
- Navigate to Settings > Integrations or API settings to generate an API token.
- Include the token in requests via the Authorization header: 'Authorization: Token token=YOUR_API_KEY'.
User object / data model
| Field | Type | Description | On create | On update | Notes |
|---|---|---|---|---|---|
| id | integer | Unique advocate identifier | auto-assigned | read-only | |
| string | Advocate email address | required | updatable | Used as unique identifier for lookups | |
| first_name | string | Advocate first name | required | updatable | |
| last_name | string | Advocate last name | required | updatable | |
| title | string | Job title | optional | updatable | |
| company | string | Company name | optional | updatable | |
| status | string | Advocate status (e.g., active, inactive) | optional | updatable | |
| groups | array | Group memberships for the advocate | optional | updatable | |
| custom_fields | object | Key-value pairs for custom advocate attributes | optional | updatable | Field keys depend on hub configuration |
Core endpoints
List advocates
- Method: GET
- URL:
https://[your-hub].influitive.com/api/v1/advocates - Watch out for: Full field list and pagination parameters not publicly documented; behavior may vary by hub configuration.
Request example
GET /api/v1/advocates
Authorization: Token token=YOUR_API_KEY
Response example
{
"advocates": [
{"id": 1, "email": "user@example.com", "first_name": "Jane", "last_name": "Doe"}
]
}
Get advocate by ID
- Method: GET
- URL:
https://[your-hub].influitive.com/api/v1/advocates/:id - Watch out for: Endpoint existence inferred from standard REST patterns in partial docs; verify against your hub's API reference.
Request example
GET /api/v1/advocates/1
Authorization: Token token=YOUR_API_KEY
Response example
{
"advocate": {
"id": 1,
"email": "user@example.com",
"first_name": "Jane"
}
}
Create advocate
- Method: POST
- URL:
https://[your-hub].influitive.com/api/v1/advocates - Watch out for: Duplicate email handling behavior not publicly documented; test for idempotency before bulk imports.
Request example
POST /api/v1/advocates
Authorization: Token token=YOUR_API_KEY
{"advocate": {"email": "new@example.com", "first_name": "John", "last_name": "Smith"}}
Response example
{
"advocate": {
"id": 42,
"email": "new@example.com"
}
}
Update advocate
- Method: PUT
- URL:
https://[your-hub].influitive.com/api/v1/advocates/:id - Watch out for: Whether PATCH is also supported is not confirmed in public docs; use PUT for full updates.
Request example
PUT /api/v1/advocates/42
Authorization: Token token=YOUR_API_KEY
{"advocate": {"title": "VP Marketing"}}
Response example
{
"advocate": {
"id": 42,
"title": "VP Marketing"
}
}
Delete advocate
- Method: DELETE
- URL:
https://[your-hub].influitive.com/api/v1/advocates/:id - Watch out for: Deletion may be irreversible; soft-delete vs. hard-delete behavior not publicly documented.
Request example
DELETE /api/v1/advocates/42
Authorization: Token token=YOUR_API_KEY
Response example
HTTP 204 No Content
Rate limits, pagination, and events
Rate limits: No publicly documented rate limit tiers or specific request-per-minute values found in official docs.
Rate-limit headers: No
Retry-After header: No
Rate-limit notes: Rate limit details are not publicly disclosed. Contact Influitive support for current limits.
Pagination method: offset
Default page size: 0
Max page size: 0
Pagination pointer: page
Webhooks available: Yes
Webhook notes: Influitive supports outbound webhooks for hub events, configurable via the integrations settings. Specific event types and payload schemas are not fully detailed in public documentation.
Alternative event strategy: Polling the advocates list endpoint can be used if webhooks are not available on a given plan.
Webhook events: advocate.created, advocate.updated, challenge.completed, referral.submitted
SCIM API status
- SCIM available: No
- SCIM version: Not documented
- Plan required: N/A
- Endpoint: Not documented
Limitations:
- No native SCIM 2.0 support documented in official Influitive help or developer docs.
- No IdP (Okta, Entra, Google Workspace, OneLogin) SCIM connector officially listed.
Common scenarios
Three integration scenarios are supported by the available endpoint surface, each with meaningful caveats.
For bulk advocate import, POST to /api/v1/advocates per record with email, first_name, and last_name - no batch endpoint is publicly documented, so each advocate requires an individual request;
test duplicate email handling in a staging hub before any production bulk run.
For deactivating a departed advocate, GET /api/v1/advocates to resolve the advocate's ID by email, then either PUT with status: inactive or DELETE the record
soft-delete versus hard-delete behavior is unconfirmed, so validate in a non-production environment first.
For CRM-driven profile syncs, PUT to /api/v1/advocates/:id with updated title, company, or custom_fields values;
custom field keys must exactly match those pre-configured in the hub admin, as mismatched keys may be silently ignored with no error response.
Bulk import new advocates
- Authenticate using your hub API token in the Authorization header.
- POST to /api/v1/advocates for each new user with required fields: email, first_name, last_name.
- Check response for the assigned advocate ID and store for future updates.
- Handle duplicate email errors gracefully; test behavior in a staging hub first.
Watch out for: No bulk/batch endpoint is publicly documented; each advocate requires an individual POST request.
Deactivate a departed advocate
- GET /api/v1/advocates to find the advocate by email and retrieve their ID.
- PUT /api/v1/advocates/:id with status set to 'inactive' (if supported) or DELETE the record.
- Confirm the advocate no longer appears in active hub listings.
Watch out for: Soft-delete (status change) vs. hard-delete behavior is not publicly confirmed; test before production use.
Sync advocate profile updates from CRM
- Retrieve the advocate's ID by querying /api/v1/advocates filtered by email.
- PUT /api/v1/advocates/:id with updated fields (title, company, custom_fields).
- Log the API response to confirm successful update.
Watch out for: Custom field keys must exactly match those configured in the hub admin; mismatched keys may be silently ignored.
Why building this yourself is a trap
The primary integration risk is documentation opacity: most endpoint contracts, error schemas, and pagination behavior are behind an authenticated developer portal, leaving implementers to infer behavior from partial references.
The static API key model introduces a rotation risk - there is no documented OAuth token refresh, so a compromised or expired key requires manual regeneration and redeployment across any dependent systems. Because Influitive has no SCIM support, any identity graph that relies on automated provisioning events from an IdP will not receive them;
lifecycle events must be explicitly triggered by an external orchestration layer. Webhooks are available for events such as advocate.created, advocate.updated, challenge.completed, and referral.submitted, but payload schemas and plan-level availability are not fully detailed in public documentation, making them unreliable as a sole sync mechanism without prior validation against your specific hub configuration.
Automate Influitive workflows without one-off scripts
Stitchflow builds and maintains end-to-end IT automation across your SaaS stack, including apps without APIs. Built for exactly how your company works, with human approvals where they matter.