Create a new auth link session
curl --request POST \
--url https://flowra.dev/api/v1/connected_accounts/link \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"authConfigId": "auth_config_123",
"callbackUrl": "https://myapp.com/callback",
"connectionData": {
"cookies": "<string>",
"localStorage": {},
"localStorageHeaderBindings": [
{
"headerName": "Authorization",
"localStorageKey": "token",
"headerValue": "Bearer …"
}
],
"access_token": "ya29.a0AfH6SMC...",
"account_id": "<string>",
"accountId": "<string>",
"profileId": "<string>",
"platform": "<string>",
"account_url": "<string>",
"api_key": "<string>",
"api_url": "<string>",
"application_id": "<string>",
"authed_user": {
"access_token": "ya29.a0AfH6SMC...",
"scope": "read,write"
},
"authUri": "<string>",
"base_url": "<string>",
"basic_encoded": "<string>",
"bearer_token": "<string>",
"borneo_dashboard_url": "<string>",
"callbackUrl": "<string>",
"callback_url": "<string>",
"client_id": "<string>",
"COMPANYDOMAIN": "<string>",
"composio_link_redirect_url": "<string>",
"consumer_key": "<string>",
"code_verifier": "<string>",
"credentials_json": "<string>",
"dc": "<string>",
"dev_key": "<string>",
"domain": "<string>",
"error": "<string>",
"error_description": "<string>",
"expired_at": "<string>",
"expires_in": 3600,
"extension": "<string>",
"final_redirect_uri": "<string>",
"form_api_base_url": "<string>",
"generic_api_key": "<string>",
"id_token": "<string>",
"instanceEndpoint": "<string>",
"instanceName": "<string>",
"installation_id": "<string>",
"long_redirect_url": true,
"oauth_token": "<string>",
"oauth_token_secret": "<string>",
"oauth_verifier": "<string>",
"password": "<string>",
"private_key": "<string>",
"proxy_password": "<string>",
"proxy_username": "<string>",
"redirectUrl": "<string>",
"refresh_token": "<string>",
"registration_access_token": "<string>",
"registration_client_uri": "<string>",
"region": "<string>",
"scope": [
"read",
"write"
],
"server_location": "<string>",
"shop": "<string>",
"site_name": "<string>",
"status": "INITIATED",
"state_prefix": "<string>",
"subdomain": "<string>",
"token": "<string>",
"token_type": "<string>",
"username": "<string>",
"version": "<string>",
"webhook_signature": "<string>",
"your-domain": "<string>",
"your_server": "<string>"
}
}
'import requests
url = "https://flowra.dev/api/v1/connected_accounts/link"
payload = {
"authConfigId": "auth_config_123",
"callbackUrl": "https://myapp.com/callback",
"connectionData": {
"cookies": "<string>",
"localStorage": {},
"localStorageHeaderBindings": [
{
"headerName": "Authorization",
"localStorageKey": "token",
"headerValue": "Bearer …"
}
],
"access_token": "ya29.a0AfH6SMC...",
"account_id": "<string>",
"accountId": "<string>",
"profileId": "<string>",
"platform": "<string>",
"account_url": "<string>",
"api_key": "<string>",
"api_url": "<string>",
"application_id": "<string>",
"authed_user": {
"access_token": "ya29.a0AfH6SMC...",
"scope": "read,write"
},
"authUri": "<string>",
"base_url": "<string>",
"basic_encoded": "<string>",
"bearer_token": "<string>",
"borneo_dashboard_url": "<string>",
"callbackUrl": "<string>",
"callback_url": "<string>",
"client_id": "<string>",
"COMPANYDOMAIN": "<string>",
"composio_link_redirect_url": "<string>",
"consumer_key": "<string>",
"code_verifier": "<string>",
"credentials_json": "<string>",
"dc": "<string>",
"dev_key": "<string>",
"domain": "<string>",
"error": "<string>",
"error_description": "<string>",
"expired_at": "<string>",
"expires_in": 3600,
"extension": "<string>",
"final_redirect_uri": "<string>",
"form_api_base_url": "<string>",
"generic_api_key": "<string>",
"id_token": "<string>",
"instanceEndpoint": "<string>",
"instanceName": "<string>",
"installation_id": "<string>",
"long_redirect_url": True,
"oauth_token": "<string>",
"oauth_token_secret": "<string>",
"oauth_verifier": "<string>",
"password": "<string>",
"private_key": "<string>",
"proxy_password": "<string>",
"proxy_username": "<string>",
"redirectUrl": "<string>",
"refresh_token": "<string>",
"registration_access_token": "<string>",
"registration_client_uri": "<string>",
"region": "<string>",
"scope": ["read", "write"],
"server_location": "<string>",
"shop": "<string>",
"site_name": "<string>",
"status": "INITIATED",
"state_prefix": "<string>",
"subdomain": "<string>",
"token": "<string>",
"token_type": "<string>",
"username": "<string>",
"version": "<string>",
"webhook_signature": "<string>",
"your-domain": "<string>",
"your_server": "<string>"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
authConfigId: 'auth_config_123',
callbackUrl: 'https://myapp.com/callback',
connectionData: {
cookies: '<string>',
localStorage: {},
localStorageHeaderBindings: [
{headerName: 'Authorization', localStorageKey: 'token', headerValue: 'Bearer …'}
],
access_token: 'ya29.a0AfH6SMC...',
account_id: '<string>',
accountId: '<string>',
profileId: '<string>',
platform: '<string>',
account_url: '<string>',
api_key: '<string>',
api_url: '<string>',
application_id: '<string>',
authed_user: {access_token: 'ya29.a0AfH6SMC...', scope: 'read,write'},
authUri: '<string>',
base_url: '<string>',
basic_encoded: '<string>',
bearer_token: '<string>',
borneo_dashboard_url: '<string>',
callbackUrl: '<string>',
callback_url: '<string>',
client_id: '<string>',
COMPANYDOMAIN: '<string>',
composio_link_redirect_url: '<string>',
consumer_key: '<string>',
code_verifier: '<string>',
credentials_json: '<string>',
dc: '<string>',
dev_key: '<string>',
domain: '<string>',
error: '<string>',
error_description: '<string>',
expired_at: '<string>',
expires_in: 3600,
extension: '<string>',
final_redirect_uri: '<string>',
form_api_base_url: '<string>',
generic_api_key: '<string>',
id_token: '<string>',
instanceEndpoint: '<string>',
instanceName: '<string>',
installation_id: '<string>',
long_redirect_url: true,
oauth_token: '<string>',
oauth_token_secret: '<string>',
oauth_verifier: '<string>',
password: '<string>',
private_key: '<string>',
proxy_password: '<string>',
proxy_username: '<string>',
redirectUrl: '<string>',
refresh_token: '<string>',
registration_access_token: '<string>',
registration_client_uri: '<string>',
region: '<string>',
scope: ['read', 'write'],
server_location: '<string>',
shop: '<string>',
site_name: '<string>',
status: 'INITIATED',
state_prefix: '<string>',
subdomain: '<string>',
token: '<string>',
token_type: '<string>',
username: '<string>',
version: '<string>',
webhook_signature: '<string>',
'your-domain': '<string>',
your_server: '<string>'
}
})
};
fetch('https://flowra.dev/api/v1/connected_accounts/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowra.dev/api/v1/connected_accounts/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'authConfigId' => 'auth_config_123',
'callbackUrl' => 'https://myapp.com/callback',
'connectionData' => [
'cookies' => '<string>',
'localStorage' => [
],
'localStorageHeaderBindings' => [
[
'headerName' => 'Authorization',
'localStorageKey' => 'token',
'headerValue' => 'Bearer …'
]
],
'access_token' => 'ya29.a0AfH6SMC...',
'account_id' => '<string>',
'accountId' => '<string>',
'profileId' => '<string>',
'platform' => '<string>',
'account_url' => '<string>',
'api_key' => '<string>',
'api_url' => '<string>',
'application_id' => '<string>',
'authed_user' => [
'access_token' => 'ya29.a0AfH6SMC...',
'scope' => 'read,write'
],
'authUri' => '<string>',
'base_url' => '<string>',
'basic_encoded' => '<string>',
'bearer_token' => '<string>',
'borneo_dashboard_url' => '<string>',
'callbackUrl' => '<string>',
'callback_url' => '<string>',
'client_id' => '<string>',
'COMPANYDOMAIN' => '<string>',
'composio_link_redirect_url' => '<string>',
'consumer_key' => '<string>',
'code_verifier' => '<string>',
'credentials_json' => '<string>',
'dc' => '<string>',
'dev_key' => '<string>',
'domain' => '<string>',
'error' => '<string>',
'error_description' => '<string>',
'expired_at' => '<string>',
'expires_in' => 3600,
'extension' => '<string>',
'final_redirect_uri' => '<string>',
'form_api_base_url' => '<string>',
'generic_api_key' => '<string>',
'id_token' => '<string>',
'instanceEndpoint' => '<string>',
'instanceName' => '<string>',
'installation_id' => '<string>',
'long_redirect_url' => true,
'oauth_token' => '<string>',
'oauth_token_secret' => '<string>',
'oauth_verifier' => '<string>',
'password' => '<string>',
'private_key' => '<string>',
'proxy_password' => '<string>',
'proxy_username' => '<string>',
'redirectUrl' => '<string>',
'refresh_token' => '<string>',
'registration_access_token' => '<string>',
'registration_client_uri' => '<string>',
'region' => '<string>',
'scope' => [
'read',
'write'
],
'server_location' => '<string>',
'shop' => '<string>',
'site_name' => '<string>',
'status' => 'INITIATED',
'state_prefix' => '<string>',
'subdomain' => '<string>',
'token' => '<string>',
'token_type' => '<string>',
'username' => '<string>',
'version' => '<string>',
'webhook_signature' => '<string>',
'your-domain' => '<string>',
'your_server' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://flowra.dev/api/v1/connected_accounts/link"
payload := strings.NewReader("{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://flowra.dev/api/v1/connected_accounts/link")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/connected_accounts/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed successfully",
"data": {
"linkToken": "link_token_123456789",
"redirectUrl": "https://auth.composio.dev/oauth/authorize?client_id=123&redirectUri=https://myapp.com/callback",
"expiresAt": "2024-12-31T23:59:59Z",
"connectedAccountId": "con_123456789"
}
}Connected Accounts
Create a new auth link session
Generates a one-time URL to start the OAuth flow. Send your end users to this URL so they can sign in with the provider (e.g. Google, Slack) and connect their account to your project. After they complete the flow, the account appears in the connected accounts list.
POST
/
api
/
v1
/
connected_accounts
/
link
Create a new auth link session
curl --request POST \
--url https://flowra.dev/api/v1/connected_accounts/link \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"authConfigId": "auth_config_123",
"callbackUrl": "https://myapp.com/callback",
"connectionData": {
"cookies": "<string>",
"localStorage": {},
"localStorageHeaderBindings": [
{
"headerName": "Authorization",
"localStorageKey": "token",
"headerValue": "Bearer …"
}
],
"access_token": "ya29.a0AfH6SMC...",
"account_id": "<string>",
"accountId": "<string>",
"profileId": "<string>",
"platform": "<string>",
"account_url": "<string>",
"api_key": "<string>",
"api_url": "<string>",
"application_id": "<string>",
"authed_user": {
"access_token": "ya29.a0AfH6SMC...",
"scope": "read,write"
},
"authUri": "<string>",
"base_url": "<string>",
"basic_encoded": "<string>",
"bearer_token": "<string>",
"borneo_dashboard_url": "<string>",
"callbackUrl": "<string>",
"callback_url": "<string>",
"client_id": "<string>",
"COMPANYDOMAIN": "<string>",
"composio_link_redirect_url": "<string>",
"consumer_key": "<string>",
"code_verifier": "<string>",
"credentials_json": "<string>",
"dc": "<string>",
"dev_key": "<string>",
"domain": "<string>",
"error": "<string>",
"error_description": "<string>",
"expired_at": "<string>",
"expires_in": 3600,
"extension": "<string>",
"final_redirect_uri": "<string>",
"form_api_base_url": "<string>",
"generic_api_key": "<string>",
"id_token": "<string>",
"instanceEndpoint": "<string>",
"instanceName": "<string>",
"installation_id": "<string>",
"long_redirect_url": true,
"oauth_token": "<string>",
"oauth_token_secret": "<string>",
"oauth_verifier": "<string>",
"password": "<string>",
"private_key": "<string>",
"proxy_password": "<string>",
"proxy_username": "<string>",
"redirectUrl": "<string>",
"refresh_token": "<string>",
"registration_access_token": "<string>",
"registration_client_uri": "<string>",
"region": "<string>",
"scope": [
"read",
"write"
],
"server_location": "<string>",
"shop": "<string>",
"site_name": "<string>",
"status": "INITIATED",
"state_prefix": "<string>",
"subdomain": "<string>",
"token": "<string>",
"token_type": "<string>",
"username": "<string>",
"version": "<string>",
"webhook_signature": "<string>",
"your-domain": "<string>",
"your_server": "<string>"
}
}
'import requests
url = "https://flowra.dev/api/v1/connected_accounts/link"
payload = {
"authConfigId": "auth_config_123",
"callbackUrl": "https://myapp.com/callback",
"connectionData": {
"cookies": "<string>",
"localStorage": {},
"localStorageHeaderBindings": [
{
"headerName": "Authorization",
"localStorageKey": "token",
"headerValue": "Bearer …"
}
],
"access_token": "ya29.a0AfH6SMC...",
"account_id": "<string>",
"accountId": "<string>",
"profileId": "<string>",
"platform": "<string>",
"account_url": "<string>",
"api_key": "<string>",
"api_url": "<string>",
"application_id": "<string>",
"authed_user": {
"access_token": "ya29.a0AfH6SMC...",
"scope": "read,write"
},
"authUri": "<string>",
"base_url": "<string>",
"basic_encoded": "<string>",
"bearer_token": "<string>",
"borneo_dashboard_url": "<string>",
"callbackUrl": "<string>",
"callback_url": "<string>",
"client_id": "<string>",
"COMPANYDOMAIN": "<string>",
"composio_link_redirect_url": "<string>",
"consumer_key": "<string>",
"code_verifier": "<string>",
"credentials_json": "<string>",
"dc": "<string>",
"dev_key": "<string>",
"domain": "<string>",
"error": "<string>",
"error_description": "<string>",
"expired_at": "<string>",
"expires_in": 3600,
"extension": "<string>",
"final_redirect_uri": "<string>",
"form_api_base_url": "<string>",
"generic_api_key": "<string>",
"id_token": "<string>",
"instanceEndpoint": "<string>",
"instanceName": "<string>",
"installation_id": "<string>",
"long_redirect_url": True,
"oauth_token": "<string>",
"oauth_token_secret": "<string>",
"oauth_verifier": "<string>",
"password": "<string>",
"private_key": "<string>",
"proxy_password": "<string>",
"proxy_username": "<string>",
"redirectUrl": "<string>",
"refresh_token": "<string>",
"registration_access_token": "<string>",
"registration_client_uri": "<string>",
"region": "<string>",
"scope": ["read", "write"],
"server_location": "<string>",
"shop": "<string>",
"site_name": "<string>",
"status": "INITIATED",
"state_prefix": "<string>",
"subdomain": "<string>",
"token": "<string>",
"token_type": "<string>",
"username": "<string>",
"version": "<string>",
"webhook_signature": "<string>",
"your-domain": "<string>",
"your_server": "<string>"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
authConfigId: 'auth_config_123',
callbackUrl: 'https://myapp.com/callback',
connectionData: {
cookies: '<string>',
localStorage: {},
localStorageHeaderBindings: [
{headerName: 'Authorization', localStorageKey: 'token', headerValue: 'Bearer …'}
],
access_token: 'ya29.a0AfH6SMC...',
account_id: '<string>',
accountId: '<string>',
profileId: '<string>',
platform: '<string>',
account_url: '<string>',
api_key: '<string>',
api_url: '<string>',
application_id: '<string>',
authed_user: {access_token: 'ya29.a0AfH6SMC...', scope: 'read,write'},
authUri: '<string>',
base_url: '<string>',
basic_encoded: '<string>',
bearer_token: '<string>',
borneo_dashboard_url: '<string>',
callbackUrl: '<string>',
callback_url: '<string>',
client_id: '<string>',
COMPANYDOMAIN: '<string>',
composio_link_redirect_url: '<string>',
consumer_key: '<string>',
code_verifier: '<string>',
credentials_json: '<string>',
dc: '<string>',
dev_key: '<string>',
domain: '<string>',
error: '<string>',
error_description: '<string>',
expired_at: '<string>',
expires_in: 3600,
extension: '<string>',
final_redirect_uri: '<string>',
form_api_base_url: '<string>',
generic_api_key: '<string>',
id_token: '<string>',
instanceEndpoint: '<string>',
instanceName: '<string>',
installation_id: '<string>',
long_redirect_url: true,
oauth_token: '<string>',
oauth_token_secret: '<string>',
oauth_verifier: '<string>',
password: '<string>',
private_key: '<string>',
proxy_password: '<string>',
proxy_username: '<string>',
redirectUrl: '<string>',
refresh_token: '<string>',
registration_access_token: '<string>',
registration_client_uri: '<string>',
region: '<string>',
scope: ['read', 'write'],
server_location: '<string>',
shop: '<string>',
site_name: '<string>',
status: 'INITIATED',
state_prefix: '<string>',
subdomain: '<string>',
token: '<string>',
token_type: '<string>',
username: '<string>',
version: '<string>',
webhook_signature: '<string>',
'your-domain': '<string>',
your_server: '<string>'
}
})
};
fetch('https://flowra.dev/api/v1/connected_accounts/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://flowra.dev/api/v1/connected_accounts/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'authConfigId' => 'auth_config_123',
'callbackUrl' => 'https://myapp.com/callback',
'connectionData' => [
'cookies' => '<string>',
'localStorage' => [
],
'localStorageHeaderBindings' => [
[
'headerName' => 'Authorization',
'localStorageKey' => 'token',
'headerValue' => 'Bearer …'
]
],
'access_token' => 'ya29.a0AfH6SMC...',
'account_id' => '<string>',
'accountId' => '<string>',
'profileId' => '<string>',
'platform' => '<string>',
'account_url' => '<string>',
'api_key' => '<string>',
'api_url' => '<string>',
'application_id' => '<string>',
'authed_user' => [
'access_token' => 'ya29.a0AfH6SMC...',
'scope' => 'read,write'
],
'authUri' => '<string>',
'base_url' => '<string>',
'basic_encoded' => '<string>',
'bearer_token' => '<string>',
'borneo_dashboard_url' => '<string>',
'callbackUrl' => '<string>',
'callback_url' => '<string>',
'client_id' => '<string>',
'COMPANYDOMAIN' => '<string>',
'composio_link_redirect_url' => '<string>',
'consumer_key' => '<string>',
'code_verifier' => '<string>',
'credentials_json' => '<string>',
'dc' => '<string>',
'dev_key' => '<string>',
'domain' => '<string>',
'error' => '<string>',
'error_description' => '<string>',
'expired_at' => '<string>',
'expires_in' => 3600,
'extension' => '<string>',
'final_redirect_uri' => '<string>',
'form_api_base_url' => '<string>',
'generic_api_key' => '<string>',
'id_token' => '<string>',
'instanceEndpoint' => '<string>',
'instanceName' => '<string>',
'installation_id' => '<string>',
'long_redirect_url' => true,
'oauth_token' => '<string>',
'oauth_token_secret' => '<string>',
'oauth_verifier' => '<string>',
'password' => '<string>',
'private_key' => '<string>',
'proxy_password' => '<string>',
'proxy_username' => '<string>',
'redirectUrl' => '<string>',
'refresh_token' => '<string>',
'registration_access_token' => '<string>',
'registration_client_uri' => '<string>',
'region' => '<string>',
'scope' => [
'read',
'write'
],
'server_location' => '<string>',
'shop' => '<string>',
'site_name' => '<string>',
'status' => 'INITIATED',
'state_prefix' => '<string>',
'subdomain' => '<string>',
'token' => '<string>',
'token_type' => '<string>',
'username' => '<string>',
'version' => '<string>',
'webhook_signature' => '<string>',
'your-domain' => '<string>',
'your_server' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://flowra.dev/api/v1/connected_accounts/link"
payload := strings.NewReader("{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://flowra.dev/api/v1/connected_accounts/link")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flowra.dev/api/v1/connected_accounts/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"authConfigId\": \"auth_config_123\",\n \"callbackUrl\": \"https://myapp.com/callback\",\n \"connectionData\": {\n \"cookies\": \"<string>\",\n \"localStorage\": {},\n \"localStorageHeaderBindings\": [\n {\n \"headerName\": \"Authorization\",\n \"localStorageKey\": \"token\",\n \"headerValue\": \"Bearer …\"\n }\n ],\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"account_id\": \"<string>\",\n \"accountId\": \"<string>\",\n \"profileId\": \"<string>\",\n \"platform\": \"<string>\",\n \"account_url\": \"<string>\",\n \"api_key\": \"<string>\",\n \"api_url\": \"<string>\",\n \"application_id\": \"<string>\",\n \"authed_user\": {\n \"access_token\": \"ya29.a0AfH6SMC...\",\n \"scope\": \"read,write\"\n },\n \"authUri\": \"<string>\",\n \"base_url\": \"<string>\",\n \"basic_encoded\": \"<string>\",\n \"bearer_token\": \"<string>\",\n \"borneo_dashboard_url\": \"<string>\",\n \"callbackUrl\": \"<string>\",\n \"callback_url\": \"<string>\",\n \"client_id\": \"<string>\",\n \"COMPANYDOMAIN\": \"<string>\",\n \"composio_link_redirect_url\": \"<string>\",\n \"consumer_key\": \"<string>\",\n \"code_verifier\": \"<string>\",\n \"credentials_json\": \"<string>\",\n \"dc\": \"<string>\",\n \"dev_key\": \"<string>\",\n \"domain\": \"<string>\",\n \"error\": \"<string>\",\n \"error_description\": \"<string>\",\n \"expired_at\": \"<string>\",\n \"expires_in\": 3600,\n \"extension\": \"<string>\",\n \"final_redirect_uri\": \"<string>\",\n \"form_api_base_url\": \"<string>\",\n \"generic_api_key\": \"<string>\",\n \"id_token\": \"<string>\",\n \"instanceEndpoint\": \"<string>\",\n \"instanceName\": \"<string>\",\n \"installation_id\": \"<string>\",\n \"long_redirect_url\": true,\n \"oauth_token\": \"<string>\",\n \"oauth_token_secret\": \"<string>\",\n \"oauth_verifier\": \"<string>\",\n \"password\": \"<string>\",\n \"private_key\": \"<string>\",\n \"proxy_password\": \"<string>\",\n \"proxy_username\": \"<string>\",\n \"redirectUrl\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"registration_access_token\": \"<string>\",\n \"registration_client_uri\": \"<string>\",\n \"region\": \"<string>\",\n \"scope\": [\n \"read\",\n \"write\"\n ],\n \"server_location\": \"<string>\",\n \"shop\": \"<string>\",\n \"site_name\": \"<string>\",\n \"status\": \"INITIATED\",\n \"state_prefix\": \"<string>\",\n \"subdomain\": \"<string>\",\n \"token\": \"<string>\",\n \"token_type\": \"<string>\",\n \"username\": \"<string>\",\n \"version\": \"<string>\",\n \"webhook_signature\": \"<string>\",\n \"your-domain\": \"<string>\",\n \"your_server\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Operation completed successfully",
"data": {
"linkToken": "link_token_123456789",
"redirectUrl": "https://auth.composio.dev/oauth/authorize?client_id=123&redirectUri=https://myapp.com/callback",
"expiresAt": "2024-12-31T23:59:59Z",
"connectedAccountId": "con_123456789"
}
}Authorizations
x-api-keyx-api-key & x-username
Project API key. Create and manage keys in the dashboard under Project → API Keys. Send as header: x-api-key:
Headers
External user (end user) to act as. Optional — if omitted, Flowra uses the project’s default external user. Send a stable username (e.g. customer_alice) only when you need another end-user context.
Body
application/json
Connected account link creation data
Response
201 - application/json
Successfully created auth link
Success status
Example:
true
Success message
Example:
"Operation completed successfully"
Show child attributes
Show child attributes
Example:
{
"linkToken": "link_token_123456789",
"redirectUrl": "https://auth.composio.dev/oauth/authorize?client_id=123&redirectUri=https://myapp.com/callback",
"expiresAt": "2024-12-31T23:59:59Z",
"connectedAccountId": "con_123456789"
}
Was this page helpful?