POST
/
tool
curl --request POST \
  --url https://api.isosceles.ai/tool \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "serper",
  "provider": "serper",
  "enabled": true,
  "api_key": "48a48f7c93dab4213a803c8206d6f9aca8c4d3eb"
}'
{
  "enabled": true,
  "expires_at": null,
  "external_user_id": null,
  "id": "<string>",
  "name": "<string>",
  "provider": "<string>",
  "scopes": null,
  "user_id": "<string>"
}

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json
name
string
required

The name of the tool

Minimum length: 1
provider
enum<string>
required

The provider type for this tool

Available options:
GITHUB,
GITLAB,
JIRA
enabled
boolean
default:true

Whether the tool is enabled

account_type
enum<string>
default:OAUTH2

The type of account authentication

Available options:
OAUTH2,
API_KEY
access_token
string | null

OAuth2 access token

refresh_token
string | null

OAuth2 refresh token

scopes
string[] | null

List of OAuth2 scopes

external_user_id
string | null

External user ID from the provider

expires_at
string | null

When the access token expires

oauth2_metadata
object

Additional OAuth2 metadata

api_key
string | null

API key for the tool

Response

200 - application/json
enabled
boolean
required

Whether the tools is enabled

id
string
required

UUID of the tool

name
string
required

Name of the tool

provider
string
required

Name of the API provider

user_id
string
required

UUID of the logged in user

expires_at
null

The expiry date of the token

external_user_id
null

Reference to the user id stored in their account

scopes
null

Scopes for Oauth2 objects