/api/oauth/v1 surface documented in the API
reference, so the scope and tenant rules are identical. A tool never takes a general company
selector. Calls default to the connected company; a consented agency parent can select one
direct child per call with act_as_subaccount_id.
Risk levels
| Level | Meaning |
|---|---|
| read | No writes and no side effects. |
| write | Mutates SideShift state, reversibly. No money movement, no outbound message. |
| sensitive | Moves money, or sends an outbound email, direct message, or push. Rejected for sandbox and test tokens, and blocked entirely under MCP_SAFE_MODE. |
Looking for the exact input schema for one tool? Call
catalog_get_schema against the MCP
server rather than reading it here. The schema it returns is authoritative and always
current, which a page cannot promise.Tools
| Metric | Count |
|---|---|
| Tools | 284 |
| Read | 136 |
| Write | 74 |
| Sensitive | 74 |
| Domains | 39 |
| Scopes in use | 50 |
Ads
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_ad_automation_rule | ads:write | sensitive | Create a live paid-media automation rule. |
delete_ad_automation_rule | ads:write | sensitive | Delete a paid-media automation rule so it can no longer act. |
delete_promoted_ad | ads:write | sensitive | Delete one promoted ad and its provider-side delivery objects when supported. |
duplicate_meta_ad_object | ads:write | sensitive | Duplicate a Meta campaign or ad set through Meta’s copy API. |
estimate_meta_delivery | ads:read | read | Read Meta’s reach/impressions forecast curve for a prospective ad-set budget. |
generate_ad_connection_handoff | ads:read | write | Mint a short-lived browser handoff pointer for the user to connect or reconnect a TikTok or Meta ad account. |
get_ad_assets | ads:read | read | Read promotable apps, conversion pixels, and optimization events from one TikTok or Meta ad account. |
get_ad_link_settings | ads:read | read | Read saved landing pages and tracking parameters used by promoted-content launches (ads:read). |
get_ad_post_statuses | ads:read | read | Read the ads-only readiness overlay keyed by source post: Spark/partnership-code state and TikTok/Meta launch counts. |
get_ads_analytics | ads:read | read | Read paid-media delivery analytics (spend, impressions, clicks, paid views, conversions, efficiency, and daily points). |
get_ads_summary | ads:read | read | Read the paid-media dashboard summary across TikTok and Meta: connection readiness, promoted-content totals, delivery state, spend, and alerts. |
get_meta_campaign_budget | ads:read | read | Read a Meta campaign’s campaign-level daily/lifetime budget to determine whether new ad sets inherit CBO/Advantage campaign budget (ads:read). |
get_meta_partnership_code | ads:write | read | Read the saved Meta partnership ad code and launch metadata for one authenticated-company source post. |
get_meta_post_caption | ads:read | read | Read the live Instagram caption for a creator post through Meta Business Discovery. |
get_promoted_ad | ads:read | read | Read one promoted ad by its SideShift promoted-ad ID, regardless of provider. |
launch_meta_brand_ad | ads:write | sensitive | Launch a Meta ad under the brand’s own Page/Instagram identity using source video content. |
launch_meta_partnership_ad | ads:write | sensitive | Launch a Meta partnership/whitelist ad using a creator-provided partnership code. |
launch_tiktok_ad | ads:write | sensitive | Launch one TikTok Spark ad from a saved code/identity, billed by the connected advertiser account. |
list_ad_automation_rules | ads:read | read | List paid-media IF/THEN rules that can automatically pause, re-budget, or notify based on delivery metrics (ads:read). |
list_ad_code_requests | ads:read | read | List creator TikTok Spark-code requests, including fulfillment status and source-post context (ads:read). |
list_ad_connections | ads:read | read | List the authenticated company’s scrubbed TikTok and Meta ad-provider connections and readiness. |
list_ad_identities | ads:read | read | List TikTok Spark/post and Meta/Instagram identity bindings available for promoted-content launches (ads:read). |
list_meta_ad_accounts | ads:read | read | Read ad accounts available through a Meta connection and the selected account (ads:read). |
list_meta_ad_copy | ads:read | read | Read primary text, headlines, descriptions, and CTAs from active ads in the connected Meta account for reuse as explicit user-selected copy (ads:read). |
list_meta_ad_sets | ads:read | read | Read real Meta ad sets, optionally within one Meta campaign, including budgets, schedule, status, and targeting summary (ads:read). |
list_meta_campaigns | ads:read | read | Read campaigns directly from the connected Meta ad account, including objective, status, and campaign-level budgets. |
list_meta_pages | ads:read | read | Read Facebook Pages and linked Instagram business accounts available through a Meta connection (ads:read). |
list_meta_partnership_code_requests | ads:read | read | List the authenticated company’s creator Meta partnership-code requests, including pending, fulfilled, and failed states plus source-post context (ads:read). |
list_promoted_ads | ads:read | read | List promoted content across TikTok and Meta with provider, lifecycle status, budget, spend, source post, and external delivery IDs. |
list_tiktok_campaign_shells | ads:read | read | List reusable TikTok campaign/ad-group shells that a new TikTok ad can join, optionally by lifecycle status (ads:read). |
pause_promoted_ad | ads:write | sensitive | Pause one promoted ad through its TikTok or Meta provider. |
request_ad_code | ads:write | sensitive | Send a real creator message requesting a TikTok Spark code for a source post. |
request_meta_partnership_code | ads:write | sensitive | Send a real creator message requesting a Meta partnership ad code for one Instagram post. |
resume_promoted_ad | ads:write | sensitive | Resume one paused promoted ad through its TikTok or Meta provider. |
save_ad_code | ads:write | sensitive | Validate and save a creator-provided TikTok Spark code, binding it to the source post for later launch. |
save_meta_partnership_code | ads:write | sensitive | Validate and save a creator-provided Meta partnership ad code for one Instagram source post. |
update_ad_automation_rule | ads:write | sensitive | Update or pause/resume a paid-media automation rule. |
update_ad_link_settings | ads:write | write | Replace the authenticated company’s SideShift-only landing-page and tracking-parameter settings. |
update_promoted_ad_budget | ads:write | sensitive | Change the provider budget for one TikTok or Meta promoted ad. |
Agency billing
| Tool | Scope | Risk | What it does |
|---|---|---|---|
assign_agency_free_client | agency-billing:write | write | Assign an unpaid agency subaccount as freeClientId for per-client billing (typically the oldest eligible). On legacy per-client billing this is the included-free client; on agency platform billing, freeClientId names the client already bound to the platform subscription, not a free seat. Idempotent; rejects clients with an active subscription or checkout. |
generate_subscription_link | agency-billing:write | write | Start agency checkout for a new client on Starter, Growth, or Scale (monthly or annual). Requires an active agency base. Give the URL to the agency billing manager; creating the link does not charge. |
get_agency_billing | agency-billing:read | read | Read the authenticated company’s invoicing/billing profile: company name, logo, email, phone, billing address, tax id and type, and brand color. |
get_agency_billing_state | agency-billing:read | read | Read the authenticated company’s per-client billing configuration: whether it is an agency (isAgency), its parent agency id (parentCompanyId, for subaccounts), whether separate per-client subscriptions are enabled (separateAgencySubs), the client bound for per-client billing (freeClientId — on agency platform billing, the paid client line item on the platform subscription; on legacy per-client billing, the included-free client; null when unset), and the active-client seat cap (maxActiveClients). |
set_agency_separate_subs | agency-billing:write | write | Enable per-client billing on a new agency account. Per-client billing cannot be disabled once enabled; existing paid billing-mode changes may require migration review. |
update_agency_billing | agency-billing:write | sensitive | Update the authenticated company’s invoicing/billing profile (company name, email, phone, billing address, tax id/type, brand color) with a best-effort Stripe customer sync. |
Analytics
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_analytics_accounts | analytics:read | read | Tracked social accounts (grouped by creator + platform) with per-account analytics (posts/views/engagement, averages, date range) + a cross-account summary. |
get_analytics_kpis | analytics:read | read | Dashboard KPI blocks for the company: programs (by status), contracts (by status), posts (totals), and creators (total + with active contracts). |
get_analytics_overview | analytics:read | read | The composite dashboard snapshot for the company: summary + snapshot totals (views/likes/comments/shares/bookmarks, engagement rate, unique creators), top posts, top creators, and a per-platform breakdown. |
get_analytics_post_metrics_history | analytics:read | read | Get dated views/likes/comments/shares/bookmarks totals and daily deltas for one tracked post. |
get_analytics_timeseries | analytics:read | read | Daily aggregated metrics time series (the data behind the Performance Overview chart): per-day views/likes/comments/shares/bookmarks + a summary. |
get_analytics_videos | analytics:read | read | The tracked-videos list: paginated post rows (metrics + live link) with a window summary. |
list_analytics_campaigns | analytics:read | read | List the authenticated company’s campaigns as a deliberately narrow reporting projection: id, name, and status only. |
list_analytics_creators | analytics:read | read | List creators associated with the authenticated company as a deliberately narrow display projection: id, current display name, and avatar URL only. |
Applicants
| Tool | Scope | Risk | What it does |
|---|---|---|---|
accept_applicant | applicants:write | write | Accept one creator who applied to a SideShift job. On an open application (open-campaign job), Accept also activates that signed contract, adds the creator to the campaign and uses one of the plan’s creator seats. |
bookmark_applicant | applicants:write | write | Bookmark or unbookmark an applicant for quick access. |
decline_applicant | applicants:write | write | Decline one creator who applied to a SideShift job. |
export_applicants | applicants:read | read | Get a download link for a job’s applicants as a CSV file with detailed profile data — the whole job, or a SUBSET via applicant_ids (e.g. |
get_applicant_counts | applicants:read | read | Get per-status counts of people who APPLIED to a job posting (Waiting Review, Viewed, Accepted, Declined, Bookmarked). |
get_applicant_top_posts | applicants:read | read | Get applicants’ top 3 most-viewed posts (TikTok, Instagram, etc). |
list_applicants | applicants:read | read | List applicants for a job with basic filtering by school year and grades. |
list_applicants_advanced | applicants:read | read | List applicants for a job with advanced profile-dependent filtering, including training progress, social profiles, experiences, certifications, repeat-applicant hiding, and applicationAnswers when the job has application requirements. |
list_company_applicants | applicants:read | read | Every job’s applicant queue for the company in ONE call, no job id needed: per job its id, title, posting status, per-status counts (Waiting Review, Viewed, Accepted, Declined, Bookmarked, open = unreviewed with no contract, invited = holds a contract) and the newest applicants. |
message_applicant | applicants:write | sensitive | Send a new message to a creator who applied to a SideShift job. |
resolve_applicant_support_channel | applicants:write | sensitive | Resolve (create or re-use) the support channel for messaging an applicant. |
update_applicant_status | applicants:write | write | Update an applicant’s status for a job (e.g., from “Waiting Review” to “Accepted” or “Declined”). On an open application, Accepted also activates the creator’s signed contract, adds them to the campaign and uses one of the plan’s creator seats. |
Applications
| Tool | Scope | Risk | What it does |
|---|---|---|---|
action_creator_invite | applications:write | write | Approve or reject a creator invite. |
count_pending_handle_requests | applications:read | read | Count pending HANDLE-CHANGE / verification requests a creator submitted for their social handles, across all campaigns. |
get_application | applications:read | read | Fetch a single application (handle request) by id. |
list_applications | applications:read | read | List creator applications (handle requests) to the company’s campaigns. |
list_creator_invites | applications:read | read | List all creator invites for the company. |
update_application_status | applications:write | sensitive | Approve or reject a creator application. |
Billing Handoff
| Tool | Scope | Risk | What it does |
|---|---|---|---|
check_billing_handoff_link | billing:read | read | Check a billing handoff link by its code: whether the user has opened it, whether it expired, and the LIVE billing state (subscription active? wallet available/pending balance?) plus the change since the link was created (wallet balance delta, subscription activated). |
generate_billing_handoff_link | billing:read | write | Create a short-lived link + code that lets the USER (in their browser, logged in to SideShift) do one of the things agents can never do because they require paying or entering card details: pay for / manage the SideShift subscription (kind ‘subscription’), add funds to the company wallet (kind ‘wallet_topup’), set up an agency-managed client plan for a subaccount (kind ‘agency_client_subscription’, pass subaccount_id), add a payment method / card (kind ‘add_card’), buy an extra job-posting slot (kind ‘job_post’), or buy more recruitment invites (kind ‘recruitment_invites’). |
Billing: payment methods
| Tool | Scope | Risk | What it does |
|---|---|---|---|
list_payment_methods | billing:read | read | List the company’s saved Stripe payment methods (cards and bank accounts), including which one is the default. |
set_default_payment_method | billing:write | write | Set the default payment method for the company and sync it across active subscriptions and open auto-charge invoices. |
Billing: subscription
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_billing_history | billing:read | read | Read the company’s Stripe billing history: past invoices and payment intents (what the company has actually been charged - amounts, status, dates, hosted invoice URLs / PDFs), its default payment method, and its active subscription. |
get_billing_receipt_links | billing:read | read | Get auth-gated PDF download links for SideShift’s own charges to the company (what Stripe billed it: subscription payments, top-ups charged to the card): every succeeded payment, newest first, each with downloadUrl (that receipt as a PDF), plus archiveUrl (one ZIP of every row returned) and total. |
get_subscription | billing:read | read | Read the company’s current subscription status: whether it has an active subscription, plus a cryptographically-signed status payload. |
preview_upgrade | billing:read | read | Preview what changing the company’s current subscription to a different plan would cost, prorated - the amount due today, the new recurring price, and tax - BEFORE the user commits. |
Brand Content Pages
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_brand_content_page | brand-content-pages:write | write | Create a new draft brand content page. |
get_brand_content_page | brand-content-pages:read | read | Fetch a single brand content page by id. |
list_brand_content_pages | brand-content-pages:read | read | List the authenticated company’s brand content pages. |
update_brand_content_page | brand-content-pages:write | write | Update a brand content page. |
Brand Verification
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_brand_verification_status | brand-verification:read | read | Fetch the authenticated company’s brand verification status, including effective verification tier (the company’s own, or its agency parent’s when higher), inheritedFrom when the tier is inherited, verification timestamp, and the latest verification request. |
Campaign Crud
| Tool | Scope | Risk | What it does |
|---|---|---|---|
delete_campaign | campaigns:write | write | Permanently delete a campaign and cascade-cancel all associated contracts. |
Campaign Templates
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_campaign_templates | campaigns:read | read | Fetch the SideShift campaign template catalog: setups real brands kept paying for, grouped into sections (start-here for new brands, new-pages for creators posting from an account made for the brand, own-page for creators posting to their existing audience), plus the ads catalog (ad-videos: paid-ads campaigns whose creators deliver videos you run as ads, led by Hybrid — pay per video plus a share of ad spend; boost: organic posts with creator ads access). |
match_campaign_template | campaigns:read | read | Pick the starting setup for a brand using the same rule as SideShift onboarding: a brand that wants ad creative (goal cheaper_ads) starts from the ads Hybrid (a paid-ads campaign paying per approved video plus a share of the ad spend on ads that use it; creators deliver videos for review and do not post). |
Campaigns
| Tool | Scope | Risk | What it does |
|---|---|---|---|
add_campaign_ghost_handle | campaigns:write | write | Add one ghost social handle to any campaign, matching the dashboard Add Ghost Handle flow. |
add_campaign_ghost_video | campaigns:write | write | Add one ghost video to any campaign, matching the dashboard Add Ghost Video flow. |
archive_campaign | campaigns:write | sensitive | Archive a campaign. |
attach_campaign_ghost_creator | campaigns:write | write | Attach one existing tracking-only ghost handle to a known creator in the company for analytics. |
bulk_add_campaign_ghost_handles | campaigns:write | write | Bulk-add 1–500 ghost handles to any campaign, matching the dashboard bulk handle import. |
bulk_add_campaign_ghost_videos | campaigns:write | write | Bulk-add 1–500 ghost videos to any campaign, matching the dashboard bulk video import. |
convert_campaign_ghost_creator | contracts:write | write | Convert one existing tracking-only ghost handle to a pending creator contract, preserving its contract ID and post history. |
create_campaign | campaigns:write | sensitive | Create a COMPLETE campaign (program) in ONE call - the same way the SideShift campaign wizard does: gather EVERYTHING first, confirm with the user, then create. |
duplicate_campaign | campaigns:write | write | Create a copy of an existing campaign (its settings/payment structure are cloned into a new campaign). |
get_campaign | campaigns:read | read | Fetch a single campaign by id, including its settings and stats. |
get_campaign_handles_export_link | campaigns:read | read | Get the auth-gated download link for one campaign’s roster CSV: its creators and ghost handles, one row per handle (name, handle, platform, profile URL, creator or ghost), plus the counts (handles, creators, ghostHandles). |
get_payment_structure | campaigns:read | read | Read a campaign’s payment structure (payout model, rates, bonuses). |
import_campaign_analytics_history | campaigns:write | write | Validate or import real cumulative daily observations captured before SideShift began tracking campaign posts. |
list_campaigns | campaigns:read | read | List the authenticated company’s campaigns (also called programs). |
update_campaign | campaigns:write | sensitive | Update a campaign’s editable fields - details (name, description, dates), requirements, settings (e.g. |
Collections
| Tool | Scope | Risk | What it does |
|---|---|---|---|
delete_collection | creators:write | write | Delete a creator collection and remove it from all creators in it. |
remove_creator_from_collection | creators:write | write | Remove a creator from a collection. |
update_collection | creators:write | write | Update a creator collection’s name, description, or color, and optionally add creators to it. |
Contracts
| Tool | Scope | Risk | What it does |
|---|---|---|---|
cancel_contract | contracts:write | sensitive | Cancel a contract by id. |
create_contract | contracts:write | sensitive | Create a contract that offers a campaign to a specific creator. |
get_contract | contracts:read | read | Fetch a single contract by id. |
list_contracts | contracts:read | read | List the company’s contracts, optionally filtered by status, campaign, or creator. |
Contracts (extended)
| Tool | Scope | Risk | What it does |
|---|---|---|---|
generate_contract_preview_pdf | contracts:read | write | Generate an unsigned preview PDF for a contract (for pre-signing review). |
get_contract_content | contracts:read | read | Fetch the contract document content (custom override, campaign template, or default). |
get_contract_details | contracts:read | read | Fetch one contract by id, including basic metadata and status. |
get_contract_history | contracts:read | read | Fetch a contract’s version history for a specific creator, including all changeLog entries and variant timestamps. |
get_contract_metrics | contracts:read | read | Fetch contract metrics including post performance (views, likes, comments, shares, bookmarks), payment terms, delivery %, and ledger line items. |
get_contract_pdfs | contracts:read | read | Fetch download links for the STORED contract PDFs (the current version — signed if signed) without regenerating anything. |
reject_contract | contracts:write | write | Reject a pending or expired contract (company side). |
save_contract_signature | contracts:sign | sensitive | Upload and save an e-signature (drawn, typed, or image) for a contract. |
update_contract | contracts:write | sensitive | Update the common per-creator contract overrides without replacing the full payout or requirements objects. |
update_contract_content | contracts:write | sensitive | Upsert or reset the per-creator contract document content override. |
update_contract_fields | contracts:write | write | Update contract state via allowlist operations. |
update_contract_payment | contracts:write | sensitive | Update contract payment structure and/or requirements. |
update_contract_with_regen | contracts:write | sensitive | Atomically update payment terms/requirements AND regenerate the contract PDF (in a single transaction). |
Creators
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_campaign_invite | creators:write | write | Create a shareable invite link that lets creators join a campaign. |
create_creator_collection | creators:write | write | Create a new creator collection (a saved group). |
export_creators | creators:read | read | Get a download link for the company’s creator roster as a CSV export (optionally limited to specific creator ids). |
get_creator | creators:read | read | Fetch a single creator by id (the company’s view of them), including the company’s private note history. |
get_creator_notes | creators:read | read | Fetch the company’s private notes history for one creator, newest first. |
list_creator_collections | creators:read | read | List the company’s creator collections (saved groups of creators). |
list_creators | creators:read | read | List creators associated with the company (optionally filtered by campaign or search). |
Creator discovery
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_creator_invite | creators:write | write | Create a shareable invite link for creators to join the company. |
Discover
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_discover_cal_host | discover:write | write | Create (or relabel) the authenticated company’s secondary Discover calendar host, used as a second bookable host on your offer. |
delete_discover_offer | discover:write | write | Remove the company’s Discover marketplace offer (unpublish + delete). |
get_discover_lead_submission | discover:read | read | Fetch one of the authenticated company’s Discover lead-form submissions by id. |
get_discover_offer | discover:read | read | Read the authenticated company’s Discover marketplace offer/listing (what creators see when browsing Discover). |
get_discover_offer_by_id | discover:read | read | Fetch a single published Discover offer by its id. |
list_discover_lead_submissions | discover:read | read | List the authenticated company’s qualified Discover lead-form submissions (the agency-side inbox of brands that submitted a lead form or messaged your offer, plus leads your agency added by hand). |
save_discover_offer | discover:write | write | Use this when the user asks to create, publish, save, edit, or update their Discover marketplace offer/listing. |
send_discover_lead_reminders | discover:write | sensitive | Fan out CRM status-reminder prompts to the authenticated company’s Discover leads (the ‘send-status-reminders’ agency-inbox action). |
send_discover_message | discover:write | sensitive | Send a message to a Discover agency (brand→agency outreach). |
submit_discover_lead_form | discover:write | sensitive | Submit a lead form to another company’s Discover offer (brand→agency outreach). |
update_discover_lead_status | discover:write | sensitive | Advance one of the authenticated company’s Discover leads through the CRM pipeline (new → contacted → call_booked → proposal_sent → won → lost → unqualified → nurture) with an optional note. |
upsert_discover_offer | discover:write | write | BACKWARDS-COMPATIBILITY TOOL for integrations already calling upsert_discover_offer. |
Disputes
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_dispute | disputes:read | read | Fetch a single dispute by id, including its evidence. |
list_disputes | disputes:read | read | List the authenticated company’s creator-payment disputes. |
prepare_dispute_upload | disputes:write | write | Get signed upload URLs for counter-evidence files on a dispute. |
resolve_dispute | disputes:write | sensitive | Resolve a dispute. |
Integrations
| Tool | Scope | Risk | What it does |
|---|---|---|---|
delete_slack_template | integrations:write | write | Delete a Slack workflow template by ID. |
get_agency_slack | integrations:read | read | Fetch Slack integration data across all companies in an agency (parent-only). |
get_integration_metrics_export_link | integrations:read | read | Get the auth-gated download link for the integrations CSV: one row per day, one column per connected metric (App Store installs and revenue, Stripe revenue, RevenueCat revenue / customers / actives / trials, Airtable waitlist signups). |
get_slack_channels | integrations:read | read | List the authenticated company’s Slack bot channels (with cache fallback on rate-limit). |
get_slack_integration | integrations:read | read | Fetch the authenticated company’s Slack integration config (bot token redacted, connected flag included). |
get_slack_templates | integrations:read | read | List Slack workflow templates for a company. |
remove_agency_workflows | integrations:write | write | Remove specific workflows from a subaccount’s Slack config (parent-only). |
save_slack_channel | integrations:write | write | Save the selected agency-lead-reminder Slack channel for the authenticated company (integrations:write). |
save_slack_integration | integrations:write | write | Save or remove the authenticated company’s Slack integration config (integrations:write). |
save_slack_template | integrations:write | write | Save a new Slack workflow template for a company. |
send_test_workflow | integrations:write | sensitive | Test a Slack/Discord workflow by sending a sample payload via the configured webhook. |
start_slack_oauth | integrations:write | write | Initiate Slack OAuth flow and get an authorization URL. |
sync_agency_slack | integrations:write | write | Bulk merge/replace Slack webhooks and workflows across agency subaccounts (parent-only). |
Invites
| Tool | Scope | Risk | What it does |
|---|---|---|---|
list_invites | creators:read | read | List the company’s campaign/program invite links (token, target campaign, usage, expiry), newest first. |
revoke_invite | creators:write | write | Revoke (delete) a campaign invite link so it can no longer be used to join. |
Invoices
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_invoice | invoices:write | sensitive | Create a new invoice for a customer. |
export_invoices | invoices:read | read | Get a download link for the company’s invoices as a CSV: every invoice, one status, or exact invoice ids. |
get_invoice | invoices:read | read | Fetch a single invoice by id. |
list_invoices | invoices:read | read | List the company’s invoices, optionally filtered by status or customer email. |
send_invoice | invoices:write | sensitive | Send (email) an existing invoice to its customer. |
void_invoice | invoices:write | sensitive | Void an existing invoice (cancels it so it can no longer be paid). |
Invoices (extended)
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_invoice_payment_details | invoices:read | read | Fetch the underlying Stripe or payment-provider payment record for a paid invoice (status, card brand/last4, amounts, refundable/voidable flags), normalized into one payment object. |
refund_invoice | invoices:write | sensitive | Refund (fully or partially) a paid invoice: debits the company wallet and issues a live refund. |
send_invoice_receipt | invoices:write | sensitive | Email the receipt for a paid invoice to its customer. |
stop_invoice_reminders | invoices:write | write | Disable the automated payment-reminder emails for an invoice (sets sendReminders to false). |
verify_invoice_payment | invoices:write | sensitive | Confirm and settle an invoice payment, idempotently transitioning it to paid (or pending for bank settlement) and crediting the company wallet. |
Jobs
| Tool | Scope | Risk | What it does |
|---|---|---|---|
boost_job | jobs:write | sensitive | Apply one or more boosts to one of your jobs to increase its visibility: “topFeed” (top of the creator feed for 7 days - 2 credits), “staffPick” (featured badge for 7 days - 1 credit), or “push” (a push notification sent to creators - 4 credits, one capped slot per day so it may be queued for a later send). |
create_job | jobs:write | write | Create, post, or publish a NEW SideShift job listing in the Creator Marketplace (optional applicationRequirements and optional openApplications / open campaign on the job). |
get_job | jobs:read | read | Fetch one of the company’s jobs by id. |
list_job_duplicate_targets | jobs:read | read | List companies a job can be duplicated into. |
list_jobs | jobs:read | read | List the company’s job postings (newest first). |
repost_job | jobs:write | write | Repost an expired job to refresh it in the feed for another 30 days. |
update_job | jobs:write | write | Use this exact tool when the user asks to edit, change, or update an existing SideShift job (including applicationRequirements and openApplications; omit applicationRequirements to leave unchanged, [] to clear). |
update_job_status | jobs:write | write | Archive, unarchive, or delete a job by ID. |
upsert_job | jobs:write | write | BACKWARDS-COMPATIBILITY TOOL for integrations already calling upsert_job. |
Messages
| Tool | Scope | Risk | What it does |
|---|---|---|---|
add_conversation_member | messages:write | sensitive | Add a member to a GROUP conversation. |
create_conversation | messages:write | sensitive | Create a new conversation. |
forward_message | messages:write | sensitive | Forward a message’s content from a conversation to its other member, using the company token. |
get_messages | messages:read | read | List messages in a DM conversation, both directions (creator replies included). |
leave_conversation | messages:write | sensitive | Leave a GROUP conversation as the company. |
list_conversations | messages:read | read | List the company’s DM conversations ONLY - this is NOT the main inbox. |
react_to_message | messages:write | sensitive | Add an emoji reaction to a message in a conversation. |
rename_conversation | messages:write | sensitive | Rename a group conversation. |
send_message | messages:write | sensitive | Send a direct message to a creator. |
Oauth Settings
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_company | settings:read | read | Read the company profile (read-only view). |
get_company_billing | settings:read | read | Read the company’s invoicing/billing profile - the identity shown on the invoices it issues: company name, logo, email, phone, billing address, tax id and type, and brand color. |
get_settings | settings:read | read | Read the company’s API-visible settings (profile, contact, socials, signing). |
update_company_billing | settings:write | sensitive | Update the company’s invoicing/billing profile (company name, email, phone, billing address, tax id/type, brand color) shown on the invoices it issues, with a best-effort Stripe customer sync. |
update_settings | settings:write | sensitive | Update the company’s settings. |
Payouts
| Tool | Scope | Risk | What it does |
|---|---|---|---|
execute_payouts | payouts:write | sensitive | Execute (or dry-run) contract payouts for the listed contracts. |
get_payout_stats | payouts:read | read | Read the company wallet balance + lifetime payout summary. |
list_payouts | payouts:read | read | List completed/historical payouts - money ALREADY PAID - with a summary aggregate, filterable by status, type, creator, contract, date range, or reason. |
list_pending_payouts | payouts:read | read | List payouts that are pending/owed (what the company would pay next), with a summary aggregate. |
quick_pay | payouts:write | sensitive | Send a one-off quick payment to a creator (by email) for an ad-hoc amount or set of line items. |
Payouts (extended)
| Tool | Scope | Risk | What it does |
|---|---|---|---|
execute_custom_bonus | payouts:write | sensitive | Send a wallet-funded custom bonus to a creator for an arbitrary amount. |
execute_one_time_payout | payouts:write | sensitive | Send a wallet-funded one-time payout to a creator for an arbitrary amount. |
get_bonus_milestone_dates | payouts:read | read | Read the dates each bonus milestone was crossed for a contract, from daily-snapshot data. |
get_payout_breakdown | payouts:read | read | Read the payment-breakdown details for a payout of a contract (the components that make up the amount). |
get_payout_contracts_summary | payouts:read | read | Read the aggregate total-owed summary for the company: total owed, cycle totals, the continued-performance breakdown, and contract counts. |
ignore_payout_cycle | payouts:write | sensitive | Mark a payment cycle’s posts as cycle-skipped on a contract so they no longer count toward owed. |
list_payout_contracts | payouts:read | read | List the payout-table contracts for the company: each active contract with its owed-this-cycle amount, delivered/required posts, and status. |
recalculate_payout | payouts:write | sensitive | Recompute a single contract’s owed-this-cycle transfer row (amount + breakdown) from current posts/metrics. |
retry_reversed_payout | payouts:write | sensitive | Re-attempt a previously reversed payout, identified by its ledger-entry id. |
set_payout_start | payouts:write | sensitive | Set (or clear) a contract’s per-creator payout start date. |
Posts
| Tool | Scope | Risk | What it does |
|---|---|---|---|
bulk_set_post_analytics_tags | posts:write | write | Add, remove, or replace analytics tags across many posts at once. |
export_posts | posts:read | read | Get a download link for the company’s posts as a CSV export (optionally filtered). |
get_post | posts:read | read | Fetch a single tracked post by id, with its latest metrics. |
get_post_analytics_export_links | posts:read | read | Get auth-gated download links for the post-analytics CSV family, the same files the posts page exports: kind “daily” (default) = daily views per video AND daily engagement; “daily_views”; “daily_engagement”; “handles” = the unique creator handles behind the posts; “payout_eligible” = payout-eligible posts grouped by crosspost cluster; “all” = every kind. |
get_post_metrics | posts:read | read | Read a post’s daily metrics time-series (views/likes/comments/shares/bookmarks + daily deltas). |
get_post_rescrape_status | posts:read | read | Read the status of a queued post re-scrape (queued/running/succeeded/failed + progress + result). |
list_posts | posts:read | read | List the company’s tracked posts, optionally filtered by campaign, platform, creator, or date range. |
set_post_analytics_hidden | posts:write | write | Hide a post from analytics (excluded from analytics aggregates/exports) or unhide it. |
set_post_analytics_tags | posts:write | write | Replace, add, or remove a post’s analytics tags (free-form labels, max 50 × 60 chars). |
set_post_approval_status | posts:write | sensitive | Approve, reject, or clear the approval status of a post. |
set_post_deletion | posts:write | write | Mark a post as deleted (excluded from analytics + payout calculations) or clear that status. |
trigger_post_rescrape | posts:write | sensitive | SENSITIVE: queue a real external re-scrape of a contract’s posts (re-fetches live metrics from the source platforms). |
Quick-Pay
| Tool | Scope | Risk | What it does |
|---|---|---|---|
cancel_quickpay | quick-pay:write | sensitive | Cancel a pending Quick Pay / Claim Link payment (by its wallet ledger entry id) and refund the held amount back to the company wallet. |
cancel_quickpay_schedule | quick-pay:write | write | Cancel a recurring schedule (soft-delete: status becomes cancelled, no future runs fire). |
create_quickpay_claim_link | quick-pay:write | sensitive | Create a shareable claim link for a given amount that a recipient can redeem. |
create_quickpay_draft | quick-pay:write | write | Create a pending quick-pay draft (parent-agency only) with a list of recipients. |
create_quickpay_schedule | quick-pay:write | sensitive | Create a recurring payment schedule (weekly/biweekly/monthly) that will pay the listed recipients on each run. |
create_quickpay_template | quick-pay:write | write | Create a reusable quick-pay template (a named set of recipients). |
delete_quickpay_draft | quick-pay:write | write | Delete a pending quick-pay draft. |
delete_quickpay_template | quick-pay:write | write | Delete a quick-pay template. |
get_recent_recipients | quick-pay:read | read | List the 10 most recent unique quick-pay recipients for the company (rolled up from the wallet ledger). |
list_pending_quickpay | quick-pay:read | read | List pending quick-pay / claim-link payments waiting for an email address, with the net total owed. |
list_quickpay_drafts | quick-pay:read | read | List pending quick-pay drafts for the company (parent-agency accounts only). |
list_quickpay_schedules | quick-pay:read | read | List the company’s active and paused recurring quick-pay schedules (newest first). |
list_quickpay_templates | quick-pay:read | read | List the company’s quick-pay payment templates (reusable recipient sets). |
lookup_quickpay_user | quick-pay:read | read | Check whether a SideShift user exists for an email and return basic recipient info (name, profile picture). |
preview_quickpay | quick-pay:read | read | Preview (dry-run) a quick pay to a recipient BEFORE any money moves: validates the email + line items, resolves whether the recipient already has a SideShift account (vs. |
send_quickpay_draft | quick-pay:write | sensitive | Approve and SEND a pending draft: each recipient is paid as a real quick pay. |
update_quickpay_draft | quick-pay:write | write | Edit a pending quick-pay draft’s recipients. |
update_quickpay_schedule | quick-pay:write | sensitive | Update a recurring schedule (name, frequency, day, recipients, status, or requiresApproval). |
update_quickpay_template | quick-pay:write | write | Update a quick-pay template’s name and/or recipients. |
Recruit
| Tool | Scope | Risk | What it does |
|---|---|---|---|
find_creators_for_campaign | recruit:read | read | Browse SideShift’s creator marketplace to build a professional outreach shortlist for a campaign or creator-marketing job. |
get_bookmarked_recruits | recruit:read | read | Fetch the list of user IDs bookmarked for a job. |
get_creator_outreach_profile | recruit:read | read | Fetch one creator-marketplace candidate by ID using the same scanner-friendly professional projection as find_creators_for_campaign. |
get_recruit_candidate | recruit:read | read | LEGACY COMPATIBILITY TOOL: existing clients may keep calling this rich-profile operation, but agents MUST use get_creator_outreach_profile for ordinary outreach workflows. |
remove_creator_from_shortlist | recruit:write | write | Remove one creator-marketplace candidate from the shortlist for a specific SideShift job. |
search_recruit_students | recruit:read | read | LEGACY COMPATIBILITY TOOL: existing clients may keep calling this rich-profile operation, but agents handling ordinary creator-discovery requests MUST use find_creators_for_campaign instead. |
send_recruit_invite | recruit:write | sensitive | Send a recruitment invite to a candidate. |
shortlist_creator | recruit:write | write | Save one creator-marketplace candidate to the shortlist for a specific SideShift job. |
update_recruit_bookmark | recruit:write | write | Add or remove a recruit bookmark for a user/job pair. |
Settings
| Tool | Scope | Risk | What it does |
|---|---|---|---|
create_company | settings:write | sensitive | Create an agency SUBACCOUNT under your own company (the token tenant). Payment-first checkout (tier, interval, create_request_id → checkoutUrl; company created after payment) applies when agency platform billing lacks bound first-client coverage, or whenever freeClientId is already set. Legacy separateAgencySubs without platform billing may still create the first client immediately. |
get_agency_tree | settings:read | read | Fetch the token tenant and its direct subaccounts when the token is bound to an agency parent; a subaccount token cannot widen to its parent or siblings. |
invite_team_members | settings:write | sensitive | Invite team members to a company or copy existing members. |
join_companies | settings:write | write | Re-affirm the authenticated user’s membership of the token’s company. |
list_companies | settings:read | read | List the authenticated user’s accessible companies with Pro/plan status, agency relationships, and subscription info. |
sync_company_name | settings:write | write | Sync company name and logo to all campaigns, jobs, and creator experiences associated with the company. |
update_company_niche | settings:write | write | Update a company’s niche and propagate it to all associated jobs. |
update_signed_name | settings:write | write | Update a company’s signed name used for invoicing and contracts. |
Skills
| Tool | Scope | Risk | What it does |
|---|---|---|---|
invoke_skill | campaigns:read | read | Load a named SideShift skill: a multi-step procedure to follow for the rest of the turn. |
Support Channels
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_support_channel_messages | messages:read | read | List messages in a support channel - the PRIMARY employer↔creator conversation type (use list_support_channels to find the channel id; DM conversations use get_messages instead). |
list_inbox | messages:read | read | The company’s merged conversation inbox - START HERE for any ‘show my conversations / recent messages / who wrote to us’ request. |
list_support_channels | messages:read | read | List the company’s support channels - the PRIMARY employer↔creator conversation type (most creator communication happens here, not in DM conversations). |
send_support_channel_message | messages:write | sensitive | Send a new message in an existing SideShift support channel. |
Team
| Tool | Scope | Risk | What it does |
|---|---|---|---|
accept_invite | team:write | sensitive | Accept a team invitation by code. |
add_team_member | team:write | write | Add a user to the company’s team. |
create_team_invite | team:write | write | Create a new pending team invitation. |
get_invite_preview | team:read | read | Fetch a team invitation preview by code (public, no auth required). |
list_team_invites | team:read | read | List all pending team invitations for the company. |
list_team_members | team:read | read | List the authenticated company’s team members with roles, permissions, and email preferences. |
remove_team_member | team:write | write | Remove a user from the company’s team. |
send_team_invite | team:write | sensitive | Resend a team invitation email to a pending invitee. |
update_member_permissions | team:write | write | Update a team member’s role, permissions, and email preferences. |
Verifications
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_verification | verification:read | read | Get one identity verification by ID, including its current status and any required actions. |
Video Submissions
| Tool | Scope | Risk | What it does |
|---|---|---|---|
delete_video_submission | video-submissions:write | write | Delete a creator video submission and the posts it created. |
list_video_submissions | video-submissions:read | read | List creator video submissions for the company’s campaigns, optionally filtered by status, contract, campaign, or reviewable-only. |
review_video_submission | video-submissions:write | sensitive | Approve, reject, or request revisions on a creator video submission, with optional feedback. |
Wallet
| Tool | Scope | Risk | What it does |
|---|---|---|---|
get_agency_balance | wallet:read | read | Read aggregated wallet balance + pending payouts across the agency (parent company + subaccounts). |
get_connected_accounts_export_link | wallet:read | read | Get the auth-gated download link for the connected-accounts CSV: every account the company created through embedded finance (name, email, status, connected on, wallet balance, volume), plus total, the account count. |
get_payout_receipt_links | wallet:read | read | Get auth-gated PDF download links for wallet receipts: payout receipts (money paid to a creator — contract payouts, bonuses, one-time and Quick Pay payments) and deposit receipts (wallet top-ups). |
get_spending_report_links | wallet:read | read | Get auth-gated download links for the wallet spending report (CSV) and the wallet statement (PDF) over one period: pass start_date/end_date (ISO) or all_time; scope “payouts” (money out to creators, the default) or “all” (every transaction; the PDF statement is always all). |
get_wallet_balance | wallet:read | read | Read the company wallet balance (balance in cents and dollars, USD). |
get_wallet_summary | wallet:read | read | Read the company wallet available + pending balance summary (USD). |
list_wallet_ledger | wallet:read | read | List the company wallet ledger entries (top-ups, payouts, transfers) enriched with profiles, withdrawals, and pending-payment claim status. |
transfer_wallet_balance | wallet:write | sensitive | Move wallet funds between YOUR agency wallet and one of your OWN subaccount wallets - the classic agency flow of funding a subaccount before running its payouts, or sweeping a subaccount’s leftover balance back to the agency. |