TLNT Connect API

Operate an agency workspace from your own agent, over REST or MCP. Every call acts as the team member who created the key or approved the connection, within the scopes it holds. Pro plan and above.

ProductionREST https://tlntconnect.com/api/v1MCP https://tlntconnect.com/api/mcp

Quick start

Claude Code (API key)

  1. A workspace admin creates a key in Settings → Integrations → API keys and picks its permissions.
  2. Add the server:
claude mcp add --transport http tlnt-connect https://tlntconnect.com/api/mcp --header "Authorization: Bearer $TLNT_API_KEY"

Then ask Claude to call get_workspace. Without --header, /mcp signs in with OAuth instead.

claude.ai custom connector (OAuth)

  1. Settings → Connectors → Add custom connector.
  2. URL https://tlntconnect.com/api/mcp. Leave the client ID and secret empty.
  3. Connect, sign in to TLNT Connect, then pick the workspace and the permissions.

ChatGPT developer mode (OAuth)

  1. Settings → Apps & Connectors → Advanced settings → turn on Developer mode.
  2. Create a connector: MCP server URL https://tlntconnect.com/api/mcp, authentication OAuth.
  3. Sign in to TLNT Connect, then pick the workspace and the permissions.

REST

curl https://tlntconnect.com/api/v1/me -H "Authorization: Bearer $TLNT_API_KEY"

Scopes

A key or connection only reaches what its scopes allow, and never more than the member it acts as can do in the app. New keys start with the default read scopes. High-risk scopes are never pre-selected.

workspace:readTeam, entitlements, notifications and workspace searchDefault
roster:readRoster creators, handles, reach and statusDefault
roster:writeCreate and edit roster creators, notes and tags, and reassign creators to managers (up to the daily reassignment cap)Opt-in
lists:readCreator lists and their membersDefault
lists:writeCreate lists, add and remove membersOpt-in
campaigns:readCampaigns, deal stages, attached creators and deliverablesDefault
campaigns:writeCreate and edit deals, attach roster creatorsOpt-in
brands:readBrands, contacts and segmentsDefault
brands:writeCreate and edit brands and contactsOpt-in
tasks:readTasks, calendar holds, files and saved viewsDefault
tasks:writeCreate and edit tasks, holds, files and viewsOpt-in
casting:readCasting calls and submissionsDefault
casting:writeDraft casting calls and review submissions (publishing needs share:public)Opt-in
discovery:readSaved searches, runs, reports and credit balanceDefault
inbox:readMailboxes, threads, message bodies and attachments (personal data)High risk
inbox:writeUpdate threads and draft replies (sending needs email:send)Opt-in
outreach:readTemplates, send history and statsOpt-in
outreach:writeEdit templates and preview sends (sending needs email:send)Opt-in
messages:readCreator portal messages (creator-written text is returned as untrusted content)Opt-in
finance:readCampaign deal values, agency fees and creator rates, the creator rate suggestion, list quoted rates, invoices and payouts (admin members only)Opt-in
invoices:writeCreate and edit invoice drafts and their line items (sending needs email:send and the user's written confirmation in chat; admin members only)Opt-in
atlas:readAtlas operational findings and pending approvals (read-only)Default
atlas:runAsk Atlas questions; each run uses one Atlas run credit, and what Atlas does follows this credential's approval settingsHigh risk
email:sendSend outreach, inbox replies and invoice emails (invoices after written confirmation in chat)High risk
messages:sendMessage creators through their portal (after written confirmation in chat; each counts as one email recipient)High risk
share:publicPublic links to lists, media kits and campaign reports, the roster join link, and publishing casting calls (up to the daily public link cap)High risk
discovery:spendRun paid searches, reports and email unlocksHigh risk
deleteDelete records in any granted areaHigh risk
contracts:writeContract templates and agreement signature requests (after written confirmation in chat; admin members only)High risk

Never available over the API: team role changes and member removal; invitations; API key and connector management; integration connects; billing and subscription; workspace settings; approving or rejecting Atlas actions; moving money (payouts, direct pay, refunds).

ask_atlas stays inside the key's other scopes: Atlas's tools, and the workspace context it is given, cover only what those scopes can read. Money needs finance:read on an admin's key. Saved agency memory reaches Atlas only on an admin key with finance:read, because notes can hold rates and fees.

Approvals

Everything a key or connected app is granted runs directly, within its daily caps. A workspace admin can set any class below to Ask for approval in TLNT, per API key or per connected app: the call then answers 202 with status: "pending_approval" and an action_id; poll get_action (GET /api/v1/actions/{action_id}) until it is executed, rejected, failed or expired. Nothing can be approved or rejected over the API.

Sending emailOutreach, inbox replies and invoice emails. Invoice sends need written confirmation in chat. Scope email:send.50/day by default, up to 500
Public links and publishingPublic share links, the roster join link and publishing casting calls. Scope share:public.25/day by default, up to 200
DeletesDeleting records in any area the credential can reach. Scope delete.25/day by default, up to 200
Discovery creditsPaid Discovery calls: searches, creator reports, contact unlocks, audience overlap, collaborations and creator scripts; saved-search schedules. Scope discovery:spend.100/day by default, up to 1000
Creator assignmentsAssigning roster creators to a manager; each creator moved or unassigned counts. Scope roster:write.100/day by default, up to 1000
Inbox thread changesStatus, priority, labels and assignee of inbox threads. Scope inbox:write.No daily cap
Creator messagesMessages to creators in their portal. Need written confirmation in chat; each counts as one email recipient. Scope messages:send.No daily cap
Agreement signaturesSending an agreement for signature. Needs written confirmation in chat; each counts as one email recipient. Scope contracts:write.No daily cap
  • Every class defaults to Run directly, for API keys and connected apps alike. Past a daily cap the call answers 429 and nothing runs.
  • Written confirmation in chat: send_invoice, request_agreement_signature, send_creator_message. The first call sends nothing and answers 200 with status: "confirmation_required", the exact preview and a confirmation_token. Show the preview to the user; only after they confirm it in writing, call again with the same arguments and the token (single use, 10 minutes). It then sends once.
  • What Atlas does during ask_atlas follows the same settings and is listed in its result.

Costs

  • Paid Discovery calls spend Discovery credits at the app's rate card. Call the free preflight first; it returns the price and a quote_token (5 minutes) for the paid call. An empty creator report is charged like the app.
  • ask_atlas uses one Atlas run credit; inbox summaries and drafts use one Atlas credit each. Both come from the workspace's monthly Atlas allowance.
  • Free: Competitor tracked, Creative direction, Outreach email (no credits; the daily recipient cap still applies).
generate_creator_scriptScript regeneration: 1 credit — quote with preflight_creator_script
purchase_creator_reportCreator report: 15 credits — quote with preflight_creator_report
run_discovery_searchCreator search · 15 results: 3 credits · AI search · 15 results: 6 credits · Lookalike search · 15 results: 6 credits — quote with preflight_discovery_search
unlock_creator_contactsContact unlock: 1 credit (provisional) — quote with preflight_contact_unlock
get_audience_overlapAudience overlap: 15 credits (provisional) — quote with preflight_audience_overlap
get_creator_collaborationsCollaboration lookup: 3 credits (provisional) — quote with preflight_creator_collaborations

Errors

{ "error": { "code": "missing_scope", "message": "…", "issues": [ … ], "retry_after_seconds": 30 } }
  • code is stable; message is for people. issues lists invalid input fields (400).
  • Retry-After comes with 429 rate limits and daily caps, 409 in-progress retries, 503, and every 202.
  • Writes accept an Idempotency-Key header (MCP: idempotency_key); the same key and request within 24 hours replays the stored response with Idempotent-Replayed: true.
  • An MCP tool error is a tool result with isError: true and the same JSON body.
400invalid_inputinvalid_jsoninvalid_ididempotency_key_required
401missing_tokeninvalid_tokenrevoked_tokenexpired_token
402trial_limit_reachedinsufficient_creditsplan_selection_requiredlive_campaign_limit_exceededresource_limit_exceededusage_limit_exceeded
403missing_scopecredit_limit_reachedactor_unavailablerole_forbiddenplan_upgrade_requiredfeature_not_availableactor_forbiddenactor_inactive_or_changedcampaign_creator_scope_forbiddenmailbox_permission_requiredatlas_disabled
404not_foundbrand_not_foundmanager_not_foundcampaign_not_foundcreator_not_foundassignee_not_found
405method_not_allowed
409conflictduplicateduplicate_creatorstale_targetidempotency_key_reusedidempotency_in_progressidempotency_context_changedidempotency_response_too_largeoperation_in_progressoperation_already_chargedupload_incompletequote_expiredquote_invalidquote_staleconfirmation_invalidconfirmation_expiredconfirmation_staleconfirmation_used
428expected_updated_at_required
429rate_limiteddaily_send_cap_reacheddaily_credit_cap_reacheddaily_delete_cap_reacheddaily_public_link_cap_reacheddaily_reassignment_cap_reachedatlas_run_throttled
500internal_erroridempotent_replay_of_failure
503service_unavailable

Reference

163 operations, generated from /api/v1/openapi.json (OpenAPI 3.1). Each REST operation is also an MCP tool of the same name. Open an operation for its inputs, responses and rules.

Workspace

Team

Campaigns

Deliverables

Roster

Lists

Brands

Tasks

Calendar

Files

Discovery

Inbox

Invoices

Payouts

Contracts

Casting

Messages

Outreach

Atlas

Actions