Accessing cloud recordings

Hi there,
I wanted to generate zoom meeting link and record that meeting then save it to cloud.

  1. I generate the zoom meeting link through my javascript code. (getting 202 as response code)
  2. I am able to start/stop recording via zoom API
  3. Now when I go to my recordings section on the website it asks me to purchase the Workplace Pro.
    My question is:
  4. will purchasing the workplace pro solve the issue?
  5. is there anything fundamentally wrong about the process im following?

Here is my code for better understanding.,

import axios from "axios";
import { creds } from "./creds.js";
const { account_id, client_id, client_secrete } = creds;

async function getAccessToken() {
  const tokenUrl = "https://zoom.us/oauth/token";
  const auth = Buffer.from(`${client_id}:${client_secrete}`).toString("base64");

  const response = await axios.post(
    `${tokenUrl}?grant_type=account_credentials&account_id=${account_id}`,
    {},
    {
      headers: {
        Authorization: `Basic ${auth}`,
      },
    }
  );

  return response.data.access_token;
}

async function scheduleZoomMeeting(token) {
  const meetingConfig = {
    topic: "Test Meeting",
    type: 2, // 2 = Scheduled meeting
    start_time: "2025-05-01T15:00:00Z",
    duration: 30, // in minutes
    timezone: "UTC",
    agenda: "Discuss Zoom API integration",
    settings: {
      host_video: true,
      participant_video: true,
      join_before_host: true,
      mute_upon_entry: false,
      auto_recording: "cloud", // <-- ENABLE RECORDING
      approval_type: 0,
      registration_type: 1,
    },
  };

  const response = await axios.post(
    `https://api.zoom.us/v2/users/me/meetings`,
    meetingConfig,
    {
      headers: {
        Authorization: `Bearer ${token}`,
        "Content-Type": "application/json",
      },
    }
  );

  console.log("Meeting created successfully:");
  console.log(`Join URL: ${JSON.stringify(response.data)}`);
}

async function startCloudRecording(meetingId, token) {
  const url = `https://api.zoom.us/v2/live_meetings/${meetingId}/events`;
  const headers = {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json",
  };
  const payload = {
    method: "recording.stop",
  };

  try {
    const response = await axios.patch(url, payload, { headers });
    console.log(
      `Successfully started cloud recording for meeting ${meetingId}`
    );
    console.log(response);
  } catch (error) {
    console.log(error);
  }
}

async function getRecordingFiles(meetingId, token) {
  const url = `https://api.zoom.us/v2/meetings/${meetingId}/recordings`;

  const response = await axios.get(url, {
    headers: {
      Authorization: `Bearer ${token}`,
    },
  });

  const transcriptFiles = response.data.recording_files.filter(
    (file) => file.file_type === "TRANSCRIPT"
  );

  transcriptFiles.forEach((file) => {
    console.log("Transcript Download URL:", file.download_url);
  });
}

When i try to fetch the meeting recording with specific meeting id I get

 recording  doesn't exist error with statuscode 404

Follow up: Is there any other way of doing this? using zoom-sdk? I dont want to provide any user interface to this that is why I am not using web-sdk.

thanks in advance!

hi @mak23aug
Thanks for reaching out to us!
Are you still facing this issue??? to access the recordings endpoints you must have a Pro or higher plan

It is listed in this endpoints Prerequisites