Skip to main content
Agents can create draft changelog entries, link completed requests, and leave publishing to you in the Project Echo web app. This keeps accidental public posts from shipping automatically. For a reusable Cursor/agent install, see Install the Project Echo agent skill.

1. Create an API key

  1. Sign in at app.projectecho.io.
  2. Open API & MCP in the workspace nav.
  3. Create a key (label e.g. “Changelog agent”). Prefer the Contributor preset, or pick individual permissions below.
  4. Copy the token (pe_api_…) and Key ID — the token is shown once.
Full agent and Contributor presets include the changelog create/link permissions. Existing keys do not gain new permissions automatically — create a new key if needed.

Default author

If the agent omits author_user_id, Project Echo uses the billing admin who joined the workspace first.

2. Connect REST or MCP

REST — every call needs:
  • Authorization: Bearer pe_api_…
  • X-PE-API-Key-Id: <key-uuid>
MCP — see Connect MCP. Useful tools: list_statuses, list_requests (with unlinked=true), create_changelog_draft, update_changelog_draft, set_changelog_requests, upload_changelog_image, list_changelogs, get_changelog.

3. Weekly workflow

  1. list_statuses → find the id for Completed (or any status with changelog eligibility).
  2. list_requests with that status_id and unlinked=true.
  3. Draft TipTap content_json using the TipTap body guide.
  4. create_changelog_draft with title, body, optional linked_request_ids and published_at (intended publish time — entry stays a draft until you publish).
  5. Open Changelog in the staff app, review the draft, then turn Published on.
API/MCP cannot publish. That is intentional.

4. Copy-paste prompts

Prompt A — weekly draft from completed requests

Prompt B — revise an existing draft

Errors agents should surface

The API returns { "error": "...", "code": "...", "details": ... } when useful. Common codes: invalid_content_json, youtube_missing_src, content_too_large, link_validation_failed, not_draft, invalid_author, no_default_author, or 403 for missing permissions.