본문으로 건너뛰기
개발자

우리 시스템을 Marcomm AI 에 연결하세요

회사 시스템에서 뉴스 다이제스트, 심각한 뉴스, 승인 대기 목록을 읽고, 사내 결재 도구에서 승인하거나 반려할 수 있습니다. API 는 Team 요금제 이상에서, 간단한 심사를 거쳐 쓸 수 있습니다.

시작하기

  1. 1
    사용 신청

    연결할 시스템을 설명하고 필요한 데이터를 고릅니다. 신청은 하나씩 심사합니다.

  2. 2
    키 만들기

    승인되면 설정 > API 에서 키를 만듭니다. 키는 한 번만 보이니 시스템에 보관하세요.

  3. 3
    요청 보내기

    키를 Authorization 머리글에 실어 아래 엔드포인트를 부릅니다.

요청 예시

curl https://app.marcomm.works/api/v1/news/digest?days=7 \
  -H "Authorization: Bearer mc_live_..."

인증

요청마다 키를 Bearer 토큰으로 보냅니다. 개인 키는 만든 사람으로 동작해 그 사람의 이름으로 읽고 승인 · 반려할 수 있고, 워크스페이스 키는 관리자가 만들며 읽기만 됩니다. 키에는 만료일과 허용 IP 를 둘 수 있고, 교체하면 옛 키가 24시간 더 동작합니다.

범위

키는 신청이 승인된 범위만 가질 수 있습니다.

news
뉴스 다이제스트, 기사, 매체.
crisis
심각한 뉴스와 위기 사건.
approvals
승인 대기 목록, 그리고 개인 키로 승인 · 반려.
content
보도자료와 블로그 글 읽기.

엔드포인트

모든 경로는 /api/v1 로 시작합니다. 읽기는 GET 이고 쿼리 문자열을 받습니다. 응답은 {"data": ...} 모양의 JSON 입니다.

메서드경로범위하는 일
GET/api/v1/news/digestnews기간별 보도량, 감성, 주요 매체.
GET/api/v1/news/articlesnews뉴스 보도 검색.
GET/api/v1/news/outletsnews우리 회사를 다루는 매체.
GET/api/v1/crisis/incidentscrisis위기 사건과 심각한 기사.
GET/api/v1/approvalsapprovals키 주인의 결정을 기다리는 보도자료 · 블로그 글, 키 주인이 승인을 요청한 항목.
GET/api/v1/press-releasescontent보도자료 목록.
GET/api/v1/press-releases/{id}content보도자료 한 건(리드 문단과 본문).
GET/api/v1/blog-postscontent블로그 글 목록.
GET/api/v1/blog-posts/{id}content블로그 글 한 건(본문).
POST/api/v1/approvals/press-releases/{id}approvals키 주인의 결정을 기다리는 보도자료를 승인하거나 반려합니다.
POST/api/v1/approvals/blog-posts/{id}approvals키 주인의 결정을 기다리는 블로그 글을 승인하거나 반려합니다.

승인과 반려

항목에 {"decision": "approve"} 또는 {"decision": "reject", "comment": "..."} 를 보냅니다. 반려에는 사유가 필요합니다. 결정은 앱 · Slack 과 같은 규칙을 따르고 키 주인의 이름으로 기록됩니다. 확인이 필요한 표현이 있으면 경고와 함께 409 confirmation_required 가 오고, "force": true 를 더해 다시 보내면 진행합니다.

curl -X POST https://app.marcomm.works/api/v1/approvals/press-releases/<id> \
  -H "Authorization: Bearer mc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"decision":"reject","comment":"Please fix the headline."}'

호출 한도

한도는 워크스페이스마다 분당 · 일별(UTC)로 정합니다. 모든 응답에 아래 머리글이 붙고, 한도를 넘으면 Retry-After 와 함께 429 가 옵니다. 한도를 올리려면 설정 > API 에서 상향을 요청하세요. 팀이 심사합니다.

X-RateLimit-Limit
분당 허용 호출 수.
X-RateLimit-Remaining
이번 분에 남은 호출 수.
X-RateLimit-Reset
이번 분 구간이 끝나는 Unix 시각.
X-RateLimit-Day-Limit
하루 허용 호출 수.
X-RateLimit-Day-Remaining
오늘 남은 호출 수.
Retry-After
다시 시도하기 전에 기다릴 초. 429 에만 붙습니다.

오류

오류는 {"error": {"code": ..., "message": ...}} 모양의 JSON 으로 돌아옵니다.

코드상태뜻
invalid_key401키가 없거나 형식이 틀렸거나 꺼졌습니다.
expired401키가 만료되었습니다. 키를 새로 만들거나 교체하세요.
ip_denied403키가 다른 IP 주소로 제한되어 있습니다.
plan_required403워크스페이스가 Team 요금제 이상이 아닙니다.
access_required403이 워크스페이스는 API 사용이 승인되지 않았습니다.
suspended403이 워크스페이스의 API 사용이 정지되었습니다.
scope_denied403이 엔드포인트에 필요한 범위가 키에 없습니다.
personal_key_required403승인 · 반려는 개인 키만 할 수 있습니다.
denied403키 주인의 역할로는 할 수 없는 일입니다.
unknown_endpoint404없는 엔드포인트입니다.
comment_required400반려에는 사유가 필요합니다.
confirmation_required409경고를 확인해야 합니다. force 를 true 로 해서 다시 보내세요.
rate_limited429분당 한도를 넘었습니다.
daily_limit429일 한도에 도달했습니다.

웹훅

알림, 승인 요청, 아침 브리핑을 회사 시스템으로 보낼 수도 있습니다. 설정 > API > 웹훅에서 받는 곳을 추가하세요. 요청은 event(alert · approval · briefing), workspace, title, text, url, data, sentAt 칸을 가진 JSON 입니다. 승인 요청에는 data.kind(press_release · blog · event)와 data.id 가 들어 있어, API 로 내용을 읽고 결정하는 데 쓸 수 있습니다.

요청에는 서명이 붙습니다. 받은 본문 원문에 서명 비밀로 HMAC-SHA256 을 계산해 X-Marcomm-Signature 머리글(sha256=<hex> 모양)과 맞춰 보고, 맞지 않으면 거절하세요.

Node.js 에서 웹훅 서명 확인

import { createHmac, timingSafeEqual } from 'node:crypto';

export function isFromMarcomm(rawBody: string, signature: string, secret: string) {
  const expected = 'sha256=' + createHmac('sha256', secret).update(rawBody).digest('hex');
  const a = Buffer.from(expected);
  const b = Buffer.from(signature);
  return a.length === b.length && timingSafeEqual(a, b);
}

연결 가이드

사내 결재 시스템에서 승인하기

  1. 일반 웹훅 받는 곳을 추가하고 승인 요청을 켭니다.
  2. 승인 웹훅이 오면 서명을 확인하고 data.kind 와 data.id 를 읽습니다.
  3. 결재 시스템에 요청을 띄웁니다. 본문이 필요하면 GET press-releases/{id} 또는 blog-posts/{id} 로 읽습니다.
  4. 결정하는 사람의 개인 키로 결정을 보냅니다. 이벤트와 메일 발송 승인은 메시지의 링크로 앱에서 결정합니다.

뉴스 다이제스트를 우리 대시보드에 넣기

  1. news 와 crisis 범위의 워크스페이스 키를 만듭니다.
  2. news/digest 를 정해진 시각(예: 매일 아침)에 부릅니다.
  3. 자체 알림이 필요하면 crisis/incidents 를 더 자주 부르되, X-RateLimit 머리글을 보며 한도 안에서 부르세요.

대화방으로 알림 받기

  1. Teams 와 Google Chat 은 대화방의 웹훅 주소를 만들어 설정 > API > 웹훅에 받는 곳으로 추가합니다.
  2. 잔디, 두레이, Chatwork 는 설정 > 연동에서 연결합니다.
  3. 받는 곳마다 알림, 승인 요청, 아침 브리핑 중 받을 것을 고르고 시험 메시지를 보냅니다.

연결할 준비가 되셨나요?

워크스페이스 소유자나 관리자가 설정 > API 에서 신청합니다. 심사가 끝나면 메일과 앱 알림으로 알려 드립니다.

API 설정 열기