Morpho Browser

자동화 API

직접 작성한 스크립트에서 Morpho Browser 프로필을 시작하고 Playwright, Puppeteer 또는 Selenium으로 제어하세요.

기본 사항

API는 데스크톱 앱 내부에서 http://127.0.0.1:7777 주소로 실행되며 사용자의 PC에서 오는 연결만 허용합니다. 앱의 “Automation API” 페이지에서 API 키를 복사해 모든 요청에 다음 헤더 중 하나로 함께 보내세요.

Authorization: Bearer YOUR_API_KEY
X-Morpho-Token: YOUR_API_KEY

엔드포인트

메서드경로기능
GET/api/v1/profiles프로필 목록을 반환합니다: ID, 이름, 엔진, 열림 여부.
POST/api/v1/profiles/{id}/start프로필을 시작하고 ws_endpoint를 반환합니다. ?timeout=60초까지 대기하며, 최대 180초입니다.
GET/api/v1/profiles/{id}상태를 표시하며, 프로필이 열려 있으면 연결 주소도 함께 표시합니다.
POST/api/v1/profiles/{id}/stop프로필을 닫습니다.

curl로 프로필 시작하기

curl -X POST -H "Authorization: Bearer $MORPHO_KEY" \
  "http://127.0.0.1:7777/api/v1/profiles/PROFILE_ID/start?timeout=60"
# -> {"ws_endpoint": "ws://127.0.0.1:<port>/devtools/browser/...", ...}

Playwright로 연결하기(Python)

import requests
from playwright.sync_api import sync_playwright

API = "http://127.0.0.1:7777/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

ws = requests.post(f"{API}/profiles/PROFILE_ID/start", headers=HEADERS,
                   params={"timeout": 60}).json()["ws_endpoint"]

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(ws)
    context = browser.contexts[0]          # the profile's own context
    page = context.new_page()
    page.goto("https://example.com")
    print(page.title())

requests.post(f"{API}/profiles/PROFILE_ID/stop", headers=HEADERS)

Puppeteer로 연결하기(Node.js)

import puppeteer from "puppeteer-core";

const API = "http://127.0.0.1:7777/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY" };

const res = await fetch(`${API}/profiles/PROFILE_ID/start?timeout=60`, { method: "POST", headers });
const { ws_endpoint } = await res.json();

const browser = await puppeteer.connect({ browserWSEndpoint: ws_endpoint });
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.title());
browser.disconnect();   // leaves the profile running; stop it with POST .../stop

참고

  • DevTools 엔드포인트는 Chromium 프로필에서만 반환됩니다.
  • 스크립트가 제어하는 동안에도 프로필은 고유한 핑거프린트와 프록시를 유지합니다.
  • Selenium의 경우 ws_endpoint의 호스트와 포트(debuggerAddress)에 ChromeDriver를 연결하세요.
  • 앱에서 언제든지 API 키를 교체할 수 있으며, 이전 키는 즉시 작동을 멈춥니다.