Live

Riverside logo

Riverside API and MCP server

riverside.com

Riverside has a Business API for select Business accounts only, with a key from your customer success manager, and it mostly gets or deletes recordings and lists scheduled events (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Riverside with 12 endpoints (7 read, 5 write): your AI agent signs in as you and does the work.

Endpoints
12 7 read, 5 write
Updated
How Cotlet connects your agent to Riverside
  1. Your agent

    Claude Code, Codex, Cursor or a script

  2. Cotlet

    MCP server and REST API · 12 endpoints

    cotlet.dev/mcp/v1

  3. Riverside logo

    Riverside

    Signed in as you on riverside.com

You sign in once. We never store your password.

Official API

Does Riverside have an official API?

Riverside has a Business API for select Business accounts only, with a key from your customer success manager, and it mostly gets or deletes recordings and lists scheduled events (checked 11 Oct 2026). Its official MCP server (beta, Grow, Webinar and Business plans) searches, edits and posts clips, but cannot schedule sessions or invite guests.

What Riverside's own tools do compared with Cotlet
Task Riverside official Cotlet
Schedule a recording session No Yes
Reschedule or cancel a session No Yes
Invite guests or producers by email No Yes
Create a studio No Yes
List scheduled sessions Partly Business API only, read-only Yes
List studios and recordings Partly Riverside MCP, Grow plan and up Yes
Read transcripts Partly Riverside MCP, Grow plan and up Yes
Download recordings Partly Business API (select accounts) and MCP download links; separate tracks are not listed Yes

Sources: Riverside Business API docs · Riverside Help: Connect to Riverside MCP · Riverside MCP plugin README (Riverside, GitHub) · Riverside Help: Schedule a studio session

Common use cases

What can an AI agent do in Riverside?

Cotlet is best for podcasters and producers who book guests and hand off recordings every week and want their AI agent to do it without running or fixing a server.

  • Schedule a podcast recording and invite the guest Runs: Weekly

    Book a recording in my Product Hour studio with guest@example.com next Thursday at 15:00 London time, one hour, called "Episode 42: Pricing your first product", and send the invite. Check the studio is free first. Your agent calls list_studios, list_sessions and schedule_session.

  • Reschedule or cancel a recording session

    My guest for Thursday's recording can't make it. Move the session to Friday at 11:00 London time and make sure they get the new time. If Friday is taken, cancel it and tell me who to email. Your agent calls list_sessions, update_session, invite_guest and cancel_session.

  • Download separate tracks for your editor Runs: Weekly

    Get the raw WAV of each participant from yesterday's episode in The Product Hour for my editor. If anyone's track is still uploading, tell me who, and don't send partial files. Your agent calls list_recordings, get_recording and download_tracks.

  • Turn a transcript into show notes

    Take the transcript of my last interview and write show notes with timestamps and three pull quotes. Your agent calls list_recordings and get_transcript.

  • Weekly list of upcoming recording sessions Runs: Weekly

    Every Monday, list the sessions I have scheduled this week and who is invited to each. Your agent calls list_sessions.

Endpoints

What is the Riverside API?

Cotlet's Riverside API exposes 12 endpoints for your own Riverside account: list studios, list sessions, get invite links, list recordings, get recording, get transcript, download tracks, create studio, schedule session, update session, invite guest and cancel session. The list_studios endpoint returns your studios with name, recording type and the studio link. Each endpoint takes simple JSON inputs like studio_id, recording_id or name and works both as an MCP tool for agents and as a REST call for scripts.

All endpoints · 12 total

missing one? request an endpoint

  • POST

    list_studios

    read

    Returns every studio in your account, the ones you own and the ones you were added to. Use studio_id from each item in the other calls. Recording type is audio and video or audio only, as set in the studio.

    POST /api/v1/riverside/list_studios

    Input

    No parameters.

    Example response

    {
      "studios": [
        {
          "studio_id": "std_8f2k41",
          "name": "The Product Hour",
          "recording_type": "audio_video",
          "studio_url": "https://riverside.com/studio/the-product-hour"
        },
        {
          "studio_id": "std_2m9c07",
          "name": "Founders Q&A",
          "recording_type": "audio_only",
          "studio_url": "https://riverside.com/studio/founders-qa"
        }
      ]
    }
  • POST

    list_sessions

    read

    Lists scheduled sessions in start order, soonest first. Each item has the invited guests, producers and audience members with their roles. Pass session_id to update_session, invite_guest or cancel_session.

    POST /api/v1/riverside/list_sessions

    Input

    Input: list_sessions
    Parameter Type Description
    studio_id string Only this studio. Default: all studios.
    from date Sessions on or after this date. Default: today.
    to date Sessions on or before this date.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "sessions": [
        {
          "session_id": "ses_3vq9x7",
          "studio_id": "std_8f2k41",
          "name": "Episode 42: Pricing your first product",
          "start": "2026-10-15T15:00:00+01:00",
          "end": "2026-10-15T16:00:00+01:00",
          "invited": [
            {
              "email": "guest@example.com",
              "role": "guest"
            }
          ]
        }
      ],
      "next_cursor": null
    }
  • POST

    list_recordings

    read

    Lists recordings across your studios, newest first. Filter by studio or by date to find the latest episode. Upload status shows whether each participant's files are fully uploaded. Pass recording_id to get_recording, get_transcript and download_tracks.

    POST /api/v1/riverside/list_recordings

    Input

    Input: list_recordings
    Parameter Type Description
    studio_id string Only this studio. Default: all studios.
    since date Only recordings made on or after this date.
    limit integer 1 to 50. Default: 20.
    cursor string Next page cursor from the previous call.

    Example response

    {
      "recordings": [
        {
          "recording_id": "rec_71d3ab",
          "studio_id": "std_8f2k41",
          "title": "Episode 41: Launch week",
          "recorded_at": "2026-10-08T15:02:00+01:00",
          "duration_seconds": 3412,
          "participants": [
            "Host",
            "Guest"
          ],
          "upload_status": "complete"
        }
      ],
      "next_cursor": "eyJvZmZzZXQiOjIwfQ"
    }
  • POST

    get_recording

    read

    Returns one recording and the tracks of each participant. Each track has a type (audio or video, and screen share when one was recorded) and an upload status. Read it before download_tracks to see whether every track has finished uploading.

    POST /api/v1/riverside/get_recording

    Input

    Input: get_recording
    Parameter Type Description
    recording_id required string Recording ID from list_recordings.

    Example response

    {
      "recording_id": "rec_71d3ab",
      "title": "Episode 41: Launch week",
      "duration_seconds": 3412,
      "participants": [
        {
          "name": "Host",
          "tracks": [
            {
              "type": "audio",
              "upload_status": "complete"
            },
            {
              "type": "video",
              "upload_status": "complete"
            }
          ]
        },
        {
          "name": "Guest",
          "tracks": [
            {
              "type": "audio",
              "upload_status": "complete"
            },
            {
              "type": "video",
              "upload_status": "uploading"
            }
          ]
        }
      ]
    }
  • POST

    get_transcript

    read

    Returns the transcript Riverside made for one recording, in speaker order with timestamps. Use format srt for subtitle files and txt for plain reading. The call fails if the recording has no transcript yet.

    POST /api/v1/riverside/get_transcript

    Input

    Input: get_transcript
    Parameter Type Description
    recording_id required string Recording ID from list_recordings.
    format enum txt or srt. Default: txt.

    Example response

    {
      "recording_id": "rec_71d3ab",
      "format": "txt",
      "text": "[00:00:04] Host: Welcome back to The Product Hour.\n[00:00:09] Guest: Thanks for having me."
    }
  • POST

    download_tracks

    read

    Returns one download link per participant for the file type you choose: raw video, aligned video, raw audio or compressed audio, the options in the Riverside Download menu. Tracks that are still uploading are listed without a link. Screen share tracks in high quality exist only when the screen share was recorded with the Mac app. Edited tracks are not included; they come from an edit export.

    POST /api/v1/riverside/download_tracks

    Input

    Input: download_tracks
    Parameter Type Description
    recording_id required string Recording ID from list_recordings.
    file_type enum raw_video, aligned_video, raw_audio or compressed_audio, as named in the Riverside Download menu. Default: raw_audio.
    participants string[] Only these participant names. Default: everyone.

    Example response

    {
      "recording_id": "rec_71d3ab",
      "file_type": "raw_audio",
      "files": [
        {
          "participant": "Host",
          "url": "https://downloads.example.com/rec_71d3ab/host.wav",
          "status": "ready"
        },
        {
          "participant": "Guest",
          "url": "https://downloads.example.com/rec_71d3ab/guest.wav",
          "status": "ready"
        }
      ]
    }
  • POST

    create_studio

    write

    Creates a studio with the name and recording type you give. Studios count against the limit of your Riverside plan, so a new one can use up a slot. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/riverside/create_studio

    Input

    Input: create_studio
    Parameter Type Description
    name required string Studio name, for example the show title.
    recording_type enum audio_video or audio_only. Default: audio_video.

    Example response

    {
      "studio_id": "std_5t8n22",
      "name": "Interview Series",
      "recording_type": "audio_video",
      "studio_url": "https://riverside.com/studio/interview-series"
    }
  • POST

    schedule_session

    write

    Adds a session at the start and end time you give, in the time zone you set. Each guest in guest_emails gets an invite email with the session details and the studio link; the emailed link works until 24 hours after the start. Only the host, account owner, admins, directors and editors can schedule. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/riverside/schedule_session

    Input

    Input: schedule_session
    Parameter Type Description
    studio_id required string Studio ID from list_studios.
    name required string Session name, for example the episode title.
    start required datetime ISO 8601 with time zone.
    end required datetime ISO 8601 with time zone.
    guest_emails string[] Guests to invite now. Default: none.

    Example response

    {
      "session_id": "ses_3vq9x7",
      "studio_id": "std_8f2k41",
      "status": "scheduled",
      "start": "2026-10-15T15:00:00+01:00",
      "invited": [
        {
          "email": "guest@example.com",
          "role": "guest",
          "email_sent": true
        }
      ]
    }
  • POST

    update_session

    write

    Changes the fields you pass and leaves the rest. When the date or time changes, Riverside emails the guests, producer and audience members that the session was updated, and the Google Calendar invite updates automatically. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/riverside/update_session

    Input

    Input: update_session
    Parameter Type Description
    session_id required string Session ID from list_sessions.
    name string New session name.
    start datetime New start, ISO 8601 with time zone.
    end datetime New end, ISO 8601 with time zone.

    Example response

    {
      "session_id": "ses_3vq9x7",
      "status": "updated",
      "start": "2026-10-16T11:00:00+01:00",
      "end": "2026-10-16T12:00:00+01:00",
      "notified": [
        "guest@example.com"
      ]
    }
  • POST

    invite_guest

    write

    Adds one person to a scheduled session and sends them an invite email with the session details and the studio link. Role is guest by default. Inviting the same email again resends the invite. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/riverside/invite_guest

    Input

    Input: invite_guest
    Parameter Type Description
    session_id required string Session ID from list_sessions.
    email required string Who to invite.
    role enum guest, producer or audience. Default: guest.

    Example response

    {
      "session_id": "ses_3vq9x7",
      "email": "producer@example.com",
      "role": "producer",
      "email_sent": true
    }
  • POST

    cancel_session

    write

    Cancels the session and removes it from the Planner and the project folder. Recordings that were already made stay in your account. Cancelling cannot be undone with one call; schedule the session again to restore it. By default you confirm each call; you can switch that off for this tool.

    POST /api/v1/riverside/cancel_session

    Input

    Input: cancel_session
    Parameter Type Description
    session_id required string Session ID from list_sessions.

    Example response

    {
      "session_id": "ses_3vq9x7",
      "status": "cancelled"
    }

Setup

How do I connect Riverside to Claude Code, Codex or Cursor?

Connecting Riverside takes three steps: request access, sign in to Riverside once, then add one MCP server or call the REST API with the same key.

Connect Riverside over MCP

  1. 1

    Create an account

    Sign up and add Riverside in the console. Your API key is there too.

  2. 2

    Sign in to Riverside once

    Open the connect page from the console and sign in to Riverside the way you always do. We keep the session, never your password, and you can revoke it anytime.

  3. 3

    Add Cotlet to your agent

    Claude Code
    claude mcp add --transport http cotlet \
      https://cotlet.dev/mcp/v1 \
      --header "Authorization: Bearer $COTLET_API_KEY"
    Cursor
    {
      "mcpServers": {
        "cotlet": {
          "url": "https://cotlet.dev/mcp/v1",
          "headers": {
            "Authorization": "Bearer ${COTLET_API_KEY}"
          }
        }
      }
    }
    Codex
    # ~/.codex/config.toml
    [mcp_servers.cotlet]
    url = "https://cotlet.dev/mcp/v1"
    bearer_token_env_var = "COTLET_API_KEY"

    Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

  4. 4

    Ask your agent

    Prompt

    Book a recording in my Product Hour studio with guest@example.com next Thursday at 15:00 London time, one hour, called "Episode 42: Pricing your first product", and send the invite. Check the studio is free first.

    Ask in plain words. Your agent finds the Riverside tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

Call Riverside over REST

  1. 1

    Export your API key

    Shell

    export COTLET_API_KEY="cotlet_..."

    Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

  2. 2

    Call a tool

    curl

    curl https://cotlet.dev/api/v1/riverside/schedule_session \
      -H "Authorization: Bearer $COTLET_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"studio_id":"std_8f2k41","name":"Episode 42: Pricing your first product","start":"2026-10-15T15:00:00+01:00","end":"2026-10-15T16:00:00+01:00","guest_emails":["guest@example.com"]}'

    Every tool is a POST endpoint at /api/v1/riverside/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

  3. 3

    Read the result

    Example response · schedule_session

    {
      "session_id": "ses_3vq9x7",
      "studio_id": "std_8f2k41",
      "status": "scheduled",
      "start": "2026-10-15T15:00:00+01:00",
      "invited": [
        {
          "email": "guest@example.com",
          "role": "guest",
          "email_sent": true
        }
      ]
    }

    You get plain JSON back, ready for your script. A failed call costs nothing.

Why Cotlet

Why use Cotlet for Riverside? Hosted, safe and kept working.

  • Built for agents

    • One MCP server for every app you connect.
    • The same tools as a REST API for scripts and cron jobs.
    • Works with Claude Code, Codex and Cursor.
  • Your login stays yours

    • You sign in to Riverside yourself. We keep only the session, encrypted with AES-256.
    • The model never sees a login.
    • No stored passwords, no CAPTCHA solving, no MFA bypass.
  • You stay in control

    • Pick read only, or read and write.
    • Anything that reaches other people waits for your OK, unless you switch it off per tool.
    • Revoke access in one click.
  • Kept working for you

    • We test every integration daily.
    • When Riverside changes, the tool pauses until we fix it.
    • Failed calls cost nothing.

Alternatives

Is there a Riverside MCP server on GitHub?

Yes, in part. Riverside runs its own MCP server in beta for editing, clips and social posting, and a community MCP server on GitHub wraps the Business API. Both stop at what Riverside already exposes: neither schedules sessions or invites guests. Cotlet hosts tools for those jobs, and our team keeps them working.

Cotlet compared with a GitHub MCP server
GitHub MCP server Cotlet
Setup Clone the repo, install it, add your Business API key to each MCP client Request access, sign in to Riverside once, add one MCP server or API key
Plan needed Business plan with API access, granted to select accounts Any account that can do the job by hand in Riverside
What it covers What the Business API offers: get and delete recordings, list events Studios, sessions, invites, recordings, transcripts and downloads
When Riverside changes It breaks until you or the maintainer fix it Our team tests it daily and fixes it for you; failed calls are free
Your Riverside session An API key in a file on your computer Session encrypted in an EU vault, limited to the actions you allow, revoked in one click
Where it runs Your computer, while it is on Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule
Price Free, paid for with your time Free 7-day trial with 5,000 credits, then credits per call

Which one fits you

Pick Cotlet if

  • you are not a developer, or you do not want to maintain a server
  • you need it to keep working when Riverside changes, without checking it yourself
  • your agent or a script should run it on a schedule, also while your computer is off

Pick an open-source server if

  • you are comfortable installing, updating and fixing it yourself
  • you want the session to stay on your own computer
  • you only need it now and then, from one MCP client

For AI agents

Cotlet for Riverside in plain text The facts on this page in one block: status, endpoints, access, pricing, contact.

Endpoint health

verified 2h ago

  • list_studios passing
  • list_sessions passing
  • get_invite_links passing
  • list_recordings passing
  • get_recording passing

+ 7 more endpoints

12/12 passing latest check self-healing

riverside.txt

Riverside has a Business API for select Business accounts only, with a key from your customer success manager, and it mostly gets or deletes recordings and lists scheduled events (checked 11 Oct 2026). Its official MCP server (beta, Grow, Webinar and Business plans) searches, edits and posts clips, but cannot schedule sessions or invite guests.
Cotlet provides a hosted MCP server and REST API for Riverside: 12 tools (7 read, 5 write).
Access       Request access at https://cotlet.dev/app/signup?app=riverside; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/riverside
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        list_studios, list_sessions, get_invite_links, list_recordings, get_recording, get_transcript, download_tracks, create_studio, schedule_session, update_session, invite_guest, cancel_session
Confirm      create_studio, schedule_session, update_session, invite_guest, cancel_session (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/riverside-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=riverside (Riverside is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Riverside once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Riverside server that someone else maintains, including non-developers. Developers who prefer to run and fix code on their own computer can use an open-source Riverside MCP server instead.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Riverside in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Riverside's terms; Cotlet is not affiliated with Riverside.
Full page as Markdown

Automations

Can Riverside automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Riverside connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to schedule a podcast recording and invite the guest, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

Where to run Riverside automations through Cotlet, and how to schedule them
Where How to connect How to schedule
Your AI agent Add https://cotlet.dev/mcp/v1 with your API key. A scheduled agent run, for example a Claude Code routine.
n8n MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/riverside/{tool}. Schedule Trigger node.
Make HTTP module: POST https://cotlet.dev/api/v1/riverside/{tool} with an Authorization: Bearer header and a JSON body. Scenario schedule.
Zapier Webhooks by Zapier: POST https://cotlet.dev/api/v1/riverside/{tool} with the same header and body. Schedule by Zapier trigger.
Your own script POST https://cotlet.dev/api/v1/riverside/{tool} with your API key. cron or GitHub Actions.

Pricing & limits

How much does the Riverside API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Riverside API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

Cotlet plan sizes: price, monthly credits and price per credit
Size Price Credits / month Per credit
Solo $29/mo 3,000 about $0.0097
Pro $99/mo 12,000 about $0.0083
Agency $299/mo 40,000 $0.0075

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the Authorization: Bearer header.

About Cotlet

How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Riverside account.

Company details
The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. Terms
Your session
You sign in to Riverside yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Riverside tool you allowed. When it expires, your agent gives you a link to sign in again. Security
Revoking access
Disconnect Riverside in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
What we never do
Store passwords, solve CAPTCHAs or bypass MFA.
Riverside's terms
You use your own Riverside account and stay responsible for following Riverside's terms. Cotlet is independent and not affiliated with Riverside. Terms
Contact
Questions about the company, security or an app: contact@cotlet.dev
About Cotlet

Frequently asked questions

How do I get access?

Request access and pick Riverside. Cotlet reviews each request and emails you your API key.

Do I need to be technical?

No. You sign in to Riverside once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

Is a hosted server safe? My Riverside session would leave my computer.

Cotlet keeps your Riverside session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

Do I need a Business plan or the Riverside MCP?

No. Cotlet works in your own Riverside account and does not use the Business API, which Riverside gives to select Business accounts, or the official MCP, which needs a Grow, Webinar or Business plan. Scheduling needs the host, account owner, admin, director or editor role.

Can it edit episodes or post clips?

No. Editing, clips and social posting are what the official Riverside MCP is built for, and Cotlet does not duplicate them. Cotlet covers sessions, invites, recordings, transcripts and track downloads.

Can my agent post or send messages in Riverside without asking me?

No. Every call to create_studio, schedule_session, update_session, invite_guest or cancel_session waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals.

Can I use the Riverside API in n8n?

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/riverside/{tool} from the HTTP Request node.

Give your agent access to Riverside.

Request access and pick it. We review each request and email you your API key. Free 7-day trial with 5,000 credits, no card needed.