API reference

Browser-safe routes for the current Aries contract

These are the routes the Aries app uses internally. The app handles validation, authentication, and safe response shaping so the browser never touches internal systems directly.

  • POST/api/contact

    Submit a contact request. Returns an explicit unavailable response until a contact handler is configured.

    Request body

    { "name", "email", "message" }

    Response

    { "status": "error", "reason": "contact_not_configured", "message": "Contact intake is not configured yet.", "request": { "name": "...", "email": "...", "message_present": true } }
  • POST/api/onboarding/start

    Start business onboarding and set up the workspace.

    Request body

    { "tenant_id", "tenant_type", "signup_event_id" }

    Response

    { "status": "ok", "tenant_id": "...", "tenant_type": "...", "signup_event_id": "...", "onboarding_status": "accepted|validated|duplicate|needs_repair" }
  • POST/api/marketing/jobs

    Create a new marketing campaign.

    Request body

    { "jobType": "brand_campaign", "payload": { "brandUrl", "competitorUrl"?, "competitorBrand"?, "facebookPageUrl"?, "adLibraryUrl"?, "metaPageId"? } }

    Response

    { "marketing_job_status": "accepted", "jobId": "...", "jobType": "brand_campaign", "marketing_stage": "strategy", "approvalRequired": true, "approval": { ... }, "jobStatusUrl": "/marketing/job-status?jobId=..." }
  • GET/api/marketing/jobs/:jobId

    Read the current state of a marketing campaign.

    Request body

    Response

    { "jobId": "...", "marketing_job_state": "...", "marketing_job_status": "...", "marketing_stage": "...", "approvalRequired": true, "summary": { ... }, "stageCards": [...], "artifacts": [...], "timeline": [...], "approval": { ... }, "nextStep": "submit_approval" }
  • POST/api/marketing/jobs/:jobId/approve

    Approve a campaign checkpoint and resume the next stage.

    Request body

    { "approvedBy", "approvedStages"?: ["strategy"|"production"|"publish"], "resumePublishIfNeeded"?: true, "publishConfig"?: { ... } }

    Response

    { "approval_status": "resumed|error", "jobId": "...", "resumedStage": "publish", "completed": true }
  • GET/api/integrations

    List connected channel status and health.

    Request body

    Response

    { "status": "ok", "cards": [{ "platform": "facebook", "connection_state": "connected|not_connected|reauth_required", "health": "healthy|degraded|error|unknown" }] }
  • POST/api/integrations/connect

    Start a channel connection from the app.

    Request body

    { "platform": "facebook" }

    Response

    { "broker_status": "ok|error", "provider": "facebook", "authorization_url"?: "..." }
  • POST/api/publish/dispatch

    Submit approved content for publishing.

    Request body

    { "provider", "content", "media_urls", "scheduled_for"?: "..." }

    Response

    { "status": "accepted|error" }
  • POST/api/calendar/sync

    Request a calendar synchronization.

    Request body

    { "window_start"?: "...", "window_end"?: "..." }

    Response

    { "status": "accepted|error" }