Stitchflow
GetAccept logo

GetAccept User Management API Guide

API workflow

How to automate user lifecycle operations through APIs with caveats that matter in production.

UpdatedMar 11, 2026

Summary and recommendation

GetAccept exposes a REST user management API at `https://api.getaccept.com/v1` supporting OAuth 2.0 (client_credentials grant) or direct API key auth via Bearer token. Core user lifecycle operations - list, get, create, update, deactivate - are available under scoped permissions (`users:read`, `users:write`, `users:delete`).

A separate SCIM 2.0 endpoint at `https://api.getaccept.com/scim/v2` handles IdP-driven provisioning and is available on Enterprise only.

The REST API and SCIM API use distinct authentication tokens; they must not be mixed. OAuth access tokens have a limited TTL - implement token refresh logic using the client_credentials grant to avoid mid-process expiry, particularly during paginated bulk operations.

Pagination uses offset-based indexing (`page` / `limit`) with a default page size of 25 and a maximum of 100. Page indexing is 1-based. Rate limit headers (`X-RateLimit-Limit`, `X-RateLimit-Remaining`) are returned in responses, but specific numeric thresholds are not publicly documented; contact GetAccept support for Enterprise quota details.

API quick reference

Has user APIYes
Auth methodOAuth 2.0 (Bearer token) or API key via Authorization header
Base URLOfficial docs
SCIM availableYes
SCIM plan requiredEnterprise

Authentication

Auth method: OAuth 2.0 (Bearer token) or API key via Authorization header

Setup steps

  1. Log in to GetAccept and navigate to Settings > Integrations > API.
  2. Generate an API key or register an OAuth 2.0 application to obtain client_id and client_secret.
  3. For OAuth 2.0: POST to https://api.getaccept.com/v1/oauth/token with grant_type=client_credentials, client_id, and client_secret to receive an access_token.
  4. Include the token in all requests as: Authorization: Bearer .
  5. For API key auth: include as Authorization: Bearer directly.

Required scopes

Scope Description Required for
users:read Read user profiles and list users GET /users, GET /users/{id}
users:write Create and update user records POST /users, PATCH /users/{id}
users:delete Deactivate or delete users DELETE /users/{id}

User object / data model

Field Type Description On create On update Notes
id string Unique user identifier auto-generated immutable UUID format
email string User's email address required optional Must be unique within the organization
first_name string User's first name required optional
last_name string User's last name required optional
role string User role within the organization (e.g., admin, member) optional optional Enum: admin, member
status string Account status (active, inactive) auto-set to active optional Set to inactive to deactivate without deleting
team_id string ID of the team the user belongs to optional optional
phone string User's phone number optional optional
title string User's job title optional optional
company string Company name associated with the user optional optional
created_at string (ISO 8601) Timestamp of user creation auto-generated immutable
updated_at string (ISO 8601) Timestamp of last update auto-generated auto-updated
language string Preferred language/locale for the user optional optional ISO 639-1 code
picture_url string URL to user's profile picture optional optional

Core endpoints

List users

  • Method: GET
  • URL: https://api.getaccept.com/v1/users
  • Watch out for: Returns only users within the authenticated account's organization scope.

Request example

GET /v1/users?page=1&limit=25
Authorization: Bearer <token>

Response example

{
  "users": [
    {"id": "abc123", "email": "user@example.com",
     "first_name": "Jane", "last_name": "Doe",
     "status": "active", "role": "member"}
  ],
  "total": 50, "page": 1
}

Get user by ID

  • Method: GET
  • URL: https://api.getaccept.com/v1/users/{id}
  • Watch out for: Returns 404 if user ID does not exist in the organization.

Request example

GET /v1/users/abc123
Authorization: Bearer <token>

Response example

{
  "id": "abc123",
  "email": "user@example.com",
  "first_name": "Jane",
  "last_name": "Doe",
  "role": "member",
  "status": "active"
}

Create user

  • Method: POST
  • URL: https://api.getaccept.com/v1/users
  • Watch out for: An invitation email is sent to the new user upon creation. Duplicate email returns 409.

Request example

POST /v1/users
Authorization: Bearer <token>
Content-Type: application/json

{"email":"new@example.com","first_name":"John","last_name":"Smith","role":"member"}

Response example

{
  "id": "xyz789",
  "email": "new@example.com",
  "first_name": "John",
  "last_name": "Smith",
  "status": "active"
}

Update user

  • Method: PATCH
  • URL: https://api.getaccept.com/v1/users/{id}
  • Watch out for: Only include fields to be changed; omitted fields are not modified.

Request example

PATCH /v1/users/xyz789
Authorization: Bearer <token>
Content-Type: application/json

{"title":"Sales Manager","team_id":"team001"}

Response example

{
  "id": "xyz789",
  "title": "Sales Manager",
  "team_id": "team001",
  "updated_at": "2025-06-01T10:00:00Z"
}

Deactivate/delete user

  • Method: DELETE
  • URL: https://api.getaccept.com/v1/users/{id}
  • Watch out for: Behavior may be soft-delete (status set to inactive) rather than permanent deletion. Verify with GetAccept support for data retention implications.

Request example

DELETE /v1/users/xyz789
Authorization: Bearer <token>

Response example

{
  "success": true,
  "message": "User deactivated"
}

List teams

  • Method: GET
  • URL: https://api.getaccept.com/v1/teams
  • Watch out for: Team IDs are required when assigning users to teams via the users endpoint.

Request example

GET /v1/teams
Authorization: Bearer <token>

Response example

{
  "teams": [
    {"id": "team001", "name": "Sales EMEA",
     "member_count": 12}
  ]
}

Get current authenticated user

  • Method: GET
  • URL: https://api.getaccept.com/v1/users/me
  • Watch out for: Useful for validating token scope and confirming the acting user identity.

Request example

GET /v1/users/me
Authorization: Bearer <token>

Response example

{
  "id": "abc123",
  "email": "admin@example.com",
  "role": "admin",
  "status": "active"
}

Rate limits, pagination, and events

  • Rate limits: GetAccept enforces rate limits on API requests; exact published limits are not fully documented publicly.
  • Rate-limit headers: Yes
  • Retry-After header: No
  • Rate-limit notes: Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining) are returned in responses. Specific numeric limits are not publicly documented; contact GetAccept support for Enterprise quotas.
  • Pagination method: offset
  • Default page size: 25
  • Max page size: 100
  • Pagination pointer: page / limit
Plan Limit Concurrent
Professional 0
Enterprise 0
  • Webhooks available: Yes
  • Webhook notes: GetAccept supports webhooks for document and deal lifecycle events. User-specific webhook events (e.g., user created/deactivated) are not explicitly documented in public references.
  • Alternative event strategy: Poll GET /v1/users on a schedule to detect user changes if user-lifecycle webhooks are not available.
  • Webhook events: document.sent, document.viewed, document.signed, document.completed, document.declined, deal.created, deal.updated

SCIM API status

  • SCIM available: Yes

  • SCIM version: 2.0

  • Plan required: Enterprise

  • Endpoint: https://api.getaccept.com/scim/v2

  • Supported operations: GET /Users, GET /Users/{id}, POST /Users, PUT /Users/{id}, PATCH /Users/{id}, DELETE /Users/{id}, GET /Groups, POST /Groups, PATCH /Groups/{id}, DELETE /Groups/{id}

Limitations:

  • Requires Enterprise plan
  • SSO (SAML) must be configured as a prerequisite before enabling SCIM
  • Supported IdPs: Okta, Microsoft Entra ID (Azure AD); Google Workspace and OneLogin not officially supported
  • SCIM token is generated from GetAccept admin settings and used as Bearer token in IdP SCIM configuration
  • Group sync maps to GetAccept Teams; team names must match exactly or be created in GetAccept first

Common scenarios

For IdP-driven provisioning, the SCIM 2. 0 path is the correct integration surface.

SAML SSO must be fully configured in GetAccept before SCIM can be enabled - activating SCIM without an active SSO configuration will fail. Supported IdPs are Okta and Microsoft Entra ID (Azure AD); Google Workspace and OneLogin are not officially supported.

Group sync maps to GetAccept Teams, and team names must match exactly or be pre-created in GetAccept before the IdP pushes group assignments.

For user auditing and identity graph reconciliation, the REST API is the appropriate path. Call GET /v1/users with limit=100, paginate until the returned count falls below the limit, and filter on status == 'active' to build a current roster. The user object surfaces id, email, role, status, team_id, created_at, and updated_at - sufficient to join against an external identity graph for cross-system access reviews. Note that created_at and updated_at are available, but a last-login timestamp is not exposed via the API, mirroring the gap in the admin UI.

For deprovisioning via REST, retrieve the user's id via GET /v1/users filtered by email, then call DELETE /v1/users/{id}. The DELETE operation may be a soft-delete (status set to inactive) rather than permanent removal - confirm data retention and license release behavior with GetAccept support before relying on this in an automated offboarding workflow. If using SCIM, deprovision at the IdP level; the IdP will push DELETE /Users/{id} to the SCIM endpoint automatically.

Provision a new employee via SCIM (Okta)

  1. Ensure Enterprise plan is active and SAML SSO is configured in GetAccept Settings > Security.
  2. In GetAccept admin, navigate to Settings > Integrations > SCIM and generate a SCIM Bearer token.
  3. In Okta, add the GetAccept SCIM app, set Base URL to https://api.getaccept.com/scim/v2, and paste the Bearer token.
  4. Assign the Okta user to the GetAccept app; Okta pushes a POST /Users to GetAccept SCIM endpoint.
  5. Verify the user appears in GetAccept with correct role and team assignment.

Watch out for: If the user's email already exists in GetAccept as an unmanaged account, SCIM may conflict. Pre-clean duplicate accounts before enabling SCIM.

Bulk-list and audit active users via REST API

  1. Obtain a Bearer token via POST /v1/oauth/token with client_credentials.
  2. Call GET /v1/users?page=1&limit=100 and collect results.
  3. Iterate pages (increment page param) until returned user count < limit.
  4. Filter results where status == 'active' for the active user roster.
  5. Cross-reference with HR system to identify accounts to deactivate.

Watch out for: Max page size is 100; large organizations must paginate fully. Token expiry mid-loop requires refresh handling.

Deactivate a departed employee

  1. Retrieve the user's GetAccept ID via GET /v1/users?email=departed@example.com or list endpoint.
  2. Call DELETE /v1/users/{id} with the user's ID.
  3. Confirm response returns success:true.
  4. If using SCIM, deprovision the user in the IdP; the IdP will send DELETE /Users/{id} to GetAccept automatically.

Watch out for: REST API DELETE may soft-deactivate rather than permanently remove the user. Documents owned by the user remain; reassign ownership before deactivation if needed.

Why building this yourself is a trap

The primary integration trap is conflating the REST API and SCIM API as interchangeable. Creating a user via POST /v1/users sends an invitation email automatically and does not integrate with IdP lifecycle management. If onboarding flow is controlled by an IdP, use SCIM exclusively for provisioning to avoid duplicate accounts and unmanaged invitation emails.

A second trap is assuming the DELETE endpoint performs hard deletion. The operation likely soft-deactivates the user record; documents owned by that user are retained and not reassigned.

Any automation that assumes license reclamation or data removal on DELETE must be validated against actual API behavior - the public documentation does not guarantee permanent deletion, and GDPR removal requests require contacting GetAccept support directly.

Role values are case-sensitive (admin, member in lowercase); incorrect casing will cause create or update operations to fail silently or return errors. User-lifecycle webhook events (user created, user deactivated) are not documented in public references - poll GET /v1/users on a schedule if real-time user-change detection is required and SCIM is not in use.

Automate GetAccept 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.

Every app coverage, including apps without APIs
60+ app integrations plus browser automation for apps without APIs
IT graph reconciliation across apps and your IdP
Less than a week to launch, maintained as APIs and admin consoles change
SOC 2 Type II. ~2 hours of your team's time

UpdatedMar 11, 2026

* Details sourced from official product documentation and admin references.

Keep exploring

Related apps

15Five logo

15Five

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

15Five uses a fixed role-based permission model with six predefined roles: Account Admin, HR Admin, Billing Admin, Group Admin, Manager, and Employee. No custom roles can be constructed. User management lives at Settings gear → People → Manage people p

1Password logo

1Password

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

1Password's admin console at my.1password.com covers the full user lifecycle — invitations, group assignments, vault access, suspension, and deletion — without any third-party tooling. Like every app that mixes role-based and resource-level permissions

8x8 logo

8x8

Full API + SCIM
AutomationAPI + SCIM
Last updatedFeb 2026

8x8 Admin Console supports full lifecycle user management — create, deactivate, and delete — across its X Series unified communications platform. Every app a user can access (8x8 Work desktop, mobile, web, Agent Workspace) is gated by license assignmen