curl -X GET "https://api.hooked.so/v1/integration/cm3c4d5e6f7g8h9i0j1k2l3m4" \
-H "x-api-key: your_api_key_here"
const integrationId = 'cm3c4d5e6f7g8h9i0j1k2l3m4';
const response = await fetch(`https://api.hooked.so/v1/integration/${integrationId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (!data.health.tokenValid) {
console.log('Reconnect this account in the dashboard');
}
import requests
integration_id = 'cm3c4d5e6f7g8h9i0j1k2l3m4'
response = requests.get(
f'https://api.hooked.so/v1/integration/{integration_id}',
headers={'x-api-key': 'your_api_key_here'}
)
health = response.json()['data']['health']
print(health['status'])
{
"success": true,
"data": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"identifier": "UC1234567890",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
},
"health": {
"status": "healthy",
"tokenValid": true,
"lastChecked": "2026-10-01T10:30:00.000Z"
},
"createdAt": "2026-08-15T09:00:00.000Z"
}
}
{
"code": "not_found",
"message": "Integration not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": {
"resource_id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"resource_type": "Integration"
}
}
Channels
Get Integration Details
Get a connected social account and whether its connection is still valid
GET
/
v1
/
integration
/
{integrationId}
curl -X GET "https://api.hooked.so/v1/integration/cm3c4d5e6f7g8h9i0j1k2l3m4" \
-H "x-api-key: your_api_key_here"
const integrationId = 'cm3c4d5e6f7g8h9i0j1k2l3m4';
const response = await fetch(`https://api.hooked.so/v1/integration/${integrationId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (!data.health.tokenValid) {
console.log('Reconnect this account in the dashboard');
}
import requests
integration_id = 'cm3c4d5e6f7g8h9i0j1k2l3m4'
response = requests.get(
f'https://api.hooked.so/v1/integration/{integration_id}',
headers={'x-api-key': 'your_api_key_here'}
)
health = response.json()['data']['health']
print(health['status'])
{
"success": true,
"data": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"identifier": "UC1234567890",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
},
"health": {
"status": "healthy",
"tokenValid": true,
"lastChecked": "2026-10-01T10:30:00.000Z"
},
"createdAt": "2026-08-15T09:00:00.000Z"
}
}
{
"code": "not_found",
"message": "Integration not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": {
"resource_id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"resource_type": "Integration"
}
}
Overview
Returns one connected social account with a basic health check of its stored token. Use it before scheduling to make sure the connection still works.If
health.status is expired or error, reconnect the account in the Hooked dashboard (Studio → Channels). Reconnecting the same account updates this integration and keeps its id.expired when the token has an expiry date in the past, error when a TikTok connection has no access token, healthy otherwise. It does not call the platform, so healthy does not guarantee the platform will accept a post.
curl -X GET "https://api.hooked.so/v1/integration/cm3c4d5e6f7g8h9i0j1k2l3m4" \
-H "x-api-key: your_api_key_here"
const integrationId = 'cm3c4d5e6f7g8h9i0j1k2l3m4';
const response = await fetch(`https://api.hooked.so/v1/integration/${integrationId}`, {
headers: { 'x-api-key': process.env.HOOKED_API_KEY }
});
const { data } = await response.json();
if (!data.health.tokenValid) {
console.log('Reconnect this account in the dashboard');
}
import requests
integration_id = 'cm3c4d5e6f7g8h9i0j1k2l3m4'
response = requests.get(
f'https://api.hooked.so/v1/integration/{integration_id}',
headers={'x-api-key': 'your_api_key_here'}
)
health = response.json()['data']['health']
print(health['status'])
{
"success": true,
"data": {
"id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"type": "youtube",
"identifier": "UC1234567890",
"account": {
"id": "UC1234567890",
"name": "My YouTube Channel",
"username": "mychannel",
"avatarUrl": "https://yt3.ggpht.com/..."
},
"health": {
"status": "healthy",
"tokenValid": true,
"lastChecked": "2026-10-01T10:30:00.000Z"
},
"createdAt": "2026-08-15T09:00:00.000Z"
}
}
{
"code": "not_found",
"message": "Integration not found",
"errorCode": "RESOURCE_NOT_FOUND",
"details": {
"resource_id": "cm3c4d5e6f7g8h9i0j1k2l3m4",
"resource_type": "Integration"
}
}
Errors
| Status | When |
|---|---|
| 401 | Missing or invalid API key (code: "not_authenticated") |
| 403 | Your team does not have the Hooked app product (code: "entitlement_required") |
| 404 | No integration with that id (code: "not_found"). An id that belongs to another team answers the same way |
| 500 | { "success": false, "message": "Failed to fetch integration", "error": "..." } |
Next Steps
Schedule Post
Publish a video to this account
Disconnect Integration
Remove the connection