Authentication
The Give Interactive REST API uses OAuth2 client credentials. Obtain an access token first, then send it with every subsequent API call.
Obtaining credentials
Contact your account representative to request a Client ID and Client Secret. Each environment (sandbox and production) has its own credentials.
Additional credentials can be requested for a given environment. This enables better tracking of which integration made a change, but does not affect permissions at this time. Provide a user's contact information so the credentials can be associated with them.
Requesting an access token
-
Sandbox:
https://api-sandbox.giveinteractive.com/oauth/token -
Production:
https://api.giveinteractive.com/oauth/token
Send a POST request with:
-
Query parameter
grant_typeset toclient_credentials -
Body (
application/x-www-form-urlencoded) containingclient_idandclient_secret
A successful response includes an access_token, token_type, and expires_in (seconds). Send the access_token with subsequent API calls.
Note: Currently the access token is an opaque string, but this may be replaced with a JWT in the future.
Using the access_token
All subsequent calls will need to provide an Authorization header with the access_token.
Permissions
Currently, all calls to the REST API run under a system-level account with unlimited permissions. Additional issued credentials (see above) do not currently change what a request is permitted to do.
Authorization failures
Permission checks (for routes that use them) can respond with:
-
401
{ "message": "Unauthorized" }— noclient_id/client_secretwas provided, or theclient_iddoes not match. -
403
{ "message": "You don't have sufficient privileges." }— the caller lacks the required permission.
Token lifetime
The access-token response includes expires_in (seconds). The default expiration is two hours. Once a token expires, obtain a new one from /oauth/token.