All integrations

CrowTerminal

MARKETING · MARKETING

Influencer clients, engagement predictions, and niche benchmarks in that account.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

crowterminal_delete_api_desktop_sync_transcripts_by_idWRITE

Delete a transcript via DELETE /api/desktop-sync/transcripts/{id}. DESTRUCTIVE. A soft delete at CrowTerminal -- the record stops appearing in the listing and stops counting, and this API offers nothing that restores it. Measured 2026-09-17: the first call answers 200 {"success":true} and the second answers 404 "Transcript not found", so a repeat is not idempotent.

api
crowterminal_get_api_auth_meREAD

Get the current user via GET /api/auth/me. The account the connection acts as: id, email, name, avatar, plan (FREE/STARTER/GROWTH/AGENCY/ENTERPRISE), auth provider and counts of related records.

api
crowterminal_get_api_benchmarks_client_by_clientidREAD

Compare a client against its niche via GET /api/benchmarks/client/{clientId}. Percentiles and vs-average figures for one client against the benchmark for its niche.

api
crowterminal_get_api_benchmarks_client_by_clientid_historyREAD

Get a client's benchmark history via GET /api/benchmarks/client/{clientId}/history. Percentile snapshots over time, newest first; `limit` defaults to 12.

api
crowterminal_get_api_benchmarks_niche_by_nicheREAD

Get benchmarks for a niche via GET /api/benchmarks/niche/{niche}. `niche` is matched loosely -- "Fashion & Lifestyle" resolves to the `fashion` benchmark. A niche with too little data answers 404 with "Benchmarks require at least 5 accounts and 20 videos", which is a data condition rather than a bad path.

api
crowterminal_get_api_benchmarks_nichesREAD

List niches with benchmark data via GET /api/benchmarks/niches. Each entry carries the niche key to pass to the per-niche tool, a display name, how many accounts back it and a confidence figure.

api
crowterminal_get_api_benchmarks_summaryREAD

Get a benchmark summary across all clients via GET /api/benchmarks/summary. Per-client percentiles plus agency-wide totals (client count, average percentile, top performers, clients needing attention).

api
crowterminal_get_api_clientsREAD

List clients via GET /api/clients. Paginated. `search` matches the client name and `isActive` filters on the active flag; both were measured working 2026-09-17. Unknown query parameters are ignored rather than refused.

api
crowterminal_get_api_clients_by_idREAD

Get a client via GET /api/clients/{id}. `id` must be a UUID; any other shape answers 400 "Invalid client ID" from the request validator rather than 404.

api
crowterminal_get_api_desktop_sync_countREAD

Count synced transcripts via GET /api/desktop-sync/count. The number of transcripts held in the cloud for this account, excluding soft-deleted ones.

api
crowterminal_get_api_desktop_sync_sessionsREAD

List desktop sessions via GET /api/desktop-sync/sessions. Registered desktop installations for this account: device id, platform, app version and when each was last seen.

api
crowterminal_get_api_desktop_sync_transcriptsREAD

List synced transcripts via GET /api/desktop-sync/transcripts. Transcripts uploaded by the CrowTerminal desktop app, newest first; `limit` defaults to 50 and `clientId` narrows to one client. Soft-deleted transcripts are excluded.

api
crowterminal_get_api_predictions_accuracy_summaryREAD

Get prediction accuracy summary via GET /api/predictions/accuracy/summary. Aggregate error between predicted and recorded actuals across every client. Answers 200 with a null summary and an explanatory message while no actuals have been recorded.

api
crowterminal_get_api_predictions_by_clientid_historyREAD

Get a client's prediction history via GET /api/predictions/{clientId}/history. Stored predictions for one client, newest first, each with its id, predicted figures and any recorded actuals. This is where the id for the single-prediction and record-actuals tools comes from.

api
crowterminal_get_api_predictions_by_idREAD

Get a prediction via GET /api/predictions/{id}. `id` is a prediction id, not a client id. An unknown one answers 404 RES_001 naming the resource; a non-UUID answers 400 VAL_001 "Invalid prediction ID".

api
crowterminal_get_api_usage_cost_projectionREAD

Get cost projection via GET /api/usage/cost-projection. This account's month-to-date cost and the projection for the full month, with the day counts the projection is built from.

api
crowterminal_get_api_usage_quotaREAD

Get usage quota via GET /api/usage/quota. Plan, monthly token limit, tokens used and remaining, reset date and whether overage is allowed. This is the budget the engagement-prediction tool spends.

api
crowterminal_get_api_usage_summaryREAD

Get usage summary via GET /api/usage/summary. This account's own usage over `days` (1-365, default 30): tokens, requests, success rate, latency, estimated cost, and breakdowns by feature and by day. `days` outside the range answers 400 "Days must be 1-365".

api
crowterminal_patch_api_auth_meWRITE

Update the current user's profile via PATCH /api/auth/me. Accepts `name` and `avatarUrl` only. It cannot change the email or the password, so it cannot lock this connection out of the account.

api
crowterminal_patch_api_predictions_by_id_actualWRITE

Record actual results for a prediction via PATCH /api/predictions/{id}/actual. `actualEngagement` (0-100) and `actualViews` are required. Returns the error between predicted and actual and feeds the accuracy summary.

api
crowterminal_post_api_auth_loginWRITE

Log in to an existing account via POST /api/auth/login. Exchanges any CrowTerminal email and password for a 7-day JWT and returns that token in the reply. This connection does NOT need it: Agentic Fabriq performs the same exchange itself from the login stored on the connection and attaches the result to every other tool. Rate limited by CrowTerminal to 5 attempts per hour per source IP (measured 2026-09-17: ratelimit-policy 5;w=3600), a budget shared with the connection's own automatic sign-in, so calling this tool can leave the connection unable to renew its session for up to an hour.

api
crowterminal_post_api_auth_registerWRITE

Register a new user via POST /api/auth/register. Creates a NEW CrowTerminal account from an email, password and name -- it does not act on the account this connection holds, and the account it creates is not connected to Agentic Fabriq. The reply carries a 7-day JWT for the new account. Rate limited by CrowTerminal to 3 registrations per hour per source IP (measured 2026-09-17: ratelimit-policy 3;w=3600), which is shared by every connection on this deployment.

api
crowterminal_post_api_billing_checkoutWRITE

Create a Stripe checkout session via POST /api/billing/checkout. PRIVILEGED. Starts a paid subscription purchase for the connected account and returns a live Stripe Checkout URL; anyone holding that URL can complete the purchase. `priceId` is a Stripe price id -- an unknown one answers 400 "Invalid price ID" (measured 2026-09-17).

api
crowterminal_post_api_billing_portalWRITE

Create a Stripe billing portal session via POST /api/billing/portal. PRIVILEGED. Returns a live Stripe customer-portal URL for the connected account, carrying a session secret in the query string. Anyone holding that URL can change or cancel the subscription and see the stored payment methods. Measured 2026-09-17: answers 200 with such a URL on a FREE-plan account.

api
crowterminal_post_api_clientsWRITE

Create a client via POST /api/clients. `name` is the only required field. The enumerated fields (`brandVoice`, `contentGoals`, `language`, `postingFrequency`, `region`, `targetGender`) accept only the listed values. Returns the created client including the `id` the benchmark and prediction tools take.

api
crowterminal_post_api_desktop_sync_sessionsWRITE

Register a desktop session via POST /api/desktop-sync/sessions. `deviceId`, `platform` (darwin/win32/linux) and `appVersion` are required. Re-registering a known device updates its last-seen time rather than creating a second row.

api
crowterminal_post_api_desktop_sync_transcriptsWRITE

Upload a transcript via POST /api/desktop-sync/transcripts. `fileName`, `text` and `language` are required; `clientId`, `duration`, `localId` and `createdAt` are optional. Returns the stored transcript's id.

api
crowterminal_post_api_predictions_engagementWRITE

Predict engagement for planned content via POST /api/predictions/engagement. BILLED IN TOKENS against the account's monthly quota (see the usage-quota tool). Takes a `clientId` and a `content` object (caption, hashtags, posting time, video duration) and returns a predicted engagement rate with a range, a view range, an overall score and per-signal breakdowns. The prediction is stored and gets an id, which the prediction-history tool reads back.

api

Put CrowTerminal behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.