Description
Use a HTTP POST request to create a OAuth2.0 credential.
Request
HTTP Method: POST
| Parameter | Description | 
|---|---|
| name | Name of the credential. | 
| mode | Describes the type of credential (OAUTH). | 
| oauth_url | Your app oauth url. Required for grant type authorization_code. | 
| oauth_token_url | Your app oauth token url | 
| oauth_client_id | The client ID for your app | 
| oauth_client_secret | The client secret for your app | 
| oauth_scope | Enter one or more scope values indicating which parts of the user’s account you wish to access. | 
| oauth_grant_type | Tines supports client_credentials and authorization_code grants. | 
| team_id | ID of Tines Team where the credential will be located. | 
| folder_id | Optional ID of folder to which the credential will be located | 
| read_access | Optional Control where this credential can be used (TEAM, GLOBAL). default: TEAM | 
| shared_team_slugs | Optional List of teams' slugs where this credential can be used. Required to set read_access to SPECIFIC_TEAMS. default: [] (empty array). | 
| description | Optional Description of the credential. default: "" (empty string). | 
| oauthPkceCodeChallengeMethod | Optional PKCE challenge method (S256, plain). default: NULL (None). | 
| metadata | Optional Key/value metadata relevant to the credential that can be referenced via the INFO path. | 
| allowed_hosts | Optional Array of domains where this credential can only be used in HTTP requests. Domain matching supports wildcards. | 
| live_credential_id | Optional ID of the live credential | 
Sample request
curl -X POST \
  https://<<META.tenant.domain>>/api/v1/user_credentials \
  -H 'content-type: application/json' \
  -H 'Authorization: Bearer <<CREDENTIAL.tines_api_key>>' \
  -d '{
        "name": "oauth credential",
        "mode": "OAUTH",
        "team_id": 2,
        "oauth_url": "https://example.com/auth",
        "oauth_token_url": "https://example.com/token",
        "oauth_client_id": "foo",
        "oauth_client_secret": "bar",
        "oauth_scope": "sync",
        "oauth_grant_type": "authorization_code"
    }'
Response
A successful request will return a JSON object containing a redirect_url to complete the registration process and a description of the created credential.
Field description
| Parameter | Description | 
|---|---|
| id | credential ID. | 
| name | Name of the credential. | 
| mode | Describes the type of credential (TEXT, JWT, OAUTH, AWS, MTLS, HTTP_REQUEST_AGENT, MULTI_REQUEST). | 
| team_id | ID of team to which the credential belongs. | 
| folder_id | ID of folder to which the credential belongs. | 
| read_access | Control where this credential can be used (TEAM, GLOBAL, SPECIFIC_TEAMS). default: TEAM. (SPECIFIC_TEAMS is a premium feature. Reach out to find out more.) | 
| shared_team_slugs | List of teams' slugs where this credential can be used. Required to set read_access to SPECIFIC_TEAMS. default: [] (empty array). | 
| description | Description of the credential. | 
| slug | An underscored representation of the credential name | 
| created_at | ISO 8601 Timestamp representing date and time the credential was created. | 
| updated_at | ISO 8601 Timestamp representing date and time the credential was last updated. | 
| allowed_hosts | Array of domains where this credential can only be used in HTTP requests | 
| metadata | Key/value metadata relevant to the credential | 
| redirect_url | Redirect URL of the created credential. | 
| restriction_type | The type of restriction applied to the use of the credential (RESTRICTED,RESTRICTED_TO_CREDENTIALS ,UNRESTRICTED ) | 
| test_credential_enabled | A boolean value stating if the credential is enabled for using a test credential | 
| test_credential | Data specific to the test credential (created_at and updated_at) | 
| owner | An object representing the user who owns this credential. By default, the owner is the user who created the credential. | 
Sample response
{
  "redirect_url": "",
  "id": 1,
  "name": "tines_api_credential",
  "mode": "OAUTH",
  "team_id": 2,
  "folder_id": 1,
  "read_access": "TEAM",
  "shared_team_slugs": [],
  "slug": "tines_api_credential",
  "created_at": "2021-03-26T12:34:16.540Z",
  "updated_at": "2021-03-26T12:34:16.540Z",
  "description": "",
  "allowed_hosts": [],
  "metadata": {},
  "restriction_type": "UNRESTRICTED",
  "test_credential_enabled": false,
  "owner": {
    "user_id": 1,
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@tines.io"
  }
}