API configuration (`providers.yaml`)
API configurations are listed in the providers.yaml file, located in the Tenklo GitHub repository.
Examples
hubspot:
display_name: HubSpot
categories:
- marketing
- support
- crm
auth_mode: OAUTH2
authorization_url: https://app.hubspot.com/oauth/authorize
token_url: https://api.hubapi.com/oauth/v1/token
connection_configuration:
- portalId
post_connection_script: hubspotPostConnection
webhook_routing_script: hubspotWebhookRouting
proxy:
base_url: https://api.hubapi.com
decompress: true
paginate:
type: cursor
cursor_path_in_response: paging.next.after
limit_name_in_request: limit
cursor_name_in_request: after
response_path: results
docs: https://docs.tenklo.dev/api-integrations/hubspotAll configuration fields
aliasstringAllows to extend the configuration of another API.
display_namestringrequiredThe display name of the provider, used in the UI.
auth_modestringThe authentication mode. Must be one of: "API_KEY", "APP", "APP_STORE", "BASIC", "NONE", "OAUTH1", "OAUTH2", "OAUTH2_CC", "CUSTOM", "TBA", "JWT", "BILL", "TWO_STEP", "SIGNATURE".
authobjectAuthentication configuration.
authorization_methodstringThe authorization method. Must be header
authorization_paramsobjectQuery parameters of the authorization request.
authorization_urlstringThe URL to get the OAuth 2 credentials from the external API.
authorization_url_encodedbooleanShould the authorization_url be encoded or not
authorization_url_replacementsobjectAn object containing key-value pairs for replacements in the authorization URL.
body_formatstringThe format of the request body. e.g: json
categoriesarrayAn array of strings representing the categories of the API.
connection_configurationarrayAn array of strings representing the connectionConfig that are automatically populated by post-connection functions.
decode_urlbooleanWhether to decode the URL or not.
default_scopesarrayThe minimum list of scopes that are necessary to connect to the API.
disable_pkcebooleanDisables the PKCE extension to the Authorization Code flow.
docsstringThe URL to the developer API documentation.
docs_connectstringThe URL to the end user documentation (e.g: how to connect).
post_connection_scriptstringThe name of the script to run after a connection is established.
proxyobjectProxy configuration for the API.
redirect_uri_metadataarrayThe metadata to capture from the callback request.
refresh_urlstringThe URL used for refreshing the access token. Defaults to the token_url
refresh_paramsobjectParameters used for refreshing the access token.
request_paramsobjectAn object containing request parameters to pass to an authorization request.
request_urlstringThe URL for making API an authorization request.
scope_separatorstringThe separator used between scopes in the authorization request.
Defaults to space, but some APIs sur , or +.
signature_methodstringThe signature method used for OAuth 1.0. Must be either "HMAC-SHA1" or "PLAINTEXT".
token_expiration_buffernumberA buffer time (in seconds) before the token expiration to trigger a refresh.
token_paramsobjectParameters used for obtaining the access token.
token_request_auth_methodstringThe authentication method used for token requests. Must be either "basic" or "custom".
expires_in_unitstringThe unit of time for token expiration. Must be "milliseconds".
token_response_metadataarrayAn array of strings representing metadata from the token response that will be saved in connection.metadata.
token_urlstringThe URL to get the OAuth 2 credentials from the external API.
token_url_encodedbooleanShould the token_url be encoded or not
webhook_user_defined_secretbooleanWether the webhook secret is set by the user.
webhook_routing_scriptarraySpecifies a script to handle external webhooks.
authorization_url_fragmentstringSpecifies a fragment to be appended to the authorization URL, typically used to modify the redirection flow or pass additional information in the URL before the query parameters.
connection_configobjectThe list of properties available in ${connectionConfig} and their validation.
credentialsobjectThe list of credentials and their validation, only filed if necessary (e.g: API_KEY, BASIC)
Questions, problems, feedback? Please reach out in the Slack community.