Docs
Automations

One automation

GEThttps://api.norreach.app/v1/automations/{id}

An automation with its flow graph, the size of the program the engine runs, and compile_error (why it can't be activated as it is, or null).

campaigns:readOperation id: get_automation
GET/automations/{id}
curl -X GET "https://api.norreach.app/v1/automations/{id}" \
  -H "Authorization: Bearer $NORREACH_API_KEY"
One automation
{
  "id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
  "object": "automation",
  "name": "Webinar follow-up",
  "status": "draft",
  "trigger": "manual_contacts",
  "node_count": 2,
  "compiled_step_count": 0,
  "created_at": "2026-11-04T09:12:33.120Z",
  "flow": {
    "nodes": [
      {
        "id": "start",
        "type": "trigger",
        "position": {
          "x": 0,
          "y": 0
        },
        "data": {
          "nodeType": "trigger",
          "triggerType": "manual_contacts",
          "label": "Picked contacts",
          "config": {
            "audience": {
              "lists": [
                {
                  "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
                }
              ]
            }
          }
        }
      },
      {
        "id": "hello",
        "type": "action",
        "position": {
          "x": 0,
          "y": 160
        },
        "data": {
          "nodeType": "action",
          "actionType": "send_email",
          "label": "Intro email",
          "config": {
            "subject": "Nurses for the summer",
            "template": "Hi {{first_name}}, …"
          }
        }
      }
    ],
    "edges": [
      {
        "id": "start-hello",
        "source": "start",
        "target": "hello",
        "source_handle": null,
        "target_handle": null
      }
    ],
    "settings": {
      "stopOnReply": true,
      "name": "Webinar follow-up"
    }
  },
  "compile_error": null
}

Authorizations

Authorizationstringheaderrequired

Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope campaigns:read. API keys and scopes

Path parameters

idstring (uuid)pathrequired

An id (UUID).

Response

200application/json— One automation

idstring (uuid)required

An id (UUID).

object"automation"required
namestringrequired
statusstringrequired

draft, active, paused or archived (stopped).

triggerstring | nullrequired

What starts the flow (e.g. manual_contacts, landing_form).

node_countintegerrequired
compiled_step_countintegerrequired

Steps in the program the engine runs (set when it is activated).

created_atstringrequired

RFC 3339 UTC timestamp with milliseconds.

flowobject | nullrequired
compile_errorstring | nullrequired

Why the flow can't be activated as it is (null = it compiles).

Errors

Errors are application/problem+json with a stable code.

StatusCodeMeaning
400bad_requestThe request couldn't be read.
400unknown_fieldThe request has a field this operation doesn't know.
401unauthorizedA valid API key is required.
403insufficient_scopeThis API key doesn't have the scope this operation needs.
403feature_not_enabledThe API isn't switched on for this workspace.
404not_foundThat doesn't exist.
429rate_limitedToo many requests. Slow down and try again.
500server_errorSomething went wrong on our side.
503unavailableThe API isn't available right now. Try again shortly.