Needs keys A live check needs a token for the CRM. In mock mode it always succeeds with mock: true.
Makes one read-only call to the CRM with the connection's credentials. HubSpot lists one contact, Salesforce reads /limits, Dynamics 365 calls WhoAmI, GoHighLevel reads the location, and Zoho reads the current user. OAuth tokens close to expiry are refreshed first.
Request#
| Path parameter | Type | Required | Description |
|---|---|---|---|
provider |
string | Yes | One of hubspot, salesforce, dynamics365, gohighlevel, zoho. |
This endpoint takes no body.
Example request#
curl -X POST https://api.tried.com.au/test-crm-auth/hubspot \
-H "Authorization: Bearer $TRIED_API_KEY"const res = await fetch("https://api.tried.com.au/test-crm-auth/hubspot", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const result = await res.json();import os, requests
res = requests.post(
"https://api.tried.com.au/test-crm-auth/hubspot",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
)
result = res.json()Response#
200 OK, also when the CRM rejects the credentials. Check ok.
{ "ok": true, "mock": false, "message": "Authenticated." }In mock mode:
{ "ok": true, "mock": true, "message": "Mock mode: no credentials are set, operations are recorded instead of sent." }| Field | Type | Description |
|---|---|---|
ok |
boolean | true when the CRM accepted the credentials. |
mock |
boolean | true when no live call was made. |
message |
string | Authenticated., the mock notice, or the CRM error, for example GET /crm/v3/objects/contacts returned 401: {...}. |
Errors#
| Status | When |
|---|---|
400 |
provider is not a supported CRM. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the admin scope. Dashboard members are read-only. |
404 |
No <provider> CRM connection. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.