Meetily
Agent APISample workflows

Back up meetings over the API

List every meeting and export each as Markdown to a local folder, in Python, Node, or Rust.

A common workflow: pull every meeting out of Meetily and keep a local, offline copy. The script below lists your meetings, then exports each one as Markdown into a backup folder next to the script. It is pure HTTP against the local Agent API. No SDK, no install.

Set your token first:

export MEETILY_PRO_TOKEN=your-token-here

Get a token from meetily-pro whoami, or from the in-app Integrations panel for a scoped one. On the same machine you can also read the loopback token file directly; see the authentication page for its path. Any token with Read scope works here, since this workflow only lists and exports.

Script

Standard library only, no pip installs required.

import json
import os
import pathlib
import urllib.request

BASE_URL = "http://127.0.0.1:8420"
TOKEN = os.environ["MEETILY_PRO_TOKEN"]
OUT_DIR = pathlib.Path("backup")


def api_get(path):
    req = urllib.request.Request(
        f"{BASE_URL}{path}",
        headers={"Authorization": f"Bearer {TOKEN}"},
    )
    with urllib.request.urlopen(req) as resp:
        return resp.read()


def list_all_meetings():
    meetings = []
    offset = 0
    limit = 200
    while True:
        data = json.loads(api_get(f"/v1/meetings?limit={limit}&offset={offset}"))
        batch = data["meetings"]
        meetings.extend(batch)
        if len(batch) < limit:
            break
        offset += limit
    return meetings


def main():
    OUT_DIR.mkdir(exist_ok=True)
    meetings = list_all_meetings()
    print(f"Found {len(meetings)} meetings")
    for m in meetings:
        meeting_id = m["id"]
        md = api_get(f"/v1/meetings/{meeting_id}/export?format=md").decode("utf-8")
        (OUT_DIR / f"{meeting_id}.md").write_text(md, encoding="utf-8")
        print(f"Exported {meeting_id}")


if __name__ == "__main__":
    main()

Run it with python backup.py.

All three scripts only call GET endpoints. They read your meetings and export them; they never rename, delete, or otherwise modify anything. A Read-scoped token is enough.

Last updated on

On this page