Skip to content

Start building

Jump toTriggers
All endpoints

Triggers

The webhook door, test events, the event log and secret rotation.

get/v1/triggers/{trigger_id}/events

List trigger events

Needs run.view

The last events this trigger saw and what became of each (section 4.2).

Path parameters

  • trigger_idstringRequired

Query parameters

  • limitinteger
    Default50at least 1at most 200

Response200

  • objectstring
    list
  • dataTriggerEvent[]
    8 fields
    • idstring
    • objectstring
      trigger_event
    • created_atstring or null
    • is_testboolean
    • run_idstring or null
    • sourcestring
    • statusstring
    • status_reasonstring or null
  • has_moreboolean
  • next_cursorstring or null
  • facetsmap<string, map<string, integer>> or null
  • peoplemap<string, ActorRef> or null
    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • total_countinteger or null
  • total_count_exactboolean or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/triggers/trg_01jcte7b16k06c684ac89xccgx/events?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "evt_01jc0yrbnm84d8zbtsv0h4ksah",
      "object": "trigger_event",
      "created_at": "2026-11-10T09:30:00.000Z",
      "is_test": false,
      "run_id": "run_01jcr77659p6hws1zjqkthay73",
      "source": "source",
      "status": "status",
      "status_reason": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/triggers/{trigger_id}/secret

Rotate trigger secret

Needs trigger.manage

A new signing secret — generated, or the one a provider issued — shown this once. The previous one keeps verifying for 24 hours (section 5.3).

Path parameters

  • trigger_idstringRequired

Request bodySecretPut

  • secretstring or null
    at least 16 charactersat most 512 characters

Response200

  • objectstring
    trigger_secret
  • previous_valid_untilstring
  • secretstring
  • trigger_idstring

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/triggers/trg_01jcte7b16k06c684ac89xccgx/secret" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "secret": "xxxxxxxxxxxxxxxx"
  }'
Response · 200
JSON
{
  "object": "trigger_secret",
  "previous_valid_until": "2026-11-11T09:30:00.000Z",
  "secret": "IzJrExdzW7p9cr8Una_bi5ySNboQz2r48-vaA7fTPki",
  "trigger_id": "trg_01jcte7b16k06c684ac89xccgx"
}
post/v1/triggers/{trigger_id}/test

Fire test event

Needs trigger.manage

Fire a sample event without a signature, marked is_test: the run is metered but flagged and never counts in health (section 10).

Path parameters

  • trigger_idstringRequired

Request bodyTriggerTest

  • payloadobject

    Any JSON object.

Response202

  • receivedboolean
  • event_idstring or null

Status codes

  • 202Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/triggers/trg_01jcte7b16k06c684ac89xccgx/test" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "order_id": "A-1001",
      "amount": 42
    }
  }'
Response · 202
JSON
{
  "event_id": "evt_01jc0yrbnm84d8zbtsv0h4ksah",
  "received": true
}
post/v1/in/{route_code}/{trigger_id}

Inbound webhook

No key: the sender signs it

The door: find, verify, de-duplicate, store sealed, answer 202. No tenant logic runs here, and a refusal never says why.

Path parameters

  • route_codestringRequired
  • trigger_idstringRequired

Request body

Any JSON object.

Response202

  • receivedboolean
  • event_idstring or null

Status codes

  • 202Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
BODY='{"order_id":"A-1001","amount":42}'
SIGNATURE=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$MDA_WEBHOOK_SECRET" | sed 's/^.* //')

curl -X POST "https://api.mydeepagents.com/v1/in/k7m2p9qa/trg_01jcte7b16k06c684ac89xccgx" \
  -H "Content-Type: application/json" \
  -H "X-Signature: sha256=$SIGNATURE" \
  -d "$BODY"
Response · 202
JSON
{
  "event_id": "evt_01jc0yrbnm84d8zbtsv0h4ksah",
  "received": true
}

Build with us

Ready for your first call?

Early access is open. Tell us what you want your agents to do, and we will help you get your first key.