{"data":{"version":1,"generated_at":"2026-11-10T15:48:36.709Z","source":"Top-Rated Team Premium LinkedIn API","stale":false,"plans":{"governed":{"id":"governed","name":"In-house","description":"","base_path":"/v1","auth_header":"X-API-KEY","operations":[]},"complete":{"id":"complete","name":"Top-Rated Team API","description":"The full LinkedIn surface -- Classic and Recruiter and Sales Navigator search, messaging, posts, comments, reactions, company pages, jobs and the Magic Route. $9 per seat per month -- a seat is one LinkedIn account, and one WhatsApp, LINE, X and ChatWoot account in project rooms -- falling to $7 from 100 seats after a 30-day trial. The same key also reaches a shared inbox for WhatsApp, Telegram, email, SMS, LINE, TikTok, Instagram, website chat and custom channels (/inbox/v1), and the organization's own X account (/x/v1).","base_path":"/linkedin","auth_header":"X-API-KEY","operations":[{"id":"get_asana_v1_connections","method":"GET","path":"/asana/v1/connections","group":"asana","scope":null,"path_params":[],"summary":"The Asana accounts this organization connected, with the connection_id every other call names and the label the member sees.","surface":"native"},{"id":"delete_asana_v1_connections_by_connection_id","method":"DELETE","path":"/asana/v1/connections/{connection_id}","group":"asana","scope":null,"path_params":["connection_id"],"summary":"Let go of an Asana connection: its token is forgotten and every room that kept its tasks there stops. Nothing in Asana is deleted.","surface":"native"},{"id":"get_asana_v1_connections_by_connection_id_projects","method":"GET","path":"/asana/v1/connections/{connection_id}/projects","group":"asana","scope":null,"path_params":["connection_id"],"summary":"The projects this connection can reach, with the project_id every task call names. Asked of Asana each time, so one added there turns up here.","surface":"native"},{"id":"get_asana_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"GET","path":"/asana/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"asana","scope":null,"path_params":["connection_id","project_id"],"summary":"The tasks in one project: with no since, the ones that are not done; with since (milliseconds), the ones Asana changed after it, oldest first. Each carries task_id, title, notes, status (open, doing or done), assignee, due and updated_at.","surface":"native"},{"id":"post_asana_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"POST","path":"/asana/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"asana","scope":null,"path_params":["connection_id","project_id"],"summary":"Make a task in one project: title, and optionally notes, status (open, doing or done), assignee and due (YYYY-MM-DD). It is created by the member whose token this connection is.","surface":"native"},{"id":"patch_asana_v1_connections_by_connection_id_projects_by_project_id_tasks_by_task_id","method":"PATCH","path":"/asana/v1/connections/{connection_id}/projects/{project_id}/tasks/{task_id}","group":"asana","scope":null,"path_params":["connection_id","project_id","task_id"],"summary":"Change a task Asana already has: the same fields, each one optional, and what is left out stays as it is. A room keeping its tasks in this project sees the change on its next round.","surface":"native"},{"id":"post_asana_v1_connections_link","method":"POST","path":"/asana/v1/connections/link","group":"asana","scope":null,"path_params":[],"summary":"A one-hour link to the page where a member pastes a personal access token: give it to them. The token never comes through here, and the connection appears on this API once they have finished.","surface":"native"},{"id":"get_linkedin_billing","method":"GET","path":"/linkedin/billing","group":"billing","scope":null,"path_params":[],"summary":"Billing: whether a card is asked for at all, card_on_file, the Stripe status, and needs_checkout (whether paying starts with a checkout or Stripe's billing page).","surface":"native"},{"id":"post_linkedin_billing_checkout","method":"POST","path":"/linkedin/billing/checkout","group":"billing","scope":null,"path_params":[],"summary":"A Stripe checkout link to subscribe: give the url to the user, who enters their card there, never in the chat.","surface":"native"},{"id":"post_linkedin_billing_portal","method":"POST","path":"/linkedin/billing/portal","group":"billing","scope":null,"path_params":[],"summary":"A link to Stripe's billing page, to change the card, see invoices or cancel: give the url to the user.","surface":"native"},{"id":"post_linkedin_plan_subscribe","method":"POST","path":"/linkedin/plan/subscribe","group":"billing","scope":null,"path_params":[],"summary":"Start the 30-day trial, once per organization; afterwards it answers the plan as it stands.","surface":"native"},{"id":"get_linkedin_plan_subscription","method":"GET","path":"/linkedin/plan/subscription","group":"billing","scope":null,"path_params":[],"summary":"The organization's Top-Rated Team API plan: status (none, trial, active, past_due, expired, canceled, comped), when the trial ends, the price, seats (how many are billed: one seat covers a LinkedIn account and one account of each channel that takes a seat) and seat_accounts (how many of each there are).","surface":"native"},{"id":"get_booking_v1_pages","method":"GET","path":"/booking/v1/pages","group":"booking","scope":null,"path_params":[],"summary":"The organization's booking pages: each member's slug, url, title, rules, meeting_url, enabled, calendar (kind google or shared, account, problem) and calls coming up; share_with is the address a calendar is shared with, google whether Google sign-in is offered.","surface":"native"},{"id":"post_booking_v1_pages","method":"POST","path":"/booking/v1/pages","group":"booking","scope":null,"path_params":[],"summary":"Make a member's booking page, or change theirs: member_email, and any of slug, title, host_name, minutes (15, 20, 30, 45, 60, 90), days (0 Sunday to 6), day_start and day_end (HH:MM), time_zone, notice_hours, horizon_days, meeting_url, enabled.","surface":"native"},{"id":"get_booking_v1_pages_by_slug","method":"GET","path":"/booking/v1/pages/{slug}","group":"booking","scope":null,"path_params":["slug"],"summary":"One booking page, with its calls coming up (code, start, end, email, name, meetUrl).","surface":"native"},{"id":"patch_booking_v1_pages_by_slug","method":"PATCH","path":"/booking/v1/pages/{slug}","group":"booking","scope":null,"path_params":["slug"],"summary":"Change a booking page: any of slug, title, host_name, minutes, days, day_start, day_end, time_zone, notice_hours, horizon_days, meeting_url, enabled.","surface":"native"},{"id":"delete_booking_v1_pages_by_slug_calendar","method":"DELETE","path":"/booking/v1/pages/{slug}/calendar","group":"booking","scope":null,"path_params":["slug"],"summary":"Unlink the page's calendar (and revoke Google's grant); nobody can book until one is linked again.","surface":"native"},{"id":"get_booking_v1_pages_by_slug_calls","method":"GET","path":"/booking/v1/pages/{slug}/calls","group":"booking","scope":null,"path_params":["slug"],"summary":"The calls coming up on a page, soonest first, with each visitor's email, name and time zone.","surface":"native"},{"id":"post_booking_v1_pages_by_slug_calls","method":"POST","path":"/booking/v1/pages/{slug}/calls","group":"booking","scope":null,"path_params":["slug"],"summary":"Book a call on a page for someone: start (one of the free times), email, name, visitorTimeZone, lang. They get the invite. Ask the user first.","surface":"native"},{"id":"post_booking_v1_pages_by_slug_calls_by_code_cancel","method":"POST","path":"/booking/v1/pages/{slug}/calls/{code}/cancel","group":"booking","scope":null,"path_params":["slug","code"],"summary":"Cancel a call; the visitor is told. Ask the user first.","surface":"native"},{"id":"post_booking_v1_pages_by_slug_calls_by_code_move","method":"POST","path":"/booking/v1/pages/{slug}/calls/{code}/move","group":"booking","scope":null,"path_params":["slug","code"],"summary":"Move a call to another free time: start. The visitor gets the moved invite.","surface":"native"},{"id":"post_booking_v1_pages_by_slug_google","method":"POST","path":"/booking/v1/pages/{slug}/google","group":"booking","scope":null,"path_params":["slug"],"summary":"A link for the page's member to sign in with Google and link their own calendar, so Google sends each invite with a Meet link: give the url to that member only. 503 unconfigured where Google sign-in is not offered: share instead.","surface":"native"},{"id":"put_booking_v1_pages_by_slug_shared","method":"PUT","path":"/booking/v1/pages/{slug}/shared","group":"booking","scope":null,"path_params":["slug"],"summary":"Link a Google Calendar its member shared with the share_with address, with Make changes to events: calendar_id (from the calendar's settings, Integrate calendar). 409 not_shared or read_only says what is missing.","surface":"native"},{"id":"get_booking_v1_pages_by_slug_slots","method":"GET","path":"/booking/v1/pages/{slug}/slots","group":"booking","scope":null,"path_params":["slug"],"summary":"The page's free times, by day, as UTC instants, with its time_zone and call length.","surface":"native"},{"id":"get_brand_mine","method":"GET","path":"/brand/mine","group":"brand","scope":null,"path_params":[],"summary":"The organization's white label: brand (slug, domain, productName, tagline, supportEmail, website, logoUrl, accentColor, planNames, expose, copy, mcp, theme, readyMade, services, card), live, stripe and google (whether set up), mail, tenants, offered (whether it may have one), own_host, cname_target and dns.","surface":"native"},{"id":"put_brand_mine","method":"PUT","path":"/brand/mine","group":"brand","scope":null,"path_params":[],"summary":"Create or change the white label: send the whole brand as GET /brand/mine shows it, with your changes (productName is required; slug, domain, colours, words, copy for the landing, terms and privacy pages, which APIs it exposes, its MCP scope). Its Stripe keys and Google app secret go in on the white-label page: POST /linkedin/connect/link {action: brand} gives the link.","surface":"native"},{"id":"get_brand_mine_google_ads","method":"GET","path":"/brand/mine/google-ads","group":"brand","scope":null,"path_params":[],"summary":"The Google Ads this organization's agents read: api (whether the server has the credentials at all), manager_id (the manager account every call goes through), roots (the accounts it reaches Google through, each with its link request's status), assignments (which account each customer reads, with may_change, review and user_id), customers (the organizations an account may be assigned to) and asks (organizations that named an account of their own and asked these experts to look after it, each with where its link stands).","surface":"native"},{"id":"delete_brand_mine_google_ads_asks_by_id","method":"DELETE","path":"/brand/mine/google-ads/asks/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Say no to an organization that asked these experts to look after an account. It is simply forgotten; nothing of theirs is touched. Ask the user first.","surface":"native"},{"id":"post_brand_mine_google_ads_assignments","method":"POST","path":"/brand/mine/google-ads/assignments","group":"brand","scope":null,"path_params":[],"summary":"Let one organization's agents read one Google Ads account: {customer_id, org_id, may_change, ad_grants, user_id}. The account must be a linked root or under one, checked against Google. may_change false assigns it for READING alone, which is where to start on a live account; review true lets that organization's agents DRAFT changes there while this organization's experts are the only ones who may apply them, which is how an account is looked after without its owners changing anything themselves; ad_grants only says it is an Ad Grants account, and is not the permission. user_id holds it to one person in that organization -- and once any account there is named to somebody, that organization's accounts are read by name only, which is what stops one customer reading another's.","surface":"native"},{"id":"delete_brand_mine_google_ads_assignments_by_cid_by_org","method":"DELETE","path":"/brand/mine/google-ads/assignments/{cid}/{org}","group":"brand","scope":null,"path_params":["cid","org"],"summary":"Stop that organization's agents reading that account.","surface":"native"},{"id":"get_brand_mine_google_ads_changes","method":"GET","path":"/brand/mine/google-ads/changes","group":"brand","scope":null,"path_params":[],"summary":"The changes drafted in the accounts this organization's experts look after (assignments with review on), newest first: id, the organization it is for, the account, who drafted it, the one-line summary, the operations in full, its status and whether it can still be put back. Nothing here has happened: a pending one is waiting on an expert.","surface":"native"},{"id":"post_brand_mine_google_ads_changes_by_id","method":"POST","path":"/brand/mine/google-ads/changes/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Verify one of those and make it real, or drop it: {apply: true or false}. Read the summary and the operations to the user first and have them say so: this is the call that touches somebody else's live advertising and spend.","surface":"native"},{"id":"post_brand_mine_google_ads_changes_by_id_revert","method":"POST","path":"/brand/mine/google-ads/changes/{id}/revert","group":"brand","scope":null,"path_params":["id"],"summary":"Put back a change this organization's experts applied in an account they look after, using what was written down when it ran. It goes in as a change of its own. Ask the user first.","surface":"native"},{"id":"get_brand_mine_google_ads_prompts","method":"GET","path":"/brand/mine/google-ads/prompts","group":"brand","scope":null,"path_params":[],"summary":"The prompts this organization's experts run the Google Ads agent with, in one language: ?lang=en, ru or uk. Each has an id, kind (setup, manage, optimise, repair, report), title, body, whether it is shipped with the product and whether this organization has rewritten it.","surface":"native"},{"id":"post_brand_mine_google_ads_prompts","method":"POST","path":"/brand/mine/google-ads/prompts","group":"brand","scope":null,"path_params":[],"summary":"Write a prompt of this organization's own: {title, body, lang, kind}. It sits beside the shipped set.","surface":"native"},{"id":"delete_brand_mine_google_ads_prompts_by_id","method":"DELETE","path":"/brand/mine/google-ads/prompts/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Drop a prompt: an edit of a shipped one goes back to the words it came with; one of this organization's own goes altogether.","surface":"native"},{"id":"put_brand_mine_google_ads_prompts_by_id","method":"PUT","path":"/brand/mine/google-ads/prompts/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Rewrite a prompt: {title, body, lang}. Given a shipped prompt's id this keeps the shipped words underneath, so dropping the edit brings them back; an edit is made in one language and leaves the others as they were.","surface":"native"},{"id":"post_brand_mine_google_ads_roots","method":"POST","path":"/brand/mine/google-ads/roots","group":"brand","scope":null,"path_params":[],"summary":"Give the manager account, or the one account, this organization reaches Google through: {customer_id} as ten digits. It is recorded as requested; an account not already under our manager is sent a manager link, which somebody accepts in Google Ads, and staff mark it linked. Nothing is read until it is linked AND an account is assigned.","surface":"native"},{"id":"delete_brand_mine_google_ads_roots_by_id","method":"DELETE","path":"/brand/mine/google-ads/roots/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Remove one of those accounts and every assignment made under it. The agents stop reading them at once.","surface":"native"},{"id":"delete_brand_mine_images_by_kind","method":"DELETE","path":"/brand/mine/images/{kind}","group":"brand","scope":null,"path_params":["kind"],"summary":"Remove an uploaded picture: kind logo, card-logo or card.","surface":"native"},{"id":"post_brand_mine_images_by_kind_base64","method":"POST","path":"/brand/mine/images/{kind}/base64","group":"brand","scope":null,"path_params":["kind"],"summary":"Upload a picture: kind logo, card-logo (its share card's own logo) or card (a whole share card of its own); content_base64 (PNG, JPEG or SVG in base64, up to 3 MB).","surface":"native"},{"id":"delete_brand_mine_mail","method":"DELETE","path":"/brand/mine/mail","group":"brand","scope":null,"path_params":[],"summary":"Stop sending from the brand's own domain; its email goes out from the shared address again.","surface":"native"},{"id":"put_brand_mine_mail","method":"PUT","path":"/brand/mine/mail","group":"brand","scope":null,"path_params":[],"summary":"Send the brand's email from its own domain: {domain, local_part}. Answers the DNS records to add at the domain's host; then POST /brand/mine/mail/check.","surface":"native"},{"id":"post_brand_mine_mail_check","method":"POST","path":"/brand/mine/mail/check","group":"brand","scope":null,"path_params":[],"summary":"Ask whether the brand's sending domain is verified yet, after its DNS records were added.","surface":"native"},{"id":"get_brand_mine_own","method":"GET","path":"/brand/mine/own","group":"brand","scope":null,"path_params":[],"summary":"The brand's OWN API: hidden (operations of ours it does not show its customers, as plan:operation_id refs), endpoints (the ones it wrote itself, each with its id, method, path, served_at, summary, group, input, steps and whether it is hidden) and limits. A brand resells this API under its own name, and these two are how it makes that API its own.","surface":"native"},{"id":"delete_brand_mine_own_endpoints_by_id","method":"DELETE","path":"/brand/mine/own/endpoints/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Remove one of this organization's own endpoints for good. To take one off the list while it keeps answering, PUT it with hidden true instead.","surface":"native"},{"id":"put_brand_mine_own_endpoints_by_id","method":"PUT","path":"/brand/mine/own/endpoints/{id}","group":"brand","scope":null,"path_params":["id"],"summary":"Write one of this organization's own endpoints, or replace it: {method, path, summary, group, input, steps, answer, hidden}. It is served at <base><path> on this organization's own API -- on this host with its own key, and on its white label's domain where it has one -- with nothing of ours in front of it, and appears in its tool list beside ours; path's first segment may not be one we already use, and the refusal names it. steps are call (op: 'METHOD /path' of an operation this brand offers, with: arguments, into: a name to keep the answer under), if (when, then, else), each (in, as, steps), set (name, to) and stop (answer). A value is JSON or {$: 'a.path'} read from the run so far; the caller's arguments are under in. Conditions are {is, eq|ne|gt|lt|has|empty} and {all|any|not}. One run may call 25 operations and loop 50 times.","surface":"native"},{"id":"put_brand_mine_own_hidden","method":"PUT","path":"/brand/mine/own/hidden","group":"brand","scope":null,"path_params":[],"summary":"Replace which of our operations this organization's own API does not show: {hidden: ['complete:post_a_comment', ...]}, the whole list, as GET /brand/mine/own gives it. Hiding takes an operation out of the tool list, manifest and reference; its route still answers, so a customer already calling it is not broken by a sentence typed into a chat.","surface":"native"},{"id":"post_brand_mine_suggest","method":"POST","path":"/brand/mine/suggest","group":"brand","scope":null,"path_params":[],"summary":"Read a website and suggest the white label's name, tagline, colour and logo from it: {website}. Nothing is saved.","surface":"native"},{"id":"delete_brand_mine_theme","method":"DELETE","path":"/brand/mine/theme","group":"brand","scope":null,"path_params":[],"summary":"Put the brand's pages and rooms back to the stylesheet's own look. The accent colour, the logo and the words are not a theme and are left as they are.","surface":"native"},{"id":"put_brand_mine_theme","method":"PUT","path":"/brand/mine/theme","group":"brand","scope":null,"path_params":[],"summary":"Redesign every page this brand serves, and the project rooms its customers work in, in one call: {theme}. The stylesheet behind all of them is built on tokens, so a theme sets those tokens and the whole product changes at once. theme.mode is light, dark or system. theme.colors takes accent, accent_dark, accent_soft (the tint behind an accent), accent_line, on_accent (what sits ON the accent - set it dark when the accent is pale), bg, bg_sunken, surface (cards and panels), text, muted, border and border_strong, each #rrggbb. theme.font takes body and heading as font stacks (family names only; load a face of your own with theme.css). theme.radius takes sm, md and lg in px. theme.layout takes page_width and header_height in px. theme.css is CSS of the brand's own for anything the names above cannot say - no @import, no url() other than https or a data: image. Send theme null to put every page back to the stylesheet's own look. Read the current one from GET /brand/mine.","surface":"native"},{"id":"get_linkedin_campaigns","method":"GET","path":"/linkedin/campaigns","group":"campaigns","scope":null,"path_params":[],"summary":"The organization's done-for-you LinkedIn campaigns, newest first: each one's kind (boost, content or topvoice), the connected account it runs as, its state (draft, running, paused, stalled, done), its settings, when it next acts and why it stalled if it did.","surface":"native"},{"id":"post_linkedin_campaigns","method":"POST","path":"/linkedin/campaigns","group":"campaigns","scope":null,"path_params":[],"summary":"Start a done-for-you campaign. Send kind (boost, content or topvoice), name, account_id (one of the organization's connected LinkedIn accounts) and settings. A boost campaign takes keywords, people or companies to watch and any of react, comment, follow and invite, with per_day up to 40; a topvoice campaign takes a topic whose watched voices it answers (or voices to name them outright), top, within_hours and the same four actions; a content campaign takes a brief, an optional voice and topics, posts_per_week up to 14, hours, timezone, approve (manual or auto, manual by default) and as_company. Add key_id to name which of the organization's own AI keys writes the words, room_id to have it report into a project room, and state: running to have it begin at once.","surface":"native"},{"id":"delete_linkedin_campaigns_by_campaign_id","method":"DELETE","path":"/linkedin/campaigns/{campaign_id}","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"Delete a campaign and everything it recorded. What it already did on LinkedIn stays on LinkedIn: this removes our side only.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id","method":"GET","path":"/linkedin/campaigns/{campaign_id}","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"One campaign with its settings, its state and its figures so far.","surface":"native"},{"id":"patch_linkedin_campaigns_by_campaign_id","method":"PATCH","path":"/linkedin/campaigns/{campaign_id}","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"Change a campaign: its name, account_id, settings, key_id, model, room_id, or its state. state: running starts or resumes it, paused stops it without losing anything, done finishes it. A stalled campaign is restarted the same way, once the reason in last_error is fixed.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id_actions","method":"GET","path":"/linkedin/campaigns/{campaign_id}/actions","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"What a boosting campaign did, newest first: the kind (react, comment, follow, invite, visit), whether it went through, the post, its author, and the comment or note that was written. query.since is a time in milliseconds, query.limit up to 200.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id_people","method":"GET","path":"/linkedin/campaigns/{campaign_id}/people","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"The people a campaign has met, newest first: query.source reached for prospects it engaged with, reactor and commenter for the people who reacted or commented on the member's own posts, and no source for all of them. Each has their LinkedIn id, name, headline, profile address, how many times they were seen and the post that brought them.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id_performance","method":"GET","path":"/linkedin/campaigns/{campaign_id}/performance","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"How a campaign is doing: actions taken by kind and how many went through, posts published, the reactions, comments and reposts those posts earned, how many people it reached and how many came back to the member, over the last 7 and 30 days and in total.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id_posts","method":"GET","path":"/linkedin/campaigns/{campaign_id}/posts","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"A content campaign's posts: drafts waiting for approval, approved posts with the time they go out, and published ones with what they earned. query.state draft, approved, published, failed or skipped.","surface":"native"},{"id":"post_linkedin_campaigns_by_campaign_id_posts","method":"POST","path":"/linkedin/campaigns/{campaign_id}/posts","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"Add a post to a content campaign. Send text to write it yourself, or draft: true to have the organization's own AI write one from the campaign's brief. scheduled_at is a time in milliseconds; without one the campaign puts it in the next free slot. It is a draft until somebody approves it.","surface":"native"},{"id":"delete_linkedin_campaigns_by_campaign_id_posts_by_post_id","method":"DELETE","path":"/linkedin/campaigns/{campaign_id}/posts/{post_id}","group":"campaigns","scope":null,"path_params":["campaign_id","post_id"],"summary":"Delete a campaign post. One already published is removed from the campaign only; deleting it from LinkedIn is DELETE /linkedin/v2/{account_id}/posts/{post_id}.","surface":"native"},{"id":"patch_linkedin_campaigns_by_campaign_id_posts_by_post_id","method":"PATCH","path":"/linkedin/campaigns/{campaign_id}/posts/{post_id}","group":"campaigns","scope":null,"path_params":["campaign_id","post_id"],"summary":"Edit a post before it goes out, move it (scheduled_at), approve it (state: approved) or set it aside (state: skipped). Approving is what lets it be published, so never approve a post the member has not read.","surface":"native"},{"id":"get_linkedin_campaigns_by_campaign_id_posts_by_post_id_creative","method":"GET","path":"/linkedin/campaigns/{campaign_id}/posts/{post_id}/creative","group":"campaigns","scope":null,"path_params":["campaign_id","post_id"],"summary":"The brief for this post's visual, for YOU to carry out: the exact prompts, sizes and bounds for every step, in order, and who does each. Top-Rated Team runs no image model and no renderer - the description, the image, the palette reading, the slides and the render are all yours, on the member's own allowance; only publishing is ours. query.kind image, carousel or video (the campaign's default otherwise), query.format square, portrait or landscape. Read the stage first: for a carousel or a video the image you make is the BACKGROUND under text that is drawn on top, so it must be quiet and carry no words of its own. Everything in it is a default the member can change, and their own creative instructions override it.","surface":"native"},{"id":"post_linkedin_campaigns_by_campaign_id_run","method":"POST","path":"/linkedin/campaigns/{campaign_id}/run","group":"campaigns","scope":null,"path_params":["campaign_id"],"summary":"Make the campaign take its next step now instead of waiting for its turn, and answer what it did. Useful to see a new campaign work, and to retry one that stalled.","surface":"native"},{"id":"get_linkedin_setup","method":"GET","path":"/linkedin/setup","group":"campaigns","scope":null,"path_params":[],"summary":"What this organization still has to do before its LinkedIn is actually working for it, and the one call that does the next bit. Answers ready, next and steps: connect a LinkedIn account; add the organization's own AI key (which goes in on a page, never through you); start a content campaign so the account posts regularly; start a boost or Top Voices campaign so the right people see it; open a project room and point the campaigns at it; connect the channels the answers come back on; set the campaigns running. Each step says whether it is done, why it matters, and the exact call to make, worked out from what this organization actually has. A step that reads unknown is one this deployment cannot see either way - never treat it as done. Call this at the start of a conversation about setting anything up, and again after each step.","surface":"native"},{"id":"get_linkedin_topvoices","method":"GET","path":"/linkedin/topvoices","group":"campaigns","scope":null,"path_params":[],"summary":"Find the LinkedIn top voices on a topic, as one of the organization's connected accounts. Send query.account_id and query.topic, and query.limit up to 50. Each one comes back with a score out of 100 and the parts it is made of - reach (how many follow them), resonance (what a post of theirs earns), conversation (how much of that is comments rather than taps) and cadence (how regularly they publish) - along with the figures behind them and whether this organization already watches them. LinkedIn's own Top Voice badge is reported as badge when the profile exposes it; badge null means it did not say, never that there is none.","surface":"native"},{"id":"get_linkedin_topvoices_by_person_id","method":"GET","path":"/linkedin/topvoices/{person_id}","group":"campaigns","scope":null,"path_params":["person_id"],"summary":"One person, measured now: their score and its parts, their followers, what their recent posts earned, how often they publish, LinkedIn's badge where the profile exposes it, and the topics this organization watches them under. Send query.account_id.","surface":"native"},{"id":"get_linkedin_topvoices_by_person_id_posts","method":"GET","path":"/linkedin/topvoices/{person_id}/posts","group":"campaigns","scope":null,"path_params":["person_id"],"summary":"What a person published lately, newest first, with each post's reactions, comments and reposts and when it went out - which is what decides whether answering it now would still be read. Send query.account_id and query.limit up to 50.","surface":"native"},{"id":"post_linkedin_topvoices_campaigns","method":"POST","path":"/linkedin/topvoices/campaigns","group":"campaigns","scope":null,"path_params":[],"summary":"Start a campaign that answers a topic's top voices while their posts are still new. Send topic, name and account_id; add discover true to find and watch that topic's voices first (watch sets how many, 10 by default), and settings for the engagement - any of react, comment, follow and invite, comment_brief, language, per_day up to 40, within_hours up to 168 and top. Add key_id to name which of the organization's own AI keys writes the comments, room_id to have it report into a project room, and state running to have it begin at once. Everything after this - pausing it, its figures, the people it met - is the campaign surface at /linkedin/campaigns.","surface":"native"},{"id":"get_linkedin_topvoices_standing","method":"GET","path":"/linkedin/topvoices/standing","group":"campaigns","scope":null,"path_params":[],"summary":"Where the member's own account stands beside the voices it watches: their score and its four parts, the figures behind it, the share of the field they are above on each part, the middle of that field to aim at, and the single part they are furthest behind on. Send query.account_id, and query.topic to compare against one topic's voices rather than all of them.","surface":"native"},{"id":"get_linkedin_topvoices_watchlist","method":"GET","path":"/linkedin/topvoices/watchlist","group":"campaigns","scope":null,"path_params":[],"summary":"The voices this organization watches, highest-scoring first, with the topic each is watched under. query.topic narrows it to one topic and query.limit up to 500. The meta lists every topic anybody is watched under.","surface":"native"},{"id":"post_linkedin_topvoices_watchlist","method":"POST","path":"/linkedin/topvoices/watchlist","group":"campaigns","scope":null,"path_params":[],"summary":"Watch people under a topic. Send topic, account_id (the connected account to read them as) and person_ids, up to 20 vanity slugs or member ids; the first 12 are measured in one call. Each one that could be read comes back measured and scored, and the meta names the ones LinkedIn refused with the reason. Watching the same person again under the same topic measures them afresh rather than adding a second row.","surface":"native"},{"id":"delete_linkedin_topvoices_watchlist_by_person_id","method":"DELETE","path":"/linkedin/topvoices/watchlist/{person_id}","group":"campaigns","scope":null,"path_params":["person_id"],"summary":"Stop watching a person. query.topic removes them from that topic only; without it they come off every topic this organization watches them under. Answers 404 if they were not on the list.","surface":"native"},{"id":"get_linkedin_v2_by_account_id_chats","method":"GET","path":"/linkedin/v2/{account_id}/chats","group":"chats","scope":null,"path_params":["account_id"],"summary":"List all Chats","surface":"upstream"},{"id":"delete_linkedin_v2_by_account_id_chats_by_chat_id","method":"DELETE","path":"/linkedin/v2/{account_id}/chats/{chat_id}","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Delete a Chat","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Get a Chat","surface":"upstream"},{"id":"patch_linkedin_v2_by_account_id_chats_by_chat_id","method":"PATCH","path":"/linkedin/v2/{account_id}/chats/{chat_id}","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Update a Chat","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_composing","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/composing","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Set Composing Status","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_messages","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"List all Chat Messages","surface":"upstream"},{"id":"delete_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id","method":"DELETE","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Delete a Message","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Get a Message","surface":"upstream"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_attachments_by_attachment_id","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/attachments/{attachment_id}","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id","attachment_id"],"summary":"Get a Message Attachment","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_forward","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/forward","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Forward a Message","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_modify","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/modify","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Modify a Message","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_pin","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/pin","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Pin a Message","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_reactions","method":"DELETE","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/reactions","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Remove a Message Reaction","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_reactions","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/reactions","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"List all Message's Reactions","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_reactions","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/reactions","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Add a Message Reaction","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_by_message_id_read","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/{message_id}/read","group":"chats","scope":null,"path_params":["account_id","chat_id","message_id"],"summary":"Read a Message","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_messages_send","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/messages/send","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Send a Message","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_participants","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/participants","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"List all Chat Participants","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_chats_by_chat_id_participants","method":"POST","path":"/linkedin/v2/{account_id}/chats/{chat_id}/participants","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Add a Chat Participant","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_chats_by_chat_id_participants_by_user_id","method":"DELETE","path":"/linkedin/v2/{account_id}/chats/{chat_id}/participants/{user_id}","group":"chats","scope":null,"path_params":["account_id","chat_id","user_id"],"summary":"Remove a Chat Participant","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_chats_by_chat_id_picture","method":"GET","path":"/linkedin/v2/{account_id}/chats/{chat_id}/picture","group":"chats","scope":null,"path_params":["account_id","chat_id"],"summary":"Get a Chat Picture","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_chats_send","method":"POST","path":"/linkedin/v2/{account_id}/chats/send","group":"chats","scope":null,"path_params":["account_id"],"summary":"Start a Chat","surface":"upstream","limit":"inmail"},{"id":"get_chatwoot_v1_connections","method":"GET","path":"/chatwoot/v1/connections","group":"chatwoot","scope":null,"path_params":[],"summary":"The ChatWoot accounts this organization connected, with the connection_id every other call names and the address each one answers at.","surface":"native"},{"id":"delete_chatwoot_v1_connections_by_connection_id","method":"DELETE","path":"/chatwoot/v1/connections/{connection_id}","group":"chatwoot","scope":null,"path_params":["connection_id"],"summary":"Let go of a ChatWoot connection: its token is forgotten, the webhook it added is removed, and every room linked through it stops. Nothing in ChatWoot is deleted.","surface":"native"},{"id":"get_chatwoot_v1_connections_by_connection_id_contacts_by_contact_id","method":"GET","path":"/chatwoot/v1/connections/{connection_id}/contacts/{contact_id}","group":"chatwoot","scope":null,"path_params":["connection_id","contact_id"],"summary":"The customer a conversation is with: their name, email, phone and the address ChatWoot knows them by.","surface":"native"},{"id":"get_chatwoot_v1_connections_by_connection_id_conversations","method":"GET","path":"/chatwoot/v1/connections/{connection_id}/conversations","group":"chatwoot","scope":null,"path_params":["connection_id"],"summary":"The account's conversations, newest activity first: status (open, pending, snoozed or resolved, open by default), inbox_id to narrow it to one inbox, and page, 1 upwards.","surface":"native"},{"id":"get_chatwoot_v1_connections_by_connection_id_conversations_by_conversation_id","method":"GET","path":"/chatwoot/v1/connections/{connection_id}/conversations/{conversation_id}","group":"chatwoot","scope":null,"path_params":["connection_id","conversation_id"],"summary":"One conversation: its status, its inbox, the contact it is with, the agent it is assigned to and when it was last active.","surface":"native"},{"id":"patch_chatwoot_v1_connections_by_connection_id_conversations_by_conversation_id","method":"PATCH","path":"/chatwoot/v1/connections/{connection_id}/conversations/{conversation_id}","group":"chatwoot","scope":null,"path_params":["connection_id","conversation_id"],"summary":"Change a conversation: status, one of open, pending, snoozed or resolved. Nothing else is changed.","surface":"native"},{"id":"get_chatwoot_v1_connections_by_connection_id_conversations_by_conversation_id_messages","method":"GET","path":"/chatwoot/v1/connections/{connection_id}/conversations/{conversation_id}/messages","group":"chatwoot","scope":null,"path_params":["connection_id","conversation_id"],"summary":"A conversation's messages, oldest first, with who wrote each and whether it came in or went out. Private notes and ChatWoot's own activity lines are left out.","surface":"native"},{"id":"post_chatwoot_v1_connections_by_connection_id_conversations_by_conversation_id_messages","method":"POST","path":"/chatwoot/v1/connections/{connection_id}/conversations/{conversation_id}/messages","group":"chatwoot","scope":null,"path_params":["connection_id","conversation_id"],"summary":"Answer a conversation as the connected user: content, up to 15,000 characters, and private true to leave a note the customer does not see. The customer sees anything else.","surface":"native"},{"id":"get_chatwoot_v1_connections_by_connection_id_inboxes","method":"GET","path":"/chatwoot/v1/connections/{connection_id}/inboxes","group":"chatwoot","scope":null,"path_params":["connection_id"],"summary":"The inboxes of that ChatWoot account, with the inbox_id a conversation names and what channel each one is.","surface":"native"},{"id":"post_chatwoot_v1_connections_link","method":"POST","path":"/chatwoot/v1/connections/link","group":"chatwoot","scope":null,"path_params":[],"summary":"A one-hour link to the page where a member pastes their ChatWoot dashboard address and an administrator token: give it to them. The token never comes through here, and the connection appears on this API once they have finished.","surface":"native"},{"id":"get_clickup_v1_connections","method":"GET","path":"/clickup/v1/connections","group":"clickup","scope":null,"path_params":[],"summary":"The ClickUp accounts this organization connected, with the connection_id every other call names and the label the member sees.","surface":"native"},{"id":"delete_clickup_v1_connections_by_connection_id","method":"DELETE","path":"/clickup/v1/connections/{connection_id}","group":"clickup","scope":null,"path_params":["connection_id"],"summary":"Let go of a ClickUp connection: its token is forgotten and every room that kept its tasks there stops. Nothing in ClickUp is deleted.","surface":"native"},{"id":"get_clickup_v1_connections_by_connection_id_projects","method":"GET","path":"/clickup/v1/connections/{connection_id}/projects","group":"clickup","scope":null,"path_params":["connection_id"],"summary":"The lists this connection can reach, with the project_id every task call names. Asked of ClickUp each time, so one added there turns up here.","surface":"native"},{"id":"get_clickup_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"GET","path":"/clickup/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"clickup","scope":null,"path_params":["connection_id","project_id"],"summary":"The tasks in one list: with no since, the ones that are not done; with since (milliseconds), the ones ClickUp changed after it, oldest first. Each carries task_id, title, notes, status (open, doing or done), assignee, due and updated_at.","surface":"native"},{"id":"post_clickup_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"POST","path":"/clickup/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"clickup","scope":null,"path_params":["connection_id","project_id"],"summary":"Make a task in one list: title, and optionally notes, status (open, doing or done), assignee and due (YYYY-MM-DD). It is created by the member whose token this connection is.","surface":"native"},{"id":"patch_clickup_v1_connections_by_connection_id_projects_by_project_id_tasks_by_task_id","method":"PATCH","path":"/clickup/v1/connections/{connection_id}/projects/{project_id}/tasks/{task_id}","group":"clickup","scope":null,"path_params":["connection_id","project_id","task_id"],"summary":"Change a task ClickUp already has: the same fields, each one optional, and what is left out stays as it is. A room keeping its tasks in this list sees the change on its next round.","surface":"native"},{"id":"post_clickup_v1_connections_link","method":"POST","path":"/clickup/v1/connections/link","group":"clickup","scope":null,"path_params":[],"summary":"A one-hour link to the page where a member pastes a personal API token: give it to them. The token never comes through here, and the connection appears on this API once they have finished.","surface":"native"},{"id":"get_linkedin_connect_accounts","method":"GET","path":"/linkedin/connect/accounts","group":"connect","scope":null,"path_params":[],"summary":"The LinkedIn accounts this organization has connected, which are the only ones anything here may act as. Start here when a request names a person's account: an id that is not on this list answers 404 everywhere else.","surface":"native"},{"id":"delete_linkedin_connect_accounts_by_id","method":"DELETE","path":"/linkedin/connect/accounts/{id}","group":"connect","scope":null,"path_params":["id"],"summary":"Disconnect a LinkedIn account. It stops being billable and nothing can act as it afterwards. The account itself is untouched on LinkedIn; this only ends the connection.","surface":"native"},{"id":"get_linkedin_connect_accounts_by_id_status","method":"GET","path":"/linkedin/connect/accounts/{id}/status","group":"connect","scope":null,"path_params":["id"],"summary":"Has this account finished connecting? Answers OK once it works. This is how you wait out a challenge the member answers on their phone, where nothing comes back to the request that raised it: poll until OK, or until it says what went wrong.","surface":"native"},{"id":"post_linkedin_connect_checkpoint","method":"POST","path":"/linkedin/connect/checkpoint","group":"connect","scope":null,"path_params":[],"summary":"Hand LinkedIn the code it asked for after a sign-in: from an authenticator, from an email, or a tap in the LinkedIn app. The code is the member's to read out, and it is short-lived. An IN_APP_VALIDATION challenge has no code to submit — poll GET /linkedin/connect/accounts/{id}/status until it says the account is connected.","surface":"native"},{"id":"post_linkedin_connect_cookie","method":"POST","path":"/linkedin/connect/cookie","group":"connect","scope":null,"path_params":[],"summary":"Connect an account with an `li_at` session cookie the member took from their own browser. A cookie is a credential: do not ask for one in a conversation — POST /linkedin/connect/link {action: connect} is the way to offer this to a person. Forwarded once, never stored.","surface":"native","limit":"connect"},{"id":"post_linkedin_connect_credentials","method":"POST","path":"/linkedin/connect/credentials","group":"connect","scope":null,"path_params":[],"summary":"Sign a LinkedIn account in with the member's own email and password. DO NOT ASK ANYONE FOR A PASSWORD IN A CONVERSATION: send them POST /linkedin/connect/link {action: connect} instead, which gives a one-hour link to a page of ours where the password is typed, and which asks for whatever LinkedIn wants next -- a verification code, or an approval in its app. This route is for a caller with its own sign-in form. The password is forwarded once and never stored. LinkedIn answers most first sign-ins with a challenge, so a 201 here usually means the account was challenged rather than connected — follow up on POST /linkedin/connect/checkpoint.","surface":"native","limit":"connect"},{"id":"post_linkedin_connect_link","method":"POST","path":"/linkedin/connect/link","group":"connect","scope":null,"path_params":[],"summary":"Get a link to a page for one task, to give the user: connect, reconnect or disconnect a LinkedIn account (they sign in on a secure page that handles every LinkedIn check), create an API key, add a webhook, or set up their own white-label brand. Send action: connect, reconnect, disconnect, key, webhook or brand, plus account_id to reconnect or disconnect. A password, a new key, a signing secret or a payment key stays on that page and never comes back through the chat. The link lasts an hour. Check the outcome with GET /linkedin/connect/link/{handle}.","surface":"native","limit":"connect"},{"id":"get_linkedin_connect_link_by_handle","method":"GET","path":"/linkedin/connect/link/{handle}","group":"connect","scope":null,"path_params":["handle"],"summary":"How a link went: waiting, connected, reconnected, disconnected, done (a key or webhook was made), failed or expired, with the account_id once known and a reason when it failed. A brand link stays waiting for its hour; the brand itself is the result.","surface":"native"},{"id":"get_linkedin_connect_options","method":"GET","path":"/linkedin/connect/options","group":"connect","scope":null,"path_params":[],"summary":"What a sign-in form needs before it can ask: the country list, and the country this caller looks to be in. Only useful if you are drawing the form yourself; leaving country out of a sign-in detects the same thing server-side.","surface":"native"},{"id":"get_discord_v1_channels_by_channel_id_messages","method":"GET","path":"/discord/v1/channels/{channel_id}/messages","group":"discord","scope":null,"path_params":["channel_id"],"summary":"A channel's messages, newest first: limit up to 100, before or after a message id.","surface":"native"},{"id":"post_discord_v1_channels_by_channel_id_messages","method":"POST","path":"/discord/v1/channels/{channel_id}/messages","group":"discord","scope":null,"path_params":["channel_id"],"summary":"Post in a channel as the bot: content, up to 2,000 characters, and reply_to, a message id to answer. It pings nobody.","surface":"native"},{"id":"post_discord_v1_connection_link","method":"POST","path":"/discord/v1/connection/link","group":"discord","scope":null,"path_params":[],"summary":"A link to Discord's own page that adds the bot to a server the user manages: give it to them. Once they pick the server and authorize, the server is the organization's for this API and for project rooms.","surface":"native"},{"id":"get_discord_v1_servers","method":"GET","path":"/discord/v1/servers","group":"discord","scope":null,"path_params":[],"summary":"The Discord servers the organization has added the bot to, with their guild_id.","surface":"native"},{"id":"delete_discord_v1_servers_by_guild_id","method":"DELETE","path":"/discord/v1/servers/{guild_id}","group":"discord","scope":null,"path_params":["guild_id"],"summary":"Let go of a server: the bot leaves it, for rooms and API alike.","surface":"native"},{"id":"get_discord_v1_servers_by_guild_id_channels","method":"GET","path":"/discord/v1/servers/{guild_id}/channels","group":"discord","scope":null,"path_params":["guild_id"],"summary":"A server's text channels, with their channel_id, in the server's own order.","surface":"native"},{"id":"get_google_ads_v1_accounts","method":"GET","path":"/google-ads/v1/accounts","group":"google-ads","scope":null,"path_params":[],"summary":"The Google Ads accounts this organization may work in, each with customer_id, the name it was given, and may_change: true when changes can be proposed in it, false when it is yours to read and report on only. Start here: every other call names one of these customer_id values, and an account that is not listed is answered as though it did not exist.","surface":"native"},{"id":"get_google_ads_v1_accounts_by_customer_id","method":"GET","path":"/google-ads/v1/accounts/{customer_id}","group":"google-ads","scope":null,"path_params":["customer_id"],"summary":"One of those accounts: its customer_id, its name, its currency and time zone, and whether it holds other accounts beneath it. Use it to confirm you are in the right account before reporting on it or proposing anything.","surface":"native"},{"id":"post_google_ads_v1_accounts_by_customer_id_changes","method":"POST","path":"/google-ads/v1/accounts/{customer_id}/changes","group":"google-ads","scope":null,"path_params":["customer_id"],"summary":"Propose a change and have Google check it, without making it: body {summary: one line a person can read, operations: an array of Google Ads mutate operations, each naming its own resource, task_id: optionally the project room task this answers, so that applying the change closes that task}. Google validates every operation now and refuses the whole proposal if any is wrong, so a proposal that is accepted is one that would run. NOTHING IS CHANGED BY THIS CALL -- it answers a change_id that sits pending until somebody applies it. Tell the user what it would do and let them decide. If they are not certain, say that it can be left pending for a Top-Rated Team specialist to review and apply, and that applying it without that review is their own call.","surface":"native"},{"id":"get_google_ads_v1_accounts_by_customer_id_report","method":"GET","path":"/google-ads/v1/accounts/{customer_id}/report","group":"google-ads","scope":null,"path_params":["customer_id"],"summary":"Ask an account a question and get rows back: query query=a Google Ads Query Language SELECT, and max_rows up to 200. Everything Google will report is readable this way -- campaigns, ad groups, keywords, search terms, ads, assets, budgets, conversions, audiences, change history, recommendations -- so this is where performance answers, audits and client reports come from. It only reads; no query here can alter an account. Start with this one.","surface":"native"},{"id":"post_google_ads_v1_accounts_by_customer_id_report","method":"POST","path":"/google-ads/v1/accounts/{customer_id}/report","group":"google-ads","scope":null,"path_params":["customer_id"],"summary":"The same report, for a query too long to put in a URL: body {query, max_rows?}. It reads exactly as the GET does and changes nothing; prefer the GET, which a read-only client can also reach.","surface":"native"},{"id":"get_google_ads_v1_changes","method":"GET","path":"/google-ads/v1/changes","group":"google-ads","scope":null,"path_params":[],"summary":"Every change this organization has, newest first, from here and from its project rooms alike: change_id, the account, who proposed it, the one-line summary, its status (pending, applied, skipped, failed, reverted) and whether it can still be put back. This is the account's own record of what was done on its behalf.","surface":"native"},{"id":"get_google_ads_v1_changes_by_change_id","method":"GET","path":"/google-ads/v1/changes/{change_id}","group":"google-ads","scope":null,"path_params":["change_id"],"summary":"One change in full: what it would do or did, what Google said, and what putting it back would do. Read it to a user before they apply or revert anything.","surface":"native"},{"id":"post_google_ads_v1_changes_by_change_id_apply","method":"POST","path":"/google-ads/v1/changes/{change_id}/apply","group":"google-ads","scope":null,"path_params":["change_id"],"summary":"Make a pending change real, or drop it: body {apply: true or false}. Applying runs it in one piece -- either all of it happens or none of it does -- and writes down what undoing it would take, so it can be put back afterwards. Ask the user in plain words first and repeat the one-line summary back to them; this is the call that touches live advertising and spend.","surface":"native"},{"id":"post_google_ads_v1_changes_by_change_id_revert","method":"POST","path":"/google-ads/v1/changes/{change_id}/revert","group":"google-ads","scope":null,"path_params":["change_id"],"summary":"Put an applied change back as it was, using what was written down when it ran. It goes in as a change of its own, so putting it back can itself be put back. Some changes cannot be undone -- creating something new, or anything Google does not let us read back first -- and those say so rather than pretending; GET the change first to see which it is.","surface":"native"},{"id":"get_google_ads_v1_prompts","method":"GET","path":"/google-ads/v1/prompts","group":"google-ads","scope":null,"path_params":[],"summary":"The specialist prompt library: ready-made instructions for audits, campaign builds, search term work, tracking checks, repairs and client reports, in English, Russian and Ukrainian (query lang=en, ru or uk). Each answers id, title and body; run the body as your own instructions. Offered to the operator who maintains the library, so an empty list means this organization has none rather than that something went wrong.","surface":"native"},{"id":"get_hubspot_v1_connections","method":"GET","path":"/hubspot/v1/connections","group":"hubspot","scope":null,"path_params":[],"summary":"The HubSpot accounts this organization connected, with the connection_id every other call names and the label the member sees.","surface":"native"},{"id":"delete_hubspot_v1_connections_by_connection_id","method":"DELETE","path":"/hubspot/v1/connections/{connection_id}","group":"hubspot","scope":null,"path_params":["connection_id"],"summary":"Let go of a HubSpot connection: its token is forgotten and every room that kept its tasks there stops. Nothing in HubSpot is deleted.","surface":"native"},{"id":"get_hubspot_v1_connections_by_connection_id_projects","method":"GET","path":"/hubspot/v1/connections/{connection_id}/projects","group":"hubspot","scope":null,"path_params":["connection_id"],"summary":"The pipelines this connection can reach, with the project_id every task call names. Asked of HubSpot each time, so one added there turns up here.","surface":"native"},{"id":"get_hubspot_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"GET","path":"/hubspot/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"hubspot","scope":null,"path_params":["connection_id","project_id"],"summary":"The tasks in one pipeline: with no since, the ones that are not done; with since (milliseconds), the ones HubSpot changed after it, oldest first. Each carries task_id, title, notes, status (open, doing or done), assignee, due and updated_at.","surface":"native"},{"id":"post_hubspot_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"POST","path":"/hubspot/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"hubspot","scope":null,"path_params":["connection_id","project_id"],"summary":"Make a task in one pipeline: title, and optionally notes, status (open, doing or done), assignee and due (YYYY-MM-DD). It is created by the member whose token this connection is.","surface":"native"},{"id":"patch_hubspot_v1_connections_by_connection_id_projects_by_project_id_tasks_by_task_id","method":"PATCH","path":"/hubspot/v1/connections/{connection_id}/projects/{project_id}/tasks/{task_id}","group":"hubspot","scope":null,"path_params":["connection_id","project_id","task_id"],"summary":"Change a task HubSpot already has: the same fields, each one optional, and what is left out stays as it is. A room keeping its tasks in this pipeline sees the change on its next round.","surface":"native"},{"id":"post_hubspot_v1_connections_link","method":"POST","path":"/hubspot/v1/connections/link","group":"hubspot","scope":null,"path_params":[],"summary":"A one-hour link to the page where a member pastes a private app token: give it to them. The token never comes through here, and the connection appears on this API once they have finished.","surface":"native"},{"id":"get_inbox_v1_account","method":"GET","path":"/inbox/v1/account","group":"inbox","scope":null,"path_params":[],"summary":"Whether your organization's shared inbox account exists yet, how many inboxes (channels) it has, and whether its events reach your webhooks. Never creates the account.","surface":"native"},{"id":"post_inbox_v1_account","method":"POST","path":"/inbox/v1/account","group":"inbox","scope":null,"path_params":[],"summary":"Create your organization's shared inbox account now, or answer the existing one (201 when created, 200 when it was there). Any other inbox call also creates it on the way.","surface":"native"},{"id":"get_inbox_v1_agents","method":"GET","path":"/inbox/v1/agents","group":"inbox","scope":null,"path_params":[],"summary":"The agents of your inbox account, with their ids for assignment.","surface":"native"},{"id":"get_inbox_v1_canned_responses","method":"GET","path":"/inbox/v1/canned_responses","group":"inbox","scope":null,"path_params":[],"summary":"List saved replies, each with a short_code and its content.","surface":"native"},{"id":"post_inbox_v1_canned_responses","method":"POST","path":"/inbox/v1/canned_responses","group":"inbox","scope":null,"path_params":[],"summary":"Save a reply for later: body {short_code, content}.","surface":"native"},{"id":"delete_inbox_v1_canned_responses_by_id","method":"DELETE","path":"/inbox/v1/canned_responses/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Delete a saved reply.","surface":"native"},{"id":"patch_inbox_v1_canned_responses_by_id","method":"PATCH","path":"/inbox/v1/canned_responses/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a saved reply.","surface":"native"},{"id":"post_inbox_v1_channels_twilio_channel","method":"POST","path":"/inbox/v1/channels/twilio_channel","group":"inbox","scope":null,"path_params":[],"summary":"Add an SMS or WhatsApp inbox through Twilio: body {twilio_channel:{name, medium: sms or whatsapp, account_sid, auth_token, phone_number or messaging_service_sid}}.","surface":"native"},{"id":"get_inbox_v1_contacts","method":"GET","path":"/inbox/v1/contacts","group":"inbox","scope":null,"path_params":[],"summary":"List contacts, the people who write to you on any channel: query page, sort.","surface":"native"},{"id":"post_inbox_v1_contacts","method":"POST","path":"/inbox/v1/contacts","group":"inbox","scope":null,"path_params":[],"summary":"Add a contact: body {name, email, phone_number (+15550199), identifier, custom_attributes, inbox_id (also give them an address in that inbox)}.","surface":"native"},{"id":"delete_inbox_v1_contacts_by_id","method":"DELETE","path":"/inbox/v1/contacts/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Delete a contact. Ask the user first.","surface":"native"},{"id":"get_inbox_v1_contacts_by_id","method":"GET","path":"/inbox/v1/contacts/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Read one contact: name, email, phone number, identifier, custom attributes.","surface":"native"},{"id":"patch_inbox_v1_contacts_by_id","method":"PATCH","path":"/inbox/v1/contacts/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a contact: name, email, phone_number, identifier, custom_attributes.","surface":"native"},{"id":"post_inbox_v1_contacts_by_id_contact_inboxes","method":"POST","path":"/inbox/v1/contacts/{id}/contact_inboxes","group":"inbox","scope":null,"path_params":["id"],"summary":"Give a contact an address in an inbox, so you can write to them there: body {inbox_id, source_id (their phone number or email address)}.","surface":"native"},{"id":"get_inbox_v1_contacts_by_id_contactable_inboxes","method":"GET","path":"/inbox/v1/contacts/{id}/contactable_inboxes","group":"inbox","scope":null,"path_params":["id"],"summary":"The inboxes a contact can be written to from, with their address in each.","surface":"native"},{"id":"get_inbox_v1_contacts_by_id_conversations","method":"GET","path":"/inbox/v1/contacts/{id}/conversations","group":"inbox","scope":null,"path_params":["id"],"summary":"Every conversation with one contact, on every channel.","surface":"native"},{"id":"get_inbox_v1_contacts_by_id_labels","method":"GET","path":"/inbox/v1/contacts/{id}/labels","group":"inbox","scope":null,"path_params":["id"],"summary":"The labels on one contact.","surface":"native"},{"id":"post_inbox_v1_contacts_by_id_labels","method":"POST","path":"/inbox/v1/contacts/{id}/labels","group":"inbox","scope":null,"path_params":["id"],"summary":"Set a contact's labels to exactly these: body {labels:[...]}.","surface":"native"},{"id":"get_inbox_v1_contacts_by_id_notes","method":"GET","path":"/inbox/v1/contacts/{id}/notes","group":"inbox","scope":null,"path_params":["id"],"summary":"Your team's notes on a contact.","surface":"native"},{"id":"post_inbox_v1_contacts_by_id_notes","method":"POST","path":"/inbox/v1/contacts/{id}/notes","group":"inbox","scope":null,"path_params":["id"],"summary":"Add a note to a contact: body {content}.","surface":"native"},{"id":"delete_inbox_v1_contacts_by_id_notes_by_note_id","method":"DELETE","path":"/inbox/v1/contacts/{id}/notes/{note_id}","group":"inbox","scope":null,"path_params":["id","note_id"],"summary":"Delete a note on a contact.","surface":"native"},{"id":"patch_inbox_v1_contacts_by_id_notes_by_note_id","method":"PATCH","path":"/inbox/v1/contacts/{id}/notes/{note_id}","group":"inbox","scope":null,"path_params":["id","note_id"],"summary":"Change a note on a contact: body {content}.","surface":"native"},{"id":"post_inbox_v1_contacts_filter","method":"POST","path":"/inbox/v1/contacts/filter","group":"inbox","scope":null,"path_params":[],"summary":"Filter contacts by any attribute: body {payload:[{attribute_key, filter_operator, values, query_operator}]}.","surface":"native"},{"id":"get_inbox_v1_contacts_search","method":"GET","path":"/inbox/v1/contacts/search","group":"inbox","scope":null,"path_params":[],"summary":"Find contacts by name, email, phone number or identifier: query q, page.","surface":"native"},{"id":"get_inbox_v1_conversations","method":"GET","path":"/inbox/v1/conversations","group":"inbox","scope":null,"path_params":[],"summary":"List conversations across every channel, newest activity first, 25 a page: query status (open, resolved, pending, snoozed, all), inbox_id (one channel), assignee_type (me, unassigned, assigned, all), labels, q (words in the messages), page.","surface":"native"},{"id":"post_inbox_v1_conversations","method":"POST","path":"/inbox/v1/conversations","group":"inbox","scope":null,"path_params":[],"summary":"Start a conversation with a contact: body {inbox_id, contact_id, source_id (their address in that inbox: phone number, email), message:{content}}. Some channels only allow a template the platform approved when you write first.","surface":"native"},{"id":"get_inbox_v1_conversations_by_id","method":"GET","path":"/inbox/v1/conversations/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Read one conversation: its contact, inbox, status, assignee, labels and latest messages.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_assignments","method":"POST","path":"/inbox/v1/conversations/{id}/assignments","group":"inbox","scope":null,"path_params":["id"],"summary":"Assign a conversation: body {assignee_id} for an agent or {team_id} for a team.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_custom_attributes","method":"POST","path":"/inbox/v1/conversations/{id}/custom_attributes","group":"inbox","scope":null,"path_params":["id"],"summary":"Set a conversation's custom attributes: body {custom_attributes:{key: value}}.","surface":"native"},{"id":"get_inbox_v1_conversations_by_id_labels","method":"GET","path":"/inbox/v1/conversations/{id}/labels","group":"inbox","scope":null,"path_params":["id"],"summary":"A conversation's labels.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_labels","method":"POST","path":"/inbox/v1/conversations/{id}/labels","group":"inbox","scope":null,"path_params":["id"],"summary":"Set a conversation's labels to exactly these: body {labels:[...]}.","surface":"native"},{"id":"get_inbox_v1_conversations_by_id_messages","method":"GET","path":"/inbox/v1/conversations/{id}/messages","group":"inbox","scope":null,"path_params":["id"],"summary":"Read a conversation's messages, oldest first: who wrote each (message_type 0 incoming from the customer, 1 outgoing from you, 2 activity) and any attachments.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_messages","method":"POST","path":"/inbox/v1/conversations/{id}/messages","group":"inbox","scope":null,"path_params":["id"],"summary":"Reply in a conversation on the customer's own channel: body {content, message_type: outgoing}. With private: true it is an internal note only your team sees. In an API inbox, message_type incoming records what the customer wrote.","surface":"native"},{"id":"delete_inbox_v1_conversations_by_id_messages_by_message_id","method":"DELETE","path":"/inbox/v1/conversations/{id}/messages/{message_id}","group":"inbox","scope":null,"path_params":["id","message_id"],"summary":"Delete a message from a conversation.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_toggle_priority","method":"POST","path":"/inbox/v1/conversations/{id}/toggle_priority","group":"inbox","scope":null,"path_params":["id"],"summary":"Set a conversation's priority: body {priority: urgent, high, medium, low or none}.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_toggle_status","method":"POST","path":"/inbox/v1/conversations/{id}/toggle_status","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a conversation's status: body {status: open, resolved, pending or snoozed, snoozed_until?}. Resolve it when the customer's question is answered.","surface":"native"},{"id":"post_inbox_v1_conversations_by_id_update_last_seen","method":"POST","path":"/inbox/v1/conversations/{id}/update_last_seen","group":"inbox","scope":null,"path_params":["id"],"summary":"Mark a conversation read: its unread count goes back to zero until the customer writes again.","surface":"native"},{"id":"post_inbox_v1_conversations_filter","method":"POST","path":"/inbox/v1/conversations/filter","group":"inbox","scope":null,"path_params":[],"summary":"Filter conversations by any attribute: body {payload:[{attribute_key, filter_operator, values, query_operator}]}.","surface":"native"},{"id":"get_inbox_v1_conversations_meta","method":"GET","path":"/inbox/v1/conversations/meta","group":"inbox","scope":null,"path_params":[],"summary":"How many conversations there are: mine, unassigned and all, for the same filters as the list.","surface":"native"},{"id":"get_inbox_v1_custom_attribute_definitions","method":"GET","path":"/inbox/v1/custom_attribute_definitions","group":"inbox","scope":null,"path_params":[],"summary":"List the custom attributes defined for conversations and contacts: query attribute_model (0 conversation, 1 contact).","surface":"native"},{"id":"post_inbox_v1_custom_attribute_definitions","method":"POST","path":"/inbox/v1/custom_attribute_definitions","group":"inbox","scope":null,"path_params":[],"summary":"Define a custom attribute: body {attribute_display_name, attribute_key, attribute_display_type (text, number, link, date, list, checkbox), attribute_model (conversation_attribute or contact_attribute)}.","surface":"native"},{"id":"delete_inbox_v1_custom_attribute_definitions_by_id","method":"DELETE","path":"/inbox/v1/custom_attribute_definitions/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Delete a custom attribute's definition.","surface":"native"},{"id":"patch_inbox_v1_custom_attribute_definitions_by_id","method":"PATCH","path":"/inbox/v1/custom_attribute_definitions/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a custom attribute's definition.","surface":"native"},{"id":"post_inbox_v1_facebook_link","method":"POST","path":"/inbox/v1/facebook/link","group":"inbox","scope":null,"path_params":[],"summary":"Get a link that adds a Facebook page's Messenger as an inbox: give the url to the user to open, sign in with Facebook and pick the page; nothing secret passes through the chat. It lasts an hour. 404 not_offered when Facebook is not set up on this server.","surface":"native"},{"id":"get_inbox_v1_facebook_link_by_handle","method":"GET","path":"/inbox/v1/facebook/link/{handle}","group":"inbox","scope":null,"path_params":["handle"],"summary":"How a Facebook link went: waiting, picking (signed in, choosing a page), connected (with inbox_id and page_name), failed (failure: denied, no_pages, unavailable) or expired.","surface":"native"},{"id":"delete_inbox_v1_inbox_members","method":"DELETE","path":"/inbox/v1/inbox_members","group":"inbox","scope":null,"path_params":[],"summary":"Take agents off an inbox: body {inbox_id, user_ids}.","surface":"native"},{"id":"patch_inbox_v1_inbox_members","method":"PATCH","path":"/inbox/v1/inbox_members","group":"inbox","scope":null,"path_params":[],"summary":"Replace an inbox's agents with exactly these: body {inbox_id, user_ids}.","surface":"native"},{"id":"post_inbox_v1_inbox_members","method":"POST","path":"/inbox/v1/inbox_members","group":"inbox","scope":null,"path_params":[],"summary":"Add agents to an inbox: body {inbox_id, user_ids}.","surface":"native"},{"id":"get_inbox_v1_inbox_members_by_inbox_id","method":"GET","path":"/inbox/v1/inbox_members/{inbox_id}","group":"inbox","scope":null,"path_params":["inbox_id"],"summary":"The agents of one inbox.","surface":"native"},{"id":"get_inbox_v1_inboxes","method":"GET","path":"/inbox/v1/inboxes","group":"inbox","scope":null,"path_params":[],"summary":"List the inboxes, one per connected channel: id, name and channel_type (Channel::Whatsapp, Channel::Telegram, Channel::Email, Channel::Sms, Channel::TwilioSms, Channel::Line, Channel::WebWidget, Channel::Api, Channel::Tiktok, Channel::Instagram, Channel::FacebookPage). Use the id as inbox_id elsewhere.","surface":"native"},{"id":"post_inbox_v1_inboxes","method":"POST","path":"/inbox/v1/inboxes","group":"inbox","scope":null,"path_params":[],"summary":"Add an inbox for a channel: body {name, channel:{type, ...}} with type line (line_channel_id, line_channel_secret, line_channel_token), sms (Bandwidth: phone_number, provider_config), whatsapp (WhatsApp Cloud: phone_number, provider whatsapp_cloud, provider_config api_key, phone_number_id, business_account_id), email (IMAP/SMTP settings), telegram (bot_token), web_widget (website_url) or api (webhook_url). The answer's callback_webhook_url is the address to give the platform.","surface":"native"},{"id":"delete_inbox_v1_inboxes_by_id","method":"DELETE","path":"/inbox/v1/inboxes/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Remove an inbox and every conversation in it. Ask the user first.","surface":"native"},{"id":"get_inbox_v1_inboxes_by_id","method":"GET","path":"/inbox/v1/inboxes/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Read one inbox: its channel, settings and, for LINE, SMS and WhatsApp, the callback_webhook_url to give the platform.","surface":"native"},{"id":"patch_inbox_v1_inboxes_by_id","method":"PATCH","path":"/inbox/v1/inboxes/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change an inbox: name, greeting_enabled and greeting_message, working hours, auto-assignment or channel settings.","surface":"native"},{"id":"post_inbox_v1_instagram_authorization","method":"POST","path":"/inbox/v1/instagram/authorization","group":"inbox","scope":null,"path_params":[],"summary":"Get a sign-in link that adds an Instagram inbox: give the url to the user to open and sign in with their Instagram professional account; the inbox appears when they finish.","surface":"native"},{"id":"get_inbox_v1_labels","method":"GET","path":"/inbox/v1/labels","group":"inbox","scope":null,"path_params":[],"summary":"List the labels conversations and contacts can carry.","surface":"native"},{"id":"post_inbox_v1_labels","method":"POST","path":"/inbox/v1/labels","group":"inbox","scope":null,"path_params":[],"summary":"Add a label: body {title, description, color, show_on_sidebar}.","surface":"native"},{"id":"delete_inbox_v1_labels_by_id","method":"DELETE","path":"/inbox/v1/labels/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Delete a label, from every conversation and contact that carries it.","surface":"native"},{"id":"patch_inbox_v1_labels_by_id","method":"PATCH","path":"/inbox/v1/labels/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a label: title, description, color, show_on_sidebar.","surface":"native"},{"id":"get_inbox_v1_teams","method":"GET","path":"/inbox/v1/teams","group":"inbox","scope":null,"path_params":[],"summary":"List teams, which conversations can be assigned to.","surface":"native"},{"id":"post_inbox_v1_teams","method":"POST","path":"/inbox/v1/teams","group":"inbox","scope":null,"path_params":[],"summary":"Add a team: body {name, description, allow_auto_assign}.","surface":"native"},{"id":"delete_inbox_v1_teams_by_id","method":"DELETE","path":"/inbox/v1/teams/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Delete a team. Its conversations stay, unassigned from it.","surface":"native"},{"id":"patch_inbox_v1_teams_by_id","method":"PATCH","path":"/inbox/v1/teams/{id}","group":"inbox","scope":null,"path_params":["id"],"summary":"Change a team: name, description, allow_auto_assign.","surface":"native"},{"id":"delete_inbox_v1_teams_by_id_team_members","method":"DELETE","path":"/inbox/v1/teams/{id}/team_members","group":"inbox","scope":null,"path_params":["id"],"summary":"Take agents off a team: body {user_ids}.","surface":"native"},{"id":"get_inbox_v1_teams_by_id_team_members","method":"GET","path":"/inbox/v1/teams/{id}/team_members","group":"inbox","scope":null,"path_params":["id"],"summary":"The agents in one team.","surface":"native"},{"id":"patch_inbox_v1_teams_by_id_team_members","method":"PATCH","path":"/inbox/v1/teams/{id}/team_members","group":"inbox","scope":null,"path_params":["id"],"summary":"Replace a team's agents with exactly these: body {user_ids}.","surface":"native"},{"id":"post_inbox_v1_teams_by_id_team_members","method":"POST","path":"/inbox/v1/teams/{id}/team_members","group":"inbox","scope":null,"path_params":["id"],"summary":"Add agents to a team: body {user_ids}.","surface":"native"},{"id":"post_inbox_v1_tiktok_authorization","method":"POST","path":"/inbox/v1/tiktok/authorization","group":"inbox","scope":null,"path_params":[],"summary":"Get a sign-in link that adds a TikTok inbox: give the url to the user to open and sign in with their TikTok business account; the inbox appears when they finish.","surface":"native"},{"id":"get_linkedin_v2_by_account_id_inboxes_by_inbox_id_chats","method":"GET","path":"/linkedin/v2/{account_id}/inboxes/{inbox_id}/chats","group":"inboxes","scope":null,"path_params":["account_id","inbox_id"],"summary":"List Inbox Chats","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_inboxes_by_inbox_id_chats","method":"POST","path":"/linkedin/v2/{account_id}/inboxes/{inbox_id}/chats","group":"inboxes","scope":null,"path_params":["account_id","inbox_id"],"summary":"Start a Chat from Inbox","surface":"upstream","limit":"inmail"},{"id":"post_linkedin_v2_by_account_id_inboxes_by_inbox_id_chats_send","method":"POST","path":"/linkedin/v2/{account_id}/inboxes/{inbox_id}/chats/send","group":"inboxes","scope":null,"path_params":["account_id","inbox_id"],"summary":"Start a Chat from Inbox","surface":"upstream","limit":"inmail"},{"id":"get_jira_v1_connections","method":"GET","path":"/jira/v1/connections","group":"jira","scope":null,"path_params":[],"summary":"The Jira accounts this organization connected, with the connection_id every other call names and the label the member sees.","surface":"native"},{"id":"delete_jira_v1_connections_by_connection_id","method":"DELETE","path":"/jira/v1/connections/{connection_id}","group":"jira","scope":null,"path_params":["connection_id"],"summary":"Let go of a Jira connection: its token is forgotten and every room that kept its tasks there stops. Nothing in Jira is deleted.","surface":"native"},{"id":"get_jira_v1_connections_by_connection_id_projects","method":"GET","path":"/jira/v1/connections/{connection_id}/projects","group":"jira","scope":null,"path_params":["connection_id"],"summary":"The projects this connection can reach, with the project_id every task call names. Asked of Jira each time, so one added there turns up here.","surface":"native"},{"id":"get_jira_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"GET","path":"/jira/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"jira","scope":null,"path_params":["connection_id","project_id"],"summary":"The tasks in one project: with no since, the ones that are not done; with since (milliseconds), the ones Jira changed after it, oldest first. Each carries task_id, title, notes, status (open, doing or done), assignee, due and updated_at.","surface":"native"},{"id":"post_jira_v1_connections_by_connection_id_projects_by_project_id_tasks","method":"POST","path":"/jira/v1/connections/{connection_id}/projects/{project_id}/tasks","group":"jira","scope":null,"path_params":["connection_id","project_id"],"summary":"Make a task in one project: title, and optionally notes, status (open, doing or done), assignee and due (YYYY-MM-DD). It is created by the member whose token this connection is.","surface":"native"},{"id":"patch_jira_v1_connections_by_connection_id_projects_by_project_id_tasks_by_task_id","method":"PATCH","path":"/jira/v1/connections/{connection_id}/projects/{project_id}/tasks/{task_id}","group":"jira","scope":null,"path_params":["connection_id","project_id","task_id"],"summary":"Change a task Jira already has: the same fields, each one optional, and what is left out stays as it is. A room keeping its tasks in this project sees the change on its next round.","surface":"native"},{"id":"post_jira_v1_connections_link","method":"POST","path":"/jira/v1/connections/link","group":"jira","scope":null,"path_params":[],"summary":"A one-hour link to the page where a member pastes an API token, with the site and the address it belongs to: give it to them. The token never comes through here, and the connection appears on this API once they have finished.","surface":"native"},{"id":"get_line_v1_connections","method":"GET","path":"/line/v1/connections","group":"line","scope":null,"path_params":[],"summary":"The LINE Official Accounts this organization connected, with the connection_id every other call names and the account name LINE shows.","surface":"native"},{"id":"delete_line_v1_connections_by_connection_id","method":"DELETE","path":"/line/v1/connections/{connection_id}","group":"line","scope":null,"path_params":["connection_id"],"summary":"Let go of a LINE connection: its keys are forgotten, its webhook stops being answered and every room linked through it stops. Nothing in LINE is deleted.","surface":"native"},{"id":"get_line_v1_connections_by_connection_id","method":"GET","path":"/line/v1/connections/{connection_id}","group":"line","scope":null,"path_params":["connection_id"],"summary":"What LINE says this account is right now: its display name, its basic id and whether its chat is still on.","surface":"native"},{"id":"get_line_v1_connections_by_connection_id_chats","method":"GET","path":"/line/v1/connections/{connection_id}/chats","group":"line","scope":null,"path_params":["connection_id"],"summary":"The chats this account has heard from, newest first, with chat_id and whether each is a person, a group or a LINE room. LINE lists none itself, so a chat is known only once it has written.","surface":"native"},{"id":"get_line_v1_connections_by_connection_id_chats_by_chat_id","method":"GET","path":"/line/v1/connections/{connection_id}/chats/{chat_id}","group":"line","scope":null,"path_params":["connection_id","chat_id"],"summary":"One of those chats: its kind, the name LINE gave it and when it last wrote.","surface":"native"},{"id":"post_line_v1_connections_by_connection_id_chats_by_chat_id_messages","method":"POST","path":"/line/v1/connections/{connection_id}/chats/{chat_id}/messages","group":"line","scope":null,"path_params":["connection_id","chat_id"],"summary":"Push a message to one chat as the account itself: text, up to 5,000 characters. It counts against the account's monthly messages on its own LINE plan.","surface":"native"},{"id":"post_line_v1_connections_link","method":"POST","path":"/line/v1/connections/link","group":"line","scope":null,"path_params":[],"summary":"Where a member pastes the channel access token and channel secret of their LINE Official Account: this answers with that page and nothing else, because a secret never goes through this API. The connection appears here once they have finished.","surface":"native"},{"id":"post_linkedin_v2_by_account_id_linkedin","method":"POST","path":"/linkedin/v2/{account_id}/linkedin","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform a Request to any LinkedIn API Endpoint","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_analytics_profile_views","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/analytics/profile-views","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Profile Views","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_company_by_company_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/company/{company_id}","group":"linkedin","scope":null,"path_params":["account_id","company_id"],"summary":"Get a Company Profile","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_company_by_company_id_follow_requests","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/company/{company_id}/follow-requests","group":"linkedin","scope":null,"path_params":["account_id","company_id"],"summary":"Invite Members to Follow a Company","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_company_by_company_id_follow_requests_credits","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/company/{company_id}/follow-requests/credits","group":"linkedin","scope":null,"path_params":["account_id","company_id"],"summary":"Get Company Follow Request Credits","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_company_by_company_id_member_submit_otp","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/company/{company_id}/member/submit-otp","group":"linkedin","scope":null,"path_params":["account_id","company_id"],"summary":"Submit Otp Verification Code","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_company_pages","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/company/pages","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Managed Company Pages","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_contracts","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/contracts","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Available Contracts","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_contracts_by_contract_id_select","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/contracts/{contract_id}/select","group":"linkedin","scope":null,"path_params":["account_id","contract_id"],"summary":"Select a Contract","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_inmail_credit_balance","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/inmail-credit-balance","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Get InMail Credit Balance","surface":"upstream","limit":"inmail"},{"id":"get_linkedin_v2_by_account_id_linkedin_inmail_credits","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/inmail-credits","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Get InMail Credits","surface":"upstream","limit":"inmail"},{"id":"get_linkedin_v2_by_account_id_linkedin_jobs","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/jobs","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List User Job Postings","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_jobs","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/jobs","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Create a Job Posting Draft","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_jobs_by_job_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Get a Job Posting","surface":"upstream","limit":"actions"},{"id":"patch_linkedin_v2_by_account_id_linkedin_jobs_by_job_id","method":"PATCH","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Edit an existing Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_applicants","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/applicants","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"List Job Posting Applicants","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_applicants_by_applicant_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/applicants/{applicant_id}","group":"linkedin","scope":null,"path_params":["account_id","job_id","applicant_id"],"summary":"Get an Applicant","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_applicants_by_applicant_id_resume","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/applicants/{applicant_id}/resume","group":"linkedin","scope":null,"path_params":["account_id","job_id","applicant_id"],"summary":"Get an Applicant's Resume","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_budget","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/budget","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Get the Budget for a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_close","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/close","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Close a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_jobs_by_job_id_publish","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/jobs/{job_id}/publish","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Publish a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_member_by_member_id_endorse_skill","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/member/{member_id}/endorse-skill","group":"linkedin","scope":null,"path_params":["account_id","member_id"],"summary":"Endorse a Member's Skill","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_projects","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/projects","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List all Recruiter Hiring Projects","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_company_by_company_id_member_submit_otp","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/company/{company_id}/member/submit-otp","group":"linkedin","scope":null,"path_params":["account_id","company_id"],"summary":"Submit Otp Verification Code","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_job_slots_credits","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/job-slots-credits","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Get Job Slots Credits","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_jobs","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/jobs","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Job Postings","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_jobs","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/jobs","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Create a Job Posting Draft in a New Project","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_jobs_by_job_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/jobs/{job_id}","group":"linkedin","scope":null,"path_params":["account_id","job_id"],"summary":"Get a Job Posting","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Projects","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Create a New Project","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Get a Project","surface":"upstream","limit":"actions"},{"id":"patch_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id","method":"PATCH","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Edit a Project","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Get a Job Posting by Project","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Create a Job Posting Draft in an Existing Project","surface":"upstream","limit":"actions"},{"id":"patch_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs_by_job_id","method":"PATCH","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}","group":"linkedin","scope":null,"path_params":["account_id","project_id","job_id"],"summary":"Edit an Existing Job Posting","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs_by_job_id_budget","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/budget","group":"linkedin","scope":null,"path_params":["account_id","project_id","job_id"],"summary":"Get the Budget for a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs_by_job_id_close","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/close","group":"linkedin","scope":null,"path_params":["account_id","project_id","job_id"],"summary":"Close a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_jobs_by_job_id_publish","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/jobs/{job_id}/publish","group":"linkedin","scope":null,"path_params":["account_id","project_id","job_id"],"summary":"Publish a Job Posting","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_pipeline","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"List Pipeline Candidates","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_pipeline_candidate_save","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/pipeline/candidate/save","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Save a Candidate","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_talent_pool_applicants","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"List Job Posting Applicants","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_talent_pool_applicants_by_applicant_id","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_id}","group":"linkedin","scope":null,"path_params":["account_id","project_id","applicant_id"],"summary":"Get an Applicant","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_talent_pool_applicants_by_applicant_profile_id_resume","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/applicants/{applicant_profile_id}/resume","group":"linkedin","scope":null,"path_params":["account_id","project_id","applicant_profile_id"],"summary":"Get an Applicant's Resume","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_projects_by_project_id_talent_pool_search","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/projects/{project_id}/talent-pool/search","group":"linkedin","scope":null,"path_params":["account_id","project_id"],"summary":"Perform People Search From Talent Pool","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_search","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/search","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Recruiter Search from URL","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_search_parameters","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/search/parameters","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Search Parameters","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_linkedin_recruiter_search_people","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/recruiter/search/people","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform People Search","surface":"upstream","limit":"search"},{"id":"get_linkedin_v2_by_account_id_linkedin_sales_navigator_account_lists","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/account-lists","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Get Accounts Lists","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_account_lists_by_list_id","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/account-lists/{list_id}","group":"linkedin","scope":null,"path_params":["account_id","list_id"],"summary":"Browse an Account List","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_account_lists_by_list_id_save","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/account-lists/{list_id}/save","group":"linkedin","scope":null,"path_params":["account_id","list_id"],"summary":"Save an Account To a List","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_linkedin_sales_navigator_lead_lists","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/lead-lists","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Get Leads Lists","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_lead_lists_by_list_id","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/lead-lists/{list_id}","group":"linkedin","scope":null,"path_params":["account_id","list_id"],"summary":"Browse a Lead List","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_lead_lists_by_list_id_save","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/lead-lists/{list_id}/save","group":"linkedin","scope":null,"path_params":["account_id","list_id"],"summary":"Save a Lead To a List","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_search","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/search","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Search from URL","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_search_companies","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/search/companies","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Companies Search","surface":"upstream","limit":"search"},{"id":"get_linkedin_v2_by_account_id_linkedin_sales_navigator_search_parameters","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/search/parameters","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Search Parameters","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_linkedin_sales_navigator_search_people","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/sales-navigator/search/people","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform People Search","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_search","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/search","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Classic Search from URL","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_search_companies","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/search/companies","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Companies Search","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_search_jobs","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/search/jobs","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Jobs Search","surface":"upstream","limit":"search"},{"id":"get_linkedin_v2_by_account_id_linkedin_search_parameters","method":"GET","path":"/linkedin/v2/{account_id}/linkedin/search/parameters","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"List Search Parameters","surface":"upstream"},{"id":"post_linkedin_v2_by_account_id_linkedin_search_people","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/search/people","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform People Search","surface":"upstream","limit":"search"},{"id":"post_linkedin_v2_by_account_id_linkedin_search_posts","method":"POST","path":"/linkedin/v2/{account_id}/linkedin/search/posts","group":"linkedin","scope":null,"path_params":["account_id"],"summary":"Perform Posts Search","surface":"upstream","limit":"search"},{"id":"get_linkedin_pages_by_company_id","method":"GET","path":"/linkedin/pages/{company_id}","group":"pages","scope":null,"path_params":["company_id"],"summary":"Read a LinkedIn company page you administer, as one of your connected accounts (query account_id): its name, tagline, overview (the About text), website, page address, industries, company size, company type, phone, year founded, specialties, custom button, logo and cover, and the sizes, types and buttons this page accepts. company_id is the page's number or its urn.","surface":"native"},{"id":"patch_linkedin_pages_by_company_id","method":"PATCH","path":"/linkedin/pages/{company_id}","group":"pages","scope":null,"path_params":["company_id"],"summary":"Edit a LinkedIn company page you administer, as one of your connected accounts (account_id): any of name, tagline, overview, website, page_address, industries, company_size (SIZE_2_TO_10 and so on), company_type (PRIVATELY_HELD and so on), phone, founded_year, specialties and custom_button ({label, url}, a label the page offers). Answers, field by field, whether the page now shows it: LinkedIn accepts some changes without making them.","surface":"native"},{"id":"post_linkedin_pages_by_company_id_cover","method":"POST","path":"/linkedin/pages/{company_id}/cover","group":"pages","scope":null,"path_params":["company_id"],"summary":"Replace a LinkedIn company page's cover image, as one of your connected accounts (account_id): send image_url, a public https address of a PNG or JPEG, or upload the file as multipart field image. LinkedIn wants 1512 by 256.","surface":"native"},{"id":"post_linkedin_pages_by_company_id_logo","method":"POST","path":"/linkedin/pages/{company_id}/logo","group":"pages","scope":null,"path_params":["company_id"],"summary":"Replace a LinkedIn company page's logo, as one of your connected accounts (account_id): send image_url, a public https address of a PNG or JPEG, or upload the file as multipart field image. A square picture of 400 by 400 or more works best.","surface":"native"},{"id":"post_linkedin_v2_by_account_id_posts","method":"POST","path":"/linkedin/v2/{account_id}/posts","group":"posts","scope":null,"path_params":["account_id"],"summary":"Create a Post","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_posts_by_post_id","method":"DELETE","path":"/linkedin/v2/{account_id}/posts/{post_id}","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Delete a Post","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_posts_by_post_id","method":"GET","path":"/linkedin/v2/{account_id}/posts/{post_id}","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Get a Post","surface":"upstream","limit":"actions"},{"id":"patch_linkedin_v2_by_account_id_posts_by_post_id","method":"PATCH","path":"/linkedin/v2/{account_id}/posts/{post_id}","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Update a Post","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_posts_by_post_id_comments","method":"GET","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"List all Post's Comments","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_posts_by_post_id_comments","method":"POST","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Add Comment to a Post","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id","method":"DELETE","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"Delete Comment from a Post","surface":"upstream","limit":"actions"},{"id":"patch_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id","method":"PATCH","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"Update a Comment","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id","method":"POST","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"Reply to a Comment","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id_reactions","method":"DELETE","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"Remove Reaction from a Comment","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id_reactions","method":"GET","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"List all Comment's Reactions","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id_reactions","method":"POST","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"Add Reaction to a Comment","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_posts_by_post_id_comments_by_comment_id_replies","method":"GET","path":"/linkedin/v2/{account_id}/posts/{post_id}/comments/{comment_id}/replies","group":"posts","scope":null,"path_params":["account_id","post_id","comment_id"],"summary":"List all Comment's Replies","surface":"upstream","limit":"actions"},{"id":"delete_linkedin_v2_by_account_id_posts_by_post_id_reactions","method":"DELETE","path":"/linkedin/v2/{account_id}/posts/{post_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Remove Reaction from a Post","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_posts_by_post_id_reactions","method":"GET","path":"/linkedin/v2/{account_id}/posts/{post_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"List all Post's Reactions","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_posts_by_post_id_reactions","method":"POST","path":"/linkedin/v2/{account_id}/posts/{post_id}/reactions","group":"posts","scope":null,"path_params":["account_id","post_id"],"summary":"Add Reaction to a Post","surface":"upstream","limit":"actions"},{"id":"get_rooms","method":"GET","path":"/rooms","group":"rooms","scope":null,"path_params":[],"summary":"List the organization's project rooms, each with url (where a person who is in it opens it), its chats (id, name) and shared_url when it is on the web.","surface":"native"},{"id":"post_rooms","method":"POST","path":"/rooms","group":"rooms","scope":null,"path_params":[],"summary":"Make a project room: name (up to 80 characters), guests_can_ask (whether invited guests may ask its AI agents). It starts with one chat.","surface":"native"},{"id":"delete_rooms_by_id","method":"DELETE","path":"/rooms/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Delete a room with its chats, messages, tasks, docs and files. Ask the user first.","surface":"native"},{"id":"get_rooms_by_id","method":"GET","path":"/rooms/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Read a room: url (where a person who is in it opens it), shared_url when it is on the web, its chats with their settings, its AI agents and outside agents (id, name, handle, provider, model, mode, servers, instructions), and its built-in agents with whether each is on.","surface":"native"},{"id":"patch_rooms_by_id","method":"PATCH","path":"/rooms/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Change a room: name, guests_can_ask, auto_tasks (off; person: a task for each person who writes in on a channel; marked: for messages marked todo: or #task).","surface":"native"},{"id":"post_rooms_by_id_agents","method":"POST","path":"/rooms/{id}/agents","group":"rooms","scope":null,"path_params":["id"],"summary":"Add an AI agent to a room: kind ai, name, provider (anthropic or openai), key_id (from GET /rooms/keys), model, mode (mention: answers when named; auto: joins in), instructions, servers (ids from GET /rooms/servers). An outside agent is added on the rooms page: its token is shown once, to a person.","surface":"native"},{"id":"delete_rooms_by_id_agents_by_agent_id","method":"DELETE","path":"/rooms/{id}/agents/{agent_id}","group":"rooms","scope":null,"path_params":["id","agent_id"],"summary":"Take an AI agent out of a room. What it already said stays. Ask the user first.","surface":"native"},{"id":"put_rooms_by_id_builtins_by_builtin","method":"PUT","path":"/rooms/{id}/builtins/{builtin}","group":"rooms","scope":null,"path_params":["id","builtin"],"summary":"Switch one of the room's built-in agents on or off: {on: true or false}.","surface":"native"},{"id":"post_rooms_by_id_changes_by_change","method":"POST","path":"/rooms/{id}/changes/{change}","group":"rooms","scope":null,"path_params":["id","change"],"summary":"Settle a change an agent proposed to a Google Ads account, as its notice says: {apply: true or false}. Ask the user first.","surface":"native"},{"id":"get_rooms_by_id_channels","method":"GET","path":"/rooms/{id}/channels","group":"rooms","scope":null,"path_params":["id"],"summary":"Where a room's conversation is also carried: its links (id, kind, target, can_ask, chat_id).","surface":"native"},{"id":"post_rooms_by_id_channels","method":"POST","path":"/rooms/{id}/channels","group":"rooms","scope":null,"path_params":["id"],"summary":"Carry a room's conversation to a place, both ways: kind, target_id (from targets) or address, can_ask (whether people there may ask its AI agents).","surface":"native"},{"id":"get_rooms_by_id_channels_by_kind_targets","method":"GET","path":"/rooms/{id}/channels/{kind}/targets","group":"rooms","scope":null,"path_params":["id","kind"],"summary":"What a connected account offers to link a room to: its Slack or Discord channels, WhatsApp chats and the like; part narrows a long list.","surface":"native"},{"id":"delete_rooms_by_id_channels_by_link","method":"DELETE","path":"/rooms/{id}/channels/{link}","group":"rooms","scope":null,"path_params":["id","link"],"summary":"Stop carrying a room's conversation to that place.","surface":"native"},{"id":"patch_rooms_by_id_channels_by_link","method":"PATCH","path":"/rooms/{id}/channels/{link}","group":"rooms","scope":null,"path_params":["id","link"],"summary":"Change a room link: can_ask, or chat_id to carry a different chat.","surface":"native"},{"id":"post_rooms_by_id_chats","method":"POST","path":"/rooms/{id}/chats","group":"rooms","scope":null,"path_params":["id"],"summary":"Start another chat in a room: name (optional).","surface":"native"},{"id":"delete_rooms_by_id_chats_by_chat","method":"DELETE","path":"/rooms/{id}/chats/{chat}","group":"rooms","scope":null,"path_params":["id","chat"],"summary":"Delete a chat and its messages; a room keeps at least one. Ask the user first.","surface":"native"},{"id":"patch_rooms_by_id_chats_by_chat","method":"PATCH","path":"/rooms/{id}/chats/{chat}","group":"rooms","scope":null,"path_params":["id","chat"],"summary":"Rename a chat, or set what it changes over its room: settings {agents: {agent id or handle: auto, mention or off}, guests_can_ask, auto_tasks}; null gives a setting back to the room.","surface":"native"},{"id":"delete_rooms_by_id_chats_by_chat_share","method":"DELETE","path":"/rooms/{id}/chats/{chat}/share","group":"rooms","scope":null,"path_params":["id","chat"],"summary":"Stop sharing a chat on the web.","surface":"native"},{"id":"post_rooms_by_id_chats_by_chat_share","method":"POST","path":"/rooms/{id}/chats/{chat}/share","group":"rooms","scope":null,"path_params":["id","chat"],"summary":"Put one chat on the web, read-only, for anyone with the link: answers shared_url. Ask the user first.","surface":"native"},{"id":"get_rooms_by_id_docs","method":"GET","path":"/rooms/{id}/docs","group":"rooms","scope":null,"path_params":["id"],"summary":"A room's notes: id, title, updated_at.","surface":"native"},{"id":"post_rooms_by_id_docs","method":"POST","path":"/rooms/{id}/docs","group":"rooms","scope":null,"path_params":["id"],"summary":"Write a note in a room: title, body.","surface":"native"},{"id":"delete_rooms_by_id_docs_by_doc","method":"DELETE","path":"/rooms/{id}/docs/{doc}","group":"rooms","scope":null,"path_params":["id","doc"],"summary":"Delete a note.","surface":"native"},{"id":"get_rooms_by_id_docs_by_doc","method":"GET","path":"/rooms/{id}/docs/{doc}","group":"rooms","scope":null,"path_params":["id","doc"],"summary":"Read one note, with its body.","surface":"native"},{"id":"put_rooms_by_id_docs_by_doc","method":"PUT","path":"/rooms/{id}/docs/{doc}","group":"rooms","scope":null,"path_params":["id","doc"],"summary":"Replace a note: title, body.","surface":"native"},{"id":"get_rooms_by_id_files","method":"GET","path":"/rooms/{id}/files","group":"rooms","scope":null,"path_params":["id"],"summary":"A room's files: id, name, size, type.","surface":"native"},{"id":"delete_rooms_by_id_files_by_file","method":"DELETE","path":"/rooms/{id}/files/{file}","group":"rooms","scope":null,"path_params":["id","file"],"summary":"Delete a file from a room.","surface":"native"},{"id":"get_rooms_by_id_files_by_file","method":"GET","path":"/rooms/{id}/files/{file}","group":"rooms","scope":null,"path_params":["id","file"],"summary":"Download one of a room's files, as it was uploaded.","surface":"native"},{"id":"post_rooms_by_id_files_base64","method":"POST","path":"/rooms/{id}/files/base64","group":"rooms","scope":null,"path_params":["id"],"summary":"Put a file in a room: name, type (its media type, like application/pdf), content_base64 (the file in base64, up to 10 MB). It is said in the room, with a link to it.","surface":"native"},{"id":"post_rooms_by_id_handoffs_by_handoff","method":"POST","path":"/rooms/{id}/handoffs/{handoff}","group":"rooms","scope":null,"path_params":["id","handoff"],"summary":"Settle a handoff an agent asked the room for, as its notice says: {allow: true or false}.","surface":"native"},{"id":"post_rooms_by_id_invites","method":"POST","path":"/rooms/{id}/invites","group":"rooms","scope":null,"path_params":["id"],"summary":"An invite link for a guest to join the room under a name of their choosing: answers url and expires_at. Give the url only to whom the user names.","surface":"native"},{"id":"delete_rooms_by_id_invites_by_invite","method":"DELETE","path":"/rooms/{id}/invites/{invite}","group":"rooms","scope":null,"path_params":["id","invite"],"summary":"Stop a guest link: everyone who came in on it loses the room, and what they already said stays. Ask the user first.","surface":"native"},{"id":"get_rooms_by_id_links","method":"GET","path":"/rooms/{id}/links","group":"rooms","scope":null,"path_params":["id"],"summary":"A room's documents by link (Google Docs and any page).","surface":"native"},{"id":"post_rooms_by_id_links","method":"POST","path":"/rooms/{id}/links","group":"rooms","scope":null,"path_params":["id"],"summary":"Add a document by link to a room: url, title.","surface":"native"},{"id":"delete_rooms_by_id_links_by_link","method":"DELETE","path":"/rooms/{id}/links/{link}","group":"rooms","scope":null,"path_params":["id","link"],"summary":"Remove a document link from a room.","surface":"native"},{"id":"get_rooms_by_id_messages","method":"GET","path":"/rooms/{id}/messages","group":"rooms","scope":null,"path_params":["id"],"summary":"A room's messages, oldest first: chat (a chat id; the first chat when absent), after (a seq, for only what is new), limit up to 200.","surface":"native"},{"id":"post_rooms_by_id_messages","method":"POST","path":"/rooms/{id}/messages","group":"rooms","scope":null,"path_params":["id"],"summary":"Say something in a room as the organization's owner: text, chat_id (the first chat when absent). Its agents may answer, and its linked channels carry it out. Ask before writing where people read.","surface":"native"},{"id":"get_rooms_by_id_people","method":"GET","path":"/rooms/{id}/people","group":"rooms","scope":null,"path_params":["id"],"summary":"Who is in a room. people: the organization's own, with user_id, name, role (owner, admin, colleague or client) and in_room - owners and admins are in every room whether or not they are listed in one. links: the guest links, each with when it runs out and who has written on it; a guest has no account, so the link is the identity and several people can share one. past: guests whose link is already gone. Addresses are not given out here.","surface":"native"},{"id":"put_rooms_by_id_people","method":"PUT","path":"/rooms/{id}/people","group":"rooms","scope":null,"path_params":["id"],"summary":"Set which of the organization's own people are in a room: user_ids, the whole list rather than a difference. An id this organization does not know is dropped. Owners and admins are in every room and are not affected. Guests come and go by their link, not here.","surface":"native"},{"id":"delete_rooms_by_id_share","method":"DELETE","path":"/rooms/{id}/share","group":"rooms","scope":null,"path_params":["id"],"summary":"Stop sharing the room on the web; its link stops working.","surface":"native"},{"id":"post_rooms_by_id_share","method":"POST","path":"/rooms/{id}/share","group":"rooms","scope":null,"path_params":["id"],"summary":"Put the whole room on the web, read-only, for anyone with the link: answers shared_url. Ask the user first.","surface":"native"},{"id":"get_rooms_by_id_sync","method":"GET","path":"/rooms/{id}/sync","group":"rooms","scope":null,"path_params":["id"],"summary":"Which task tool projects a room's tasks are kept in step with.","surface":"native"},{"id":"post_rooms_by_id_sync","method":"POST","path":"/rooms/{id}/sync","group":"rooms","scope":null,"path_params":["id"],"summary":"Keep a room's tasks in step with a task tool project: account_id, project_id.","surface":"native"},{"id":"get_rooms_by_id_sync_by_account_projects","method":"GET","path":"/rooms/{id}/sync/{account}/projects","group":"rooms","scope":null,"path_params":["id","account"],"summary":"The projects a connected task tool account offers to keep a room in step with.","surface":"native"},{"id":"delete_rooms_by_id_sync_by_link","method":"DELETE","path":"/rooms/{id}/sync/{link}","group":"rooms","scope":null,"path_params":["id","link"],"summary":"Stop keeping a room in step with that project.","surface":"native"},{"id":"post_rooms_by_id_sync_by_link_run","method":"POST","path":"/rooms/{id}/sync/{link}/run","group":"rooms","scope":null,"path_params":["id","link"],"summary":"Bring a room and its task tool project in step now.","surface":"native"},{"id":"get_rooms_by_id_tasks","method":"GET","path":"/rooms/{id}/tasks","group":"rooms","scope":null,"path_params":["id"],"summary":"A room's tasks: title, notes, status (open, doing, done), ready, assignee, due, priority (low, normal, high, urgent), links, account (the Google Ads account it is about, where it is about one), and the channel that made one. ready=true gives only the ones waiting to be taken.","surface":"native"},{"id":"post_rooms_by_id_tasks","method":"POST","path":"/rooms/{id}/tasks","group":"rooms","scope":null,"path_params":["id"],"summary":"Add a task to a room: title, notes, status, ready (whether it is specified well enough for an assistant to finish on its own), assignee, due (YYYY-MM-DD), priority, links [{title, url}], account (a Google Ads customer id, when the task is a piece of work in one of the organization's accounts). A client asking for something in the room belongs here: the task is what an expert reviews and closes, by hand or by applying a change an agent drafted for it.","surface":"native"},{"id":"delete_rooms_by_id_tasks_by_task","method":"DELETE","path":"/rooms/{id}/tasks/{task}","group":"rooms","scope":null,"path_params":["id","task"],"summary":"Delete a task.","surface":"native"},{"id":"patch_rooms_by_id_tasks_by_task","method":"PATCH","path":"/rooms/{id}/tasks/{task}","group":"rooms","scope":null,"path_params":["id","task"],"summary":"Change a task: any of title, notes, status, ready, assignee, due, priority, links, account. Finishing one means status done - which is also what applying a Google Ads change that answers it does on its own.","surface":"native"},{"id":"get_rooms_by_id_ui","method":"GET","path":"/rooms/{id}/ui","group":"rooms","scope":null,"path_params":["id"],"summary":"How a room looks, and what it may be set to: settings (what this person sees now), room (what everyone sees), mine (this person on top of it), defaults, vocabulary (every setting with its allowed values), presets, pending (changes somebody else made that this person has not agreed to yet) and may_change_room.","surface":"native"},{"id":"put_rooms_by_id_ui","method":"PUT","path":"/rooms/{id}/ui","group":"rooms","scope":null,"path_params":["id"],"summary":"Change how a room looks: scope (everyone for the room, mine for just this person), and a preset (top-rated, jira, clickup, asana or hubspot), or settings, or both - the preset is laid down first and the named settings go over it, so like Jira but keep the agent strip is one call. Settings are defaultTab (tasks, chat, files), taskView (board, list, table), taskGroup (status, priority, assignee, none), nav (list, rail, hidden), chatPlace (tab, side, below), toolbar (top, inline), rhythm (tight, normal, airy), typeScale (small, normal, large), shape (square, soft, round), card (plain, rich), agentStrip (shown, hidden), chatWidth (narrow, wide) and accent (default, violet, blue, green, amber, rose). Only a member may change the room for everyone; a guest may only change their own view.","surface":"native"},{"id":"post_rooms_by_id_ui_changes_by_change_accept","method":"POST","path":"/rooms/{id}/ui/changes/{change}/accept","group":"rooms","scope":null,"path_params":["id","change"],"summary":"Agree to a look change somebody else made, so it stops being offered to this person.","surface":"native"},{"id":"post_rooms_by_id_ui_changes_by_change_undo","method":"POST","path":"/rooms/{id}/ui/changes/{change}/undo","group":"rooms","scope":null,"path_params":["id","change"],"summary":"Put a look change back: it writes the old values as a new change, which anybody may undo in turn, so the history only grows. Members only.","surface":"native"},{"id":"get_rooms_arrivals","method":"GET","path":"/rooms/arrivals","group":"rooms","scope":null,"path_params":[],"summary":"Where a customer conversation nobody linked arrives: room_id (null means one is chosen on the next message, and a room named Customer conversations is made if there is none) and off.","surface":"native"},{"id":"put_rooms_arrivals","method":"PUT","path":"/rooms/arrivals","group":"rooms","scope":null,"path_params":[],"summary":"Set it: room_id (one of the organization's rooms, or null to have one chosen) and off (true stops customer conversations arriving in a room at all). A conversation a member removed from a room is never put back.","surface":"native"},{"id":"get_rooms_channels","method":"GET","path":"/rooms/channels","group":"rooms","scope":null,"path_params":[],"summary":"The platforms a room's conversation can be carried to (linkedin, discord, slack, clickup, whatsapp, chatwoot, line, x, webhook, inbox, webchat) and the organization's accounts on each.","surface":"native"},{"id":"post_rooms_channels_by_kind_connect","method":"POST","path":"/rooms/channels/{kind}/connect","group":"rooms","scope":null,"path_params":["kind"],"summary":"Connect a platform account for rooms. Answers next: url (a sign-in link to give the user), qr (a WhatsApp QR image for the phone to scan) or done. A platform that needs a token pasted is connected on the rooms page.","surface":"native"},{"id":"delete_rooms_channels_accounts_by_id","method":"DELETE","path":"/rooms/channels/accounts/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Disconnect a platform account from rooms, and every room link through it.","surface":"native"},{"id":"get_rooms_channels_people","method":"GET","path":"/rooms/channels/people","group":"rooms","scope":null,"path_params":[],"summary":"Who the organization has said is who on its platforms: each with kind, external_id (the number or account id the platform shows), user_id, label, powers (what was written: manage or read), member (their name now, or null when they have left the organization) and effective (what they would really get on a message now). Where somebody has no row here, a message from them is answered as nobody: the agents read only what is open to everyone in the organization and draft nothing.","surface":"native"},{"id":"put_rooms_channels_people","method":"PUT","path":"/rooms/channels/people","group":"rooms","scope":null,"path_params":[],"summary":"Say that somebody on a platform is one of the organization's members: kind, external_id (the WhatsApp number or the Slack, Discord or other account id, exactly as that platform gives it), user_id (from GET /workspace/people), label (what a person sees in the table), powers (read by default; manage lets the room agents draft a change for somebody to apply, and is refused for a member who is not an owner or an admin). A platform proves only that a message came from that number or account, never whose it is, so have the user confirm the person and the id before writing one.","surface":"native"},{"id":"delete_rooms_channels_people_by_kind_by_external_id","method":"DELETE","path":"/rooms/channels/people/{kind}/{external_id}","group":"rooms","scope":null,"path_params":["kind","external_id"],"summary":"Forget who somebody on a platform is: their messages are answered as nobody again. Ask the user first.","surface":"native"},{"id":"get_rooms_google_ads_accounts","method":"GET","path":"/rooms/google-ads/accounts","group":"rooms","scope":null,"path_params":[],"summary":"The Google Ads accounts this organization may work in, for naming on a task: customer_id, label and may_change. An owner or an admin sees every account the organization was assigned; a colleague or a client sees only the ones named to them. Empty for an organization that works in none.","surface":"native"},{"id":"get_rooms_google_ads_experts","method":"GET","path":"/rooms/google-ads/experts","group":"rooms","scope":null,"path_params":[],"summary":"Whether this organization can have specialists look after a Google Ads account of its own, and what it has asked so far: experts (their name, or null when there is nobody to ask), may_ask (whether this caller runs the organization) and asks, each with customer_id and status (asked, accepted). An accepted one means its agents read and draft in that account while the specialists are the only ones who apply a change.","surface":"native"},{"id":"post_rooms_google_ads_experts","method":"POST","path":"/rooms/google-ads/experts","group":"rooms","scope":null,"path_params":[],"summary":"Name one of this organization's own Google Ads accounts and ask those specialists to look after it: {customer_id, note}. Their manager account then invites that account; somebody accepts the invitation in Google Ads; after that the organization's agents read it and draft changes in it, and the specialists are the ones who verify a draft and apply it. Asking is the organization's own consent, so have the user say the account id themselves. Owners and admins only.","surface":"native"},{"id":"get_rooms_keys","method":"GET","path":"/rooms/keys","group":"rooms","scope":null,"path_params":[],"summary":"The organization's AI model keys for rooms (id, provider, label, last4). A new key is added on the rooms page, never through the chat.","surface":"native"},{"id":"delete_rooms_keys_by_id","method":"DELETE","path":"/rooms/keys/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Remove an AI model key; agents that use it stop answering. Ask the user first.","surface":"native"},{"id":"get_rooms_servers","method":"GET","path":"/rooms/servers","group":"rooms","scope":null,"path_params":[],"summary":"The MCP servers a room's AI agent can be given: the organization's own agents, Top Voice when connected, and servers added by address.","surface":"native"},{"id":"post_rooms_servers","method":"POST","path":"/rooms/servers","group":"rooms","scope":null,"path_params":[],"summary":"Add an MCP server by label and public https url. One that needs a token is added on the rooms page.","surface":"native"},{"id":"delete_rooms_servers_by_id","method":"DELETE","path":"/rooms/servers/{id}","group":"rooms","scope":null,"path_params":["id"],"summary":"Remove an MCP server from the organization's list.","surface":"native"},{"id":"get_rooms_settings","method":"GET","path":"/rooms/settings","group":"rooms","scope":null,"path_params":[],"summary":"The limits on the organization's room AI agents (policy: preset, repliesPerHour, dailyRepliesPerKey, dailyTokensPerKey, hops, toolRounds, history, replyLength, handoffs), the presets, and today's usage per key.","surface":"native"},{"id":"put_rooms_settings","method":"PUT","path":"/rooms/settings","group":"rooms","scope":null,"path_params":[],"summary":"Set those limits: the whole policy object as GET /rooms/settings shows it, or a preset's values (thrifty, balanced, generous).","surface":"native"},{"id":"delete_rooms_sync_accounts_by_account","method":"DELETE","path":"/rooms/sync/accounts/{account}","group":"rooms","scope":null,"path_params":["account"],"summary":"Disconnect a task tool account, and every room kept in step through it.","surface":"native"},{"id":"get_rooms_sync_providers","method":"GET","path":"/rooms/sync/providers","group":"rooms","scope":null,"path_params":[],"summary":"The task tools room tasks can be kept in step with (ClickUp, Asana, Jira, Trello, HubSpot) and the organization's connected accounts. An account is connected on the rooms page: it takes a token.","surface":"native"},{"id":"delete_rooms_topvoice","method":"DELETE","path":"/rooms/topvoice","group":"rooms","scope":null,"path_params":[],"summary":"Disconnect Top Voice.","surface":"native"},{"id":"get_rooms_topvoice","method":"GET","path":"/rooms/topvoice","group":"rooms","scope":null,"path_params":[],"summary":"Whether the organization's Top Voice account is connected, where Top Voice is offered.","surface":"native"},{"id":"post_rooms_topvoice_connect","method":"POST","path":"/rooms/topvoice/connect","group":"rooms","scope":null,"path_params":[],"summary":"A sign-in link that connects the organization's Top Voice account: give the url to the user.","surface":"native"},{"id":"get_rooms_work_ready","method":"GET","path":"/rooms/work/ready","group":"rooms","scope":null,"path_params":[],"summary":"The work waiting to be taken, across every room: each task with its room. A room is a conversation around making and closing tasks, and a ready one is specified well enough to finish without asking - what it is, what done looks like, and the links it needs. This is how a person carries work out of a room and into whichever assistant they work in: take one, do it there, then PATCH its status to done.","surface":"native"},{"id":"post_slack_v1_connection_link","method":"POST","path":"/slack/v1/connection/link","group":"slack","scope":null,"path_params":[],"summary":"A link to Slack's own page that installs the app in a workspace: give it to someone who may add apps there. Once they allow it, the workspace is the organization's for this API and for project rooms.","surface":"native"},{"id":"get_slack_v1_workspaces","method":"GET","path":"/slack/v1/workspaces","group":"slack","scope":null,"path_params":[],"summary":"The Slack workspaces the organization installed the app in, with their team_id.","surface":"native"},{"id":"delete_slack_v1_workspaces_by_team_id","method":"DELETE","path":"/slack/v1/workspaces/{team_id}","group":"slack","scope":null,"path_params":["team_id"],"summary":"Let go of a workspace: the app's access to it is revoked, for rooms and API alike.","surface":"native"},{"id":"get_slack_v1_workspaces_by_team_id_channels","method":"GET","path":"/slack/v1/workspaces/{team_id}/channels","group":"slack","scope":null,"path_params":["team_id"],"summary":"A workspace's channels: every public one, and the private ones the app was invited to, with channel_id and whether the app is a member. limit up to 1,000 and cursor to page.","surface":"native"},{"id":"get_slack_v1_workspaces_by_team_id_channels_by_channel_id_messages","method":"GET","path":"/slack/v1/workspaces/{team_id}/channels/{channel_id}/messages","group":"slack","scope":null,"path_params":["team_id","channel_id"],"summary":"A channel's messages, newest first: limit up to 200, cursor to page, oldest and latest as Slack timestamps (ts). The app joins a public channel it is not in.","surface":"native"},{"id":"post_slack_v1_workspaces_by_team_id_channels_by_channel_id_messages","method":"POST","path":"/slack/v1/workspaces/{team_id}/channels/{channel_id}/messages","group":"slack","scope":null,"path_params":["team_id","channel_id"],"summary":"Post in a channel as the app: text, up to 4,000 characters; thread_ts, a message's ts to reply in its thread; username, a name to post under. It pings nobody, and the app joins a public channel it is not in.","surface":"native"},{"id":"get_slack_v1_workspaces_by_team_id_channels_by_channel_id_messages_by_ts_replies","method":"GET","path":"/slack/v1/workspaces/{team_id}/channels/{channel_id}/messages/{ts}/replies","group":"slack","scope":null,"path_params":["team_id","channel_id","ts"],"summary":"A thread: the message with timestamp ts and its replies, oldest first, limit up to 200 and cursor to page.","surface":"native"},{"id":"get_slack_v1_workspaces_by_team_id_users_by_user_id","method":"GET","path":"/slack/v1/workspaces/{team_id}/users/{user_id}","group":"slack","scope":null,"path_params":["team_id","user_id"],"summary":"A person in the workspace: their display name, real name, time zone and whether they are a bot. Message user_id values are these.","surface":"native"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Get a User Profile","surface":"upstream","limit":"profiles"},{"id":"patch_linkedin_v2_by_account_id_users_by_user_id","method":"PATCH","path":"/linkedin/v2/{account_id}/users/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Update a User Profile","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_chat","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/chat","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Get a User Chat","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_comments","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/comments","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List all User Comments","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_followers","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/followers","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List Followers of a User","surface":"upstream","limit":"relations"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_following","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/following","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List Following of a User","surface":"upstream","limit":"relations"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_followings","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/followings","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List all User Followings","surface":"upstream","limit":"relations"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_picture","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/picture","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Get a User Picture","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_posts","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/posts","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List all User's Posts","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_presence","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/presence","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Get a User Presence","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_reactions","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/reactions","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List all User Reactions","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_by_user_id_relations","method":"GET","path":"/linkedin/v2/{account_id}/users/{user_id}/relations","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"List Relations of a User","surface":"upstream","limit":"relations"},{"id":"post_linkedin_v2_by_account_id_users_me_follow_by_user_id","method":"POST","path":"/linkedin/v2/{account_id}/users/me/follow/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Follow a User","surface":"upstream","limit":"actions"},{"id":"get_linkedin_v2_by_account_id_users_me_relation_requests","method":"GET","path":"/linkedin/v2/{account_id}/users/me/relation-requests","group":"users","scope":null,"path_params":["account_id"],"summary":"List all pending Relation / Follow requests","surface":"upstream","limit":"relations"},{"id":"post_linkedin_v2_by_account_id_users_me_relation_requests","method":"POST","path":"/linkedin/v2/{account_id}/users/me/relation-requests","group":"users","scope":null,"path_params":["account_id"],"summary":"Send a Relation request","surface":"upstream","limit":"invitations"},{"id":"post_linkedin_v2_by_account_id_users_me_relation_requests_by_request_id_accept","method":"POST","path":"/linkedin/v2/{account_id}/users/me/relation-requests/{request_id}/accept","group":"users","scope":null,"path_params":["account_id","request_id"],"summary":"Accept a Relation request","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_users_me_relation_requests_by_request_id_cancel","method":"POST","path":"/linkedin/v2/{account_id}/users/me/relation-requests/{request_id}/cancel","group":"users","scope":null,"path_params":["account_id","request_id"],"summary":"Cancel or Refuse a Relation / Follow request","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_users_me_relation_requests_by_user_id","method":"POST","path":"/linkedin/v2/{account_id}/users/me/relation-requests/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Send a Relation request","surface":"upstream","limit":"invitations"},{"id":"delete_linkedin_v2_by_account_id_users_me_relations_by_user_id","method":"DELETE","path":"/linkedin/v2/{account_id}/users/me/relations/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Delete a Relation","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_users_me_unfollow_by_user_id","method":"POST","path":"/linkedin/v2/{account_id}/users/me/unfollow/{user_id}","group":"users","scope":null,"path_params":["account_id","user_id"],"summary":"Unfollow a User","surface":"upstream","limit":"actions"},{"id":"post_linkedin_v2_by_account_id_users_visit_profile","method":"POST","path":"/linkedin/v2/{account_id}/users/visit-profile","group":"users","scope":null,"path_params":["account_id"],"summary":"Report a Profile Visit","surface":"upstream","limit":"profiles"},{"id":"get_webchat_v1_agents","method":"GET","path":"/webchat/v1/agents","group":"webchat","scope":null,"path_params":[],"summary":"The organization's AI agents a website chat or a conversation can be given to, each with the room it belongs to. They answer visitors without tools, on the organization's own AI key.","surface":"native"},{"id":"get_webchat_v1_conversations","method":"GET","path":"/webchat/v1/conversations","group":"webchat","scope":null,"path_params":[],"summary":"Conversations, the most recently active first: status open (default), resolved or all; widget_id; assignee nobody, member:{id} or agent:{id}; limit up to 100, and before = the answer's next for the page after.","surface":"native"},{"id":"get_webchat_v1_conversations_by_id","method":"GET","path":"/webchat/v1/conversations/{id}","group":"webchat","scope":null,"path_params":["id"],"summary":"One conversation: the visitor (name, email), the page it began on, its status, who it is assigned to, unread messages and the last message.","surface":"native"},{"id":"patch_webchat_v1_conversations_by_id","method":"PATCH","path":"/webchat/v1/conversations/{id}","group":"webchat","scope":null,"path_params":["id"],"summary":"Resolve or reopen a conversation (status resolved or open), or assign it: assignee {kind: member, id} for one of the organization's members, {kind: agent, id} for one of its AI agents, which then answers the visitor, or null for nobody.","surface":"native"},{"id":"get_webchat_v1_conversations_by_id_messages","method":"GET","path":"/webchat/v1/conversations/{id}/messages","group":"webchat","scope":null,"path_params":["id"],"summary":"A conversation's messages, oldest first: the visitor's, the team's (members, AI agents, this API), private notes and the chat's own notices. after = a message id for only what is newer; limit up to 200.","surface":"native"},{"id":"post_webchat_v1_conversations_by_id_messages","method":"POST","path":"/webchat/v1/conversations/{id}/messages","group":"webchat","scope":null,"path_params":["id"],"summary":"Answer the visitor: text, up to 4,000 characters, shown under author_name (default: the chat's name). private true writes a note only the team sees. A visitor who has left sees it when they come back.","surface":"native"},{"id":"post_webchat_v1_conversations_by_id_read","method":"POST","path":"/webchat/v1/conversations/{id}/read","group":"webchat","scope":null,"path_params":["id"],"summary":"Mark a conversation read: its unread count goes back to zero.","surface":"native"},{"id":"get_webchat_v1_rooms","method":"GET","path":"/webchat/v1/rooms","group":"webchat","scope":null,"path_params":[],"summary":"The organization's rooms, for room_id: a website chat's conversations become tasks there, one per visitor, assigned as the conversation is.","surface":"native"},{"id":"get_webchat_v1_widgets","method":"GET","path":"/webchat/v1/widgets","group":"webchat","scope":null,"path_params":[],"summary":"The organization's website chats, each with its id, look, sites, the room its conversations become tasks in (room_id), the AI agent that answers first (agent_id) and the snippet to paste into a website's pages.","surface":"native"},{"id":"post_webchat_v1_widgets","method":"POST","path":"/webchat/v1/widgets","group":"webchat","scope":null,"path_params":[],"summary":"Add a website chat: name (what visitors see), color (#rrggbb), greeting, sites (host names that may show it, *.example.com for subdomains; none means any), ask_email (off, optional, required), room_id and agent_id. The answer's snippet goes before </body> on every page.","surface":"native"},{"id":"delete_webchat_v1_widgets_by_id","method":"DELETE","path":"/webchat/v1/widgets/{id}","group":"webchat","scope":null,"path_params":["id"],"summary":"Remove a website chat and every conversation it had. Pages that still carry its snippet show nothing.","surface":"native"},{"id":"get_webchat_v1_widgets_by_id","method":"GET","path":"/webchat/v1/widgets/{id}","group":"webchat","scope":null,"path_params":["id"],"summary":"One website chat, with its snippet.","surface":"native"},{"id":"patch_webchat_v1_widgets_by_id","method":"PATCH","path":"/webchat/v1/widgets/{id}","group":"webchat","scope":null,"path_params":["id"],"summary":"Change a website chat: any of name, color, greeting, sites, ask_email, room_id and agent_id; null clears room_id or agent_id. The snippet stays the same.","surface":"native"},{"id":"post_linkedin_webhooks_deliveries_by_id_replay","method":"POST","path":"/linkedin/webhooks/deliveries/{id}/replay","group":"webhooks","scope":null,"path_params":["id"],"summary":"Send one past delivery again, by its id from the deliveries list -- for an event your endpoint missed or mishandled. It is queued, not delivered on the spot. An event in the AI inbox cannot be replayed: it is read rather than sent, so there is nothing to send again.","surface":"native"},{"id":"get_linkedin_webhooks_endpoints","method":"GET","path":"/linkedin/webhooks/endpoints","group":"webhooks","scope":null,"path_params":[],"summary":"List this organization's webhook endpoints: each one's id, the URL events are sent to, which events it asked for, and whether it is still delivering. Signing secrets are never returned here -- a secret is shown once, when the endpoint is created.","surface":"native"},{"id":"post_linkedin_webhooks_endpoints","method":"POST","path":"/linkedin/webhooks/endpoints","group":"webhooks","scope":null,"path_params":[],"summary":"Send events to a URL of your own: give url and events (message.received, message.sent, relation.added, account.status_changed, account.checkpoint_required, and the x.*, whatsapp.*, discord.* and other channel events). Answers with the endpoint and its signing secret, which is shown this once and never again. To read events without hosting anything, open the AI inbox instead (POST /webhooks/inbox).","surface":"native"},{"id":"delete_linkedin_webhooks_endpoints_by_id","method":"DELETE","path":"/linkedin/webhooks/endpoints/{id}","group":"webhooks","scope":null,"path_params":["id"],"summary":"Stop and remove a webhook endpoint. Events already queued for it are dropped, and nothing further is delivered to that URL.","surface":"native"},{"id":"get_linkedin_webhooks_endpoints_by_id","method":"GET","path":"/linkedin/webhooks/endpoints/{id}","group":"webhooks","scope":null,"path_params":["id"],"summary":"Read one webhook endpoint: its URL, the events it subscribes to and its current state. An id belonging to another organization answers as if it does not exist.","surface":"native"},{"id":"patch_linkedin_webhooks_endpoints_by_id","method":"PATCH","path":"/linkedin/webhooks/endpoints/{id}","group":"webhooks","scope":null,"path_params":["id"],"summary":"Change a webhook endpoint: the url it delivers to, or the events list. Send only the fields you are changing. The signing secret is not changed and not returned.","surface":"native"},{"id":"get_linkedin_webhooks_endpoints_by_id_deliveries","method":"GET","path":"/linkedin/webhooks/endpoints/{id}/deliveries","group":"webhooks","scope":null,"path_params":["id"],"summary":"What this endpoint was actually sent, newest first, up to 100: the event, when it was attempted, the HTTP status that came back and whether it succeeded. This is where to look when a webhook 'is not firing' -- a delivery listed with a failing status is a problem at the receiving URL, not here.","surface":"native"},{"id":"get_linkedin_webhooks_inbox","method":"GET","path":"/linkedin/webhooks/inbox","group":"webhooks","scope":null,"path_params":[],"summary":"Read the AI inbox: what happened on your connected LinkedIn accounts (messages received and sent, new relations, account status changes and checkpoints), in your shared inbox (inbox.* events) and on your X account (x.message_*), oldest first, kept 30 days. Pass query.after = the next value from your last read to see only what is new, query.event to filter, query.since for a time.","surface":"native"},{"id":"post_linkedin_webhooks_inbox","method":"POST","path":"/linkedin/webhooks/inbox","group":"webhooks","scope":null,"path_params":[],"summary":"Open the AI inbox: a webhook kept for your AI instead of sent anywhere, receiving every event: your connected LinkedIn accounts, your shared inbox and your X account. Opened for you when an AI connection is created; calling it again answers the same inbox.","surface":"native"},{"id":"get_linkedin_webhooks_status","method":"GET","path":"/linkedin/webhooks/status","group":"webhooks","scope":null,"path_params":[],"summary":"Whether events are flowing at all, before you debug one endpoint: receiving_events says whether this server is subscribed upstream, upstream_configured whether the connection behind every event exists, and endpoints and accounts_connected how many of each this organization has. receiving_events false with endpoints above zero means nothing will ever arrive, however correct the endpoint is.","surface":"native"},{"id":"get_whatsapp_v1_chats","method":"GET","path":"/whatsapp/v1/chats","group":"whatsapp","scope":null,"path_params":[],"summary":"The number's chats, newest first: limit, offset.","surface":"native"},{"id":"get_whatsapp_v1_chats_by_chat_id_messages","method":"GET","path":"/whatsapp/v1/chats/{chat_id}/messages","group":"whatsapp","scope":null,"path_params":["chat_id"],"summary":"A chat's messages, newest first: limit, offset. Text only: a picture or file is marked has_media, without its file.","surface":"native"},{"id":"post_whatsapp_v1_chats_by_chat_id_seen","method":"POST","path":"/whatsapp/v1/chats/{chat_id}/seen","group":"whatsapp","scope":null,"path_params":["chat_id"],"summary":"Mark a chat's messages read.","surface":"native"},{"id":"get_whatsapp_v1_chats_overview","method":"GET","path":"/whatsapp/v1/chats/overview","group":"whatsapp","scope":null,"path_params":[],"summary":"The number's chats with each one's last message and unread count: limit, offset.","surface":"native"},{"id":"delete_whatsapp_v1_connection","method":"DELETE","path":"/whatsapp/v1/connection","group":"whatsapp","scope":null,"path_params":[],"summary":"Unlink the WhatsApp number, for rooms and API alike; it leaves the phone's Linked devices.","surface":"native"},{"id":"get_whatsapp_v1_connection","method":"GET","path":"/whatsapp/v1/connection","group":"whatsapp","scope":null,"path_params":[],"summary":"Whether a WhatsApp number is linked, with its phone number and name, or the state it is in.","surface":"native"},{"id":"put_whatsapp_v1_connection","method":"PUT","path":"/whatsapp/v1/connection","group":"whatsapp","scope":null,"path_params":[],"summary":"Link the organization's own WhatsApp number, as WhatsApp Web is linked: answers connected, or a QR code (qr_image) for the phone to scan in WhatsApp, Settings, Linked devices. Call again for a fresh code; it changes every 20 seconds.","surface":"native"},{"id":"post_whatsapp_v1_connection_link","method":"POST","path":"/whatsapp/v1/connection/link","group":"whatsapp","scope":null,"path_params":[],"summary":"A one-hour link to a page that shows the QR code to scan, kept fresh: give it to the person holding the phone.","surface":"native"},{"id":"get_whatsapp_v1_contacts_check","method":"GET","path":"/whatsapp/v1/contacts/check","group":"whatsapp","scope":null,"path_params":[],"summary":"Whether a phone number is on WhatsApp, and its chat_id: phone, digits with the country code.","surface":"native"},{"id":"get_whatsapp_v1_groups","method":"GET","path":"/whatsapp/v1/groups","group":"whatsapp","scope":null,"path_params":[],"summary":"The groups the number is in, with their chat_id.","surface":"native"},{"id":"post_whatsapp_v1_messages","method":"POST","path":"/whatsapp/v1/messages","group":"whatsapp","scope":null,"path_params":[],"summary":"Send a text from the linked number: to is a phone number like +15551234567, or a chat_id such as 15551234567@c.us or a group's ...@g.us. Messages are paced 10 to 20 seconds apart, as a person types.","surface":"native"},{"id":"get_workspace_people","method":"GET","path":"/workspace/people","group":"workspace","scope":null,"path_params":[],"summary":"Who is in this organization: me (user_id, role), rooms (id, name), people (user_id, email, name, role of owner, admin, colleague or client, joined_at, room_ids, all_rooms - owners and admins are in every room) and the invitations still open. Managers only. To invite somebody or change a role, a person does it signed in on the account page: this key cannot.","surface":"native"},{"id":"put_workspace_settings","method":"PUT","path":"/workspace/settings","group":"workspace","scope":null,"path_params":[],"summary":"Set what the organization shows its people: {surface: full} for the whole dashboard, or {surface: app} to show only the rooms app. Managers only. It changes what every member sees, so ask the user first.","surface":"native"},{"id":"get_workspace_surface","method":"GET","path":"/workspace/surface","group":"workspace","scope":null,"path_params":[],"summary":"What this organization shows its people: surface (full for the whole dashboard, or app for the rooms app alone) and the caller's role.","surface":"native"},{"id":"post_x_v1_2_dm_conversations","method":"POST","path":"/x/v1/2/dm_conversations","group":"x","scope":null,"path_params":[],"summary":"Start a group conversation on X: body {conversation_type: Group, participant_ids, message:{text}}.","surface":"native"},{"id":"get_x_v1_2_dm_conversations_by_dm_conversation_id_dm_events","method":"GET","path":"/x/v1/2/dm_conversations/{dm_conversation_id}/dm_events","group":"x","scope":null,"path_params":["dm_conversation_id"],"summary":"The direct messages of one X conversation (two user ids joined by -, or a group's id).","surface":"native"},{"id":"post_x_v1_2_dm_conversations_by_dm_conversation_id_messages","method":"POST","path":"/x/v1/2/dm_conversations/{dm_conversation_id}/messages","group":"x","scope":null,"path_params":["dm_conversation_id"],"summary":"A direct message on X to an existing conversation: body {text}.","surface":"native"},{"id":"get_x_v1_2_dm_conversations_with_by_participant_id_dm_events","method":"GET","path":"/x/v1/2/dm_conversations/with/{participant_id}/dm_events","group":"x","scope":null,"path_params":["participant_id"],"summary":"Your direct messages with one person on X, by their user id.","surface":"native"},{"id":"post_x_v1_2_dm_conversations_with_by_participant_id_messages","method":"POST","path":"/x/v1/2/dm_conversations/with/{participant_id}/messages","group":"x","scope":null,"path_params":["participant_id"],"summary":"A direct message on X to one person, by their user id: body {text}. POST /x/v1/messages does the same and also handles X Chat.","surface":"native"},{"id":"get_x_v1_2_dm_events","method":"GET","path":"/x/v1/2/dm_events","group":"x","scope":null,"path_params":[],"summary":"Your recent direct messages on X, across conversations: query max_results, pagination_token, dm_event.fields.","surface":"native"},{"id":"delete_x_v1_2_dm_events_by_id","method":"DELETE","path":"/x/v1/2/dm_events/{id}","group":"x","scope":null,"path_params":["id"],"summary":"Delete a direct message you sent on X.","surface":"native"},{"id":"get_x_v1_2_dm_events_by_id","method":"GET","path":"/x/v1/2/dm_events/{id}","group":"x","scope":null,"path_params":["id"],"summary":"One direct message on X.","surface":"native"},{"id":"post_x_v1_2_tweets","method":"POST","path":"/x/v1/2/tweets","group":"x","scope":null,"path_params":[],"summary":"Post on X as your account, or reply: body {text, reply?:{in_reply_to_tweet_id}}. Public: confirm the wording with the user first.","surface":"native"},{"id":"delete_x_v1_2_tweets_by_id","method":"DELETE","path":"/x/v1/2/tweets/{id}","group":"x","scope":null,"path_params":["id"],"summary":"Delete one of your posts on X. Ask the user first.","surface":"native"},{"id":"get_x_v1_2_tweets_by_id","method":"GET","path":"/x/v1/2/tweets/{id}","group":"x","scope":null,"path_params":["id"],"summary":"Read one post on X.","surface":"native"},{"id":"get_x_v1_2_users_by_id","method":"GET","path":"/x/v1/2/users/{id}","group":"x","scope":null,"path_params":["id"],"summary":"An X account by user id: query user.fields as in X's API.","surface":"native"},{"id":"get_x_v1_2_users_by_id_mentions","method":"GET","path":"/x/v1/2/users/{id}/mentions","group":"x","scope":null,"path_params":["id"],"summary":"Recent posts that mention a person on X: query max_results, pagination_token, tweet.fields.","surface":"native"},{"id":"get_x_v1_2_users_by_id_tweets","method":"GET","path":"/x/v1/2/users/{id}/tweets","group":"x","scope":null,"path_params":["id"],"summary":"A person's recent posts on X: query max_results, pagination_token, tweet.fields.","surface":"native"},{"id":"get_x_v1_2_users_by_username_by_username","method":"GET","path":"/x/v1/2/users/by/username/{username}","group":"x","scope":null,"path_params":["username"],"summary":"An X account by username, without the @: query user.fields as in X's API.","surface":"native"},{"id":"get_x_v1_2_users_me","method":"GET","path":"/x/v1/2/users/me","group":"x","scope":null,"path_params":[],"summary":"Your connected X account, as X describes it.","surface":"native"},{"id":"delete_x_v1_connection","method":"DELETE","path":"/x/v1/connection","group":"x","scope":null,"path_params":[],"summary":"Disconnect the X account, for this API and project rooms alike. Ask the user first.","surface":"native"},{"id":"get_x_v1_connection","method":"GET","path":"/x/v1/connection","group":"x","scope":null,"path_params":[],"summary":"Whether an X account is connected, and which: user_id, username, and x_chat (whether X Chat's encrypted messages are on).","surface":"native"},{"id":"put_x_v1_connection","method":"PUT","path":"/x/v1/connection","group":"x","scope":null,"path_params":[],"summary":"Connect your own X account with your own X app's keys from console.x.com: body {api_key, api_secret, access_token, access_secret, chat_pin? (the X Chat passcode, for encrypted messages)}. The keys are checked with X and never answered back.","surface":"native"},{"id":"post_x_v1_messages","method":"POST","path":"/x/v1/messages","group":"x","scope":null,"path_params":[],"summary":"Send a message on X to one person: body {to: an X user id or a username such as @pat, text}. Goes to X Chat, encrypted, when you have a conversation there and the passcode was given; otherwise a direct message.","surface":"native"}]}},"featured":["complete:post_linkedin_connect_credentials","complete:post_linkedin_connect_cookie","complete:get_linkedin_connect_accounts","complete:post_linkedin_v2_by_account_id_linkedin_search_people","complete:post_linkedin_v2_by_account_id_linkedin_search_posts","complete:get_linkedin_v2_by_account_id_users_by_user_id","complete:get_linkedin_v2_by_account_id_chats","complete:post_linkedin_v2_by_account_id_chats_by_chat_id_messages_send","complete:post_linkedin_v2_by_account_id_posts","complete:get_linkedin_webhooks_inbox","complete:post_linkedin_connect_link","complete:get_inbox_v1_inboxes","complete:get_inbox_v1_conversations","complete:post_inbox_v1_conversations_by_id_messages","complete:post_x_v1_messages","complete:get_rooms","complete:post_rooms","complete:get_rooms_by_id_tasks","complete:post_rooms_by_id_tasks","complete:get_rooms_by_id_messages","complete:post_rooms_by_id_messages","complete:get_rooms_work_ready","complete:post_linkedin_v2_by_account_id_linkedin_search","complete:get_inbox_v1_conversations_by_id_messages","complete:get_linkedin_campaigns","complete:post_linkedin_campaigns","complete:get_asana_v1_connections","complete:post_asana_v1_connections_link","complete:get_asana_v1_connections_by_connection_id_projects","complete:get_asana_v1_connections_by_connection_id_projects_by_project_id_tasks","complete:get_booking_v1_pages","complete:post_booking_v1_pages","complete:get_booking_v1_pages_by_slug","complete:get_booking_v1_pages_by_slug_calls","complete:get_linkedin_setup","complete:get_linkedin_topvoices","complete:get_linkedin_v2_by_account_id_chats_by_chat_id","complete:get_linkedin_v2_by_account_id_chats_by_chat_id_picture","complete:get_chatwoot_v1_connections","complete:post_chatwoot_v1_connections_link","complete:get_chatwoot_v1_connections_by_connection_id_inboxes","complete:get_chatwoot_v1_connections_by_connection_id_conversations","complete:get_clickup_v1_connections","complete:post_clickup_v1_connections_link","complete:get_clickup_v1_connections_by_connection_id_projects","complete:get_clickup_v1_connections_by_connection_id_projects_by_project_id_tasks","complete:get_linkedin_connect_options","complete:get_linkedin_connect_link_by_handle","complete:get_discord_v1_servers","complete:post_discord_v1_connection_link","complete:get_discord_v1_servers_by_guild_id_channels","complete:get_discord_v1_channels_by_channel_id_messages","complete:get_google_ads_v1_changes","complete:get_google_ads_v1_prompts","complete:get_google_ads_v1_accounts","complete:post_google_ads_v1_changes_by_change_id_apply","complete:get_hubspot_v1_connections","complete:post_hubspot_v1_connections_link","complete:get_hubspot_v1_connections_by_connection_id_projects","complete:get_hubspot_v1_connections_by_connection_id_projects_by_project_id_tasks","complete:get_inbox_v1_teams","complete:get_inbox_v1_agents","complete:get_inbox_v1_labels","complete:get_inbox_v1_account","complete:get_inbox_v1_contacts","complete:get_linkedin_v2_by_account_id_inboxes_by_inbox_id_chats","complete:post_linkedin_v2_by_account_id_inboxes_by_inbox_id_chats","complete:get_jira_v1_connections","complete:post_jira_v1_connections_link","complete:get_jira_v1_connections_by_connection_id_projects","complete:get_jira_v1_connections_by_connection_id_projects_by_project_id_tasks","complete:get_line_v1_connections","complete:post_line_v1_connections_link","complete:get_line_v1_connections_by_connection_id","complete:get_line_v1_connections_by_connection_id_chats","complete:get_linkedin_v2_by_account_id_linkedin_jobs","complete:get_linkedin_v2_by_account_id_linkedin_projects","complete:get_linkedin_v2_by_account_id_linkedin_contracts","complete:get_linkedin_v2_by_account_id_linkedin_company_pages","complete:get_linkedin_v2_by_account_id_linkedin_inmail_credits","complete:get_linkedin_v2_by_account_id_linkedin_recruiter_jobs","complete:get_linkedin_v2_by_account_id_linkedin_search_parameters","complete:get_linkedin_pages_by_company_id","complete:post_linkedin_pages_by_company_id_logo","complete:get_linkedin_v2_by_account_id_posts_by_post_id","complete:get_linkedin_v2_by_account_id_posts_by_post_id_comments","complete:get_linkedin_v2_by_account_id_posts_by_post_id_reactions","complete:get_rooms_keys","complete:get_rooms_servers","complete:get_rooms_arrivals","complete:get_rooms_channels","complete:get_rooms_settings","complete:get_slack_v1_workspaces","complete:post_slack_v1_connection_link","complete:get_slack_v1_workspaces_by_team_id_channels","complete:get_slack_v1_workspaces_by_team_id_users_by_user_id","complete:post_linkedin_v2_by_account_id_users_visit_profile","complete:get_linkedin_v2_by_account_id_users_me_relation_requests","complete:get_linkedin_v2_by_account_id_users_by_user_id_chat","complete:get_webchat_v1_rooms","complete:get_webchat_v1_agents","complete:get_webchat_v1_widgets","complete:post_webchat_v1_widgets","complete:post_linkedin_webhooks_inbox","complete:get_linkedin_webhooks_status","complete:get_linkedin_webhooks_endpoints","complete:get_whatsapp_v1_chats","complete:get_whatsapp_v1_groups","complete:post_whatsapp_v1_messages","complete:get_whatsapp_v1_connection","complete:get_workspace_people","complete:get_workspace_surface","complete:get_x_v1_2_users_me","complete:get_x_v1_connection","complete:get_x_v1_2_dm_events"]}}