curl --request POST \
--url https://api.mycreditapp.ai/v1-beta/host-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Requester-Organization-ID: <requester-organization-id>' \
--header 'Target-Organization-ID: <target-organization-id>' \
--data '
{
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"invitation_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
'import requests
url = "https://api.mycreditapp.ai/v1-beta/host-connections"
payload = {
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"invitation_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
headers = {
"Requester-Organization-ID": "<requester-organization-id>",
"Target-Organization-ID": "<target-organization-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Requester-Organization-ID': '<requester-organization-id>',
'Target-Organization-ID': '<target-organization-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
host_organization_id: 'd49b0749-fbc7-4e0a-b03d-ef15f238071a',
invitation_token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
})
};
fetch('https://api.mycreditapp.ai/v1-beta/host-connections', 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://api.mycreditapp.ai/v1-beta/host-connections",
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([
'host_organization_id' => 'd49b0749-fbc7-4e0a-b03d-ef15f238071a',
'invitation_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Requester-Organization-ID: <requester-organization-id>",
"Target-Organization-ID: <target-organization-id>"
],
]);
$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://api.mycreditapp.ai/v1-beta/host-connections"
payload := strings.NewReader("{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Requester-Organization-ID", "<requester-organization-id>")
req.Header.Add("Target-Organization-ID", "<target-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
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://api.mycreditapp.ai/v1-beta/host-connections")
.header("Requester-Organization-ID", "<requester-organization-id>")
.header("Target-Organization-ID", "<target-organization-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mycreditapp.ai/v1-beta/host-connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Requester-Organization-ID"] = '<requester-organization-id>'
request["Target-Organization-ID"] = '<target-organization-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}"
response = http.request(request)
puts response.read_body{
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"guest_organization_id": "78b348b8-009c-4b87-af32-60a12fbc6e60",
"host_name": "Example Host Corp",
"host_email": "hostcorp@example.com",
"owner_email": "owner@example.com",
"status": "connected",
"archived": true,
"created_at": "2025-12-12T12:00:00.123456",
"updated_at": "2025-12-12T12:00:00.123456",
"archived_at": "2025-12-12T12:00:00.123456",
"active_action_type": "analytics_request",
"active_action_updated_at": "2025-12-12T12:00:00.123456"
}{
"detail": [
{
"loc": [],
"msg": "Invalid invitation token!",
"type": "request",
"code": "invalid_invitation_token"
},
{
"loc": [],
"msg": "Invitation token has expired!",
"type": "request",
"code": "invitation_token_expired"
},
{
"loc": [],
"msg": "Unsupported CRUD operation!",
"type": "request",
"code": "unsupported_crud_operation"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Token is required!",
"type": "token",
"code": "token_required"
},
{
"loc": [],
"msg": "The token has expired!",
"type": "token",
"code": "token_expired"
},
{
"loc": [],
"msg": "Invalid token!",
"type": "token",
"code": "invalid_token"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Self connections are not allowed!",
"type": "request",
"code": "self_connection_not_allowed"
},
{
"loc": [],
"msg": "Access denied!",
"type": "request",
"code": "access_denied"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Account not found!",
"type": "request",
"code": "account_not_found"
},
{
"loc": [],
"msg": "Host organization not found!",
"type": "request",
"code": "host_organization_not_found"
},
{
"loc": [],
"msg": "Organization not found!",
"type": "request",
"code": "organization_not_found"
},
{
"loc": [],
"msg": "Guest invitation not found!",
"type": "request",
"code": "guest_invitation_not_found"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Host connection already exists!",
"type": "request",
"code": "host_connection_already_exists"
},
{
"loc": [],
"msg": "The account is in the process of being deleted! The Account's email can only be reused after its data has been completely deleted. The removal process may take up to 24 hours.",
"type": "request",
"code": "account_being_deleted"
},
{
"loc": [],
"msg": "The organization is in the process of being deleted! The removal process may take up to 24 hours.",
"type": "request",
"code": "organization_being_deleted"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The request is too large!",
"type": "request",
"code": "request_too_large"
}
]
}{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string",
"code": "validation_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Error processing request, please try later!",
"type": "try_later",
"code": "internal_conflict_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Service is under maintenance, please try later!",
"type": "maintanance",
"code": "service_under_maintenance"
}
]
}Create host connection
Create a new host connection using an optional invitation token and host organization ID.
Authorization scenarios
| Guest | Host | Self |
|---|---|---|
| ❌ | ❌ | ✅ |
curl --request POST \
--url https://api.mycreditapp.ai/v1-beta/host-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Requester-Organization-ID: <requester-organization-id>' \
--header 'Target-Organization-ID: <target-organization-id>' \
--data '
{
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"invitation_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
'import requests
url = "https://api.mycreditapp.ai/v1-beta/host-connections"
payload = {
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"invitation_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
headers = {
"Requester-Organization-ID": "<requester-organization-id>",
"Target-Organization-ID": "<target-organization-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Requester-Organization-ID': '<requester-organization-id>',
'Target-Organization-ID': '<target-organization-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
host_organization_id: 'd49b0749-fbc7-4e0a-b03d-ef15f238071a',
invitation_token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
})
};
fetch('https://api.mycreditapp.ai/v1-beta/host-connections', 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://api.mycreditapp.ai/v1-beta/host-connections",
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([
'host_organization_id' => 'd49b0749-fbc7-4e0a-b03d-ef15f238071a',
'invitation_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Requester-Organization-ID: <requester-organization-id>",
"Target-Organization-ID: <target-organization-id>"
],
]);
$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://api.mycreditapp.ai/v1-beta/host-connections"
payload := strings.NewReader("{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Requester-Organization-ID", "<requester-organization-id>")
req.Header.Add("Target-Organization-ID", "<target-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
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://api.mycreditapp.ai/v1-beta/host-connections")
.header("Requester-Organization-ID", "<requester-organization-id>")
.header("Target-Organization-ID", "<target-organization-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mycreditapp.ai/v1-beta/host-connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Requester-Organization-ID"] = '<requester-organization-id>'
request["Target-Organization-ID"] = '<target-organization-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"host_organization_id\": \"d49b0749-fbc7-4e0a-b03d-ef15f238071a\",\n \"invitation_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}"
response = http.request(request)
puts response.read_body{
"host_organization_id": "d49b0749-fbc7-4e0a-b03d-ef15f238071a",
"guest_organization_id": "78b348b8-009c-4b87-af32-60a12fbc6e60",
"host_name": "Example Host Corp",
"host_email": "hostcorp@example.com",
"owner_email": "owner@example.com",
"status": "connected",
"archived": true,
"created_at": "2025-12-12T12:00:00.123456",
"updated_at": "2025-12-12T12:00:00.123456",
"archived_at": "2025-12-12T12:00:00.123456",
"active_action_type": "analytics_request",
"active_action_updated_at": "2025-12-12T12:00:00.123456"
}{
"detail": [
{
"loc": [],
"msg": "Invalid invitation token!",
"type": "request",
"code": "invalid_invitation_token"
},
{
"loc": [],
"msg": "Invitation token has expired!",
"type": "request",
"code": "invitation_token_expired"
},
{
"loc": [],
"msg": "Unsupported CRUD operation!",
"type": "request",
"code": "unsupported_crud_operation"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Token is required!",
"type": "token",
"code": "token_required"
},
{
"loc": [],
"msg": "The token has expired!",
"type": "token",
"code": "token_expired"
},
{
"loc": [],
"msg": "Invalid token!",
"type": "token",
"code": "invalid_token"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Self connections are not allowed!",
"type": "request",
"code": "self_connection_not_allowed"
},
{
"loc": [],
"msg": "Access denied!",
"type": "request",
"code": "access_denied"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Account not found!",
"type": "request",
"code": "account_not_found"
},
{
"loc": [],
"msg": "Host organization not found!",
"type": "request",
"code": "host_organization_not_found"
},
{
"loc": [],
"msg": "Organization not found!",
"type": "request",
"code": "organization_not_found"
},
{
"loc": [],
"msg": "Guest invitation not found!",
"type": "request",
"code": "guest_invitation_not_found"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Host connection already exists!",
"type": "request",
"code": "host_connection_already_exists"
},
{
"loc": [],
"msg": "The account is in the process of being deleted! The Account's email can only be reused after its data has been completely deleted. The removal process may take up to 24 hours.",
"type": "request",
"code": "account_being_deleted"
},
{
"loc": [],
"msg": "The organization is in the process of being deleted! The removal process may take up to 24 hours.",
"type": "request",
"code": "organization_being_deleted"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The request is too large!",
"type": "request",
"code": "request_too_large"
}
]
}{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string",
"code": "validation_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Error processing request, please try later!",
"type": "try_later",
"code": "internal_conflict_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Service is under maintenance, please try later!",
"type": "maintanance",
"code": "service_under_maintenance"
}
]
}Authorizations
Bearer authentication using a JWT token. Provide a valid access token. Authorization header format: Authorization: Bearer <token>.
Headers
The unique identifier of the organization making the request. This ID is used to authorize the requester within the system.
"054b4106-174b-46b0-97f8-86d8d7b6f0af"
The unique identifier of the organization that is the target of the request.
The Target-Organization-ID may match the Requester-Organization-ID if the requester accesses their own resources.
If the Target-Organization-ID differs from the Requester-Organization-ID, the requester can access third-party resources if the requester has a connection with the target organization and is authorized to perform such actions.
"123e4567-e89b-12d3-a456-426614174000"
Body
Unique identifier of the host organization
"d49b0749-fbc7-4e0a-b03d-ef15f238071a"
Optional invitation token for connecting to the host
10 - 2000"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Response
Successful Response
Unique identifier of the host organization
"d49b0749-fbc7-4e0a-b03d-ef15f238071a"
Unique identifier of the guest organization
"78b348b8-009c-4b87-af32-60a12fbc6e60"
Current status of the connection
connected, disconnected Indicates whether the connection is archived
Datetime when the connection was created
"2025-12-12T12:00:00.123456"
Datetime when the host connection was updated
"2025-12-12T12:00:00.123456"
Datetime when the connection was archived
"2025-12-12T12:00:00.123456"
Current active action on the connection
analytics_request Datetime of the last update to the active action
"2025-12-12T12:00:00.123456"