Typeform webhook payload example (form_response)

Typeform · event: form_response · content type: application/json

This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).

See it live, not frozen

One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:

Then paste the bin's URL into Typeform's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
typeform-signature: sha256=DvBbPO447snN+uh2D6mHEhxxxqq98vlDGvnZX3vHnOk=

Body

{
  "event_id": "01J9Q9FZ7GXK2E5M3N8P4R6T0V",
  "event_type": "form_response",
  "form_response": {
    "form_id": "lT4Z3j",
    "token": "a3a12ec67a1365927098a606107fac15",
    "response_url": "https://admin.typeform.com/form/lT4Z3j/results?responseId=a3a12ec67a1365927098a606107fac15#responses",
    "submitted_at": "2026-08-30T09:17:02Z",
    "landed_at": "2026-08-30T09:07:02Z",
    "calculated": {
      "score": 9
    },
    "variables": [
      {
        "key": "score",
        "type": "number",
        "number": 4
      },
      {
        "key": "name",
        "type": "text",
        "text": "typeform"
      }
    ],
    "hidden": {
      "user_id": "abc123456"
    },
    "definition": {
      "id": "lT4Z3j",
      "title": "Webhooks example",
      "fields": [
        {
          "id": "JwWggjAKtOkA",
          "title": "What is your first name?",
          "type": "short_text",
          "ref": "readable_ref_short_text",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        },
        {
          "id": "SMEUb7VJz92Q",
          "title": "If you're OK with our city management following up if they have further questions, please give us your email address.",
          "type": "email",
          "ref": "readable_ref_email",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        },
        {
          "id": "NRsxU591jIW9",
          "title": "How important is the weather to your opinion about a city? 1 is not important, 5 is very important.",
          "type": "opinion_scale",
          "ref": "readable_ref_opinion_scale",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        }
      ],
      "endings": [
        {
          "id": "dN5FLyFpCMFo",
          "ref": "01GRC8GR2017M6WW347T86VV39",
          "title": "Bye!",
          "type": "thankyou_screen"
        }
      ]
    },
    "answers": [
      {
        "type": "text",
        "text": "Laura",
        "field": {
          "id": "JwWggjAKtOkA",
          "type": "short_text"
        }
      },
      {
        "type": "email",
        "email": "laura@example.com",
        "field": {
          "id": "SMEUb7VJz92Q",
          "type": "email"
        }
      },
      {
        "type": "number",
        "number": 4,
        "field": {
          "id": "NRsxU591jIW9",
          "type": "opinion_scale"
        }
      }
    ],
    "ending": {
      "id": "dN5FLyFpCMFo",
      "ref": "01GRC8GR2017M6WW347T86VV39"
    }
  }
}

Things that bite people

Send it yourself

Reproduce this delivery against any endpoint (your handler, a bin, staging):

$ curl -X POST https://your-endpoint.example/hook \
  -H 'content-type: application/json' \
  -H 'typeform-signature: sha256=DvBbPO447snN+uh2D6mHEhxxxqq98vlDGvnZX3vHnOk=' \
 -d '{
  "event_id": "01J9Q9FZ7GXK2E5M3N8P4R6T0V",
  "event_type": "form_response",
  "form_response": {
    "form_id": "lT4Z3j",
    "token": "a3a12ec67a1365927098a606107fac15",
    "response_url": "https://admin.typeform.com/form/lT4Z3j/results?responseId=a3a12ec67a1365927098a606107fac15#responses",
    "submitted_at": "2026-08-30T09:17:02Z",
    "landed_at": "2026-08-30T09:07:02Z",
    "calculated": {
      "score": 9
    },
    "variables": [
      {
        "key": "score",
        "type": "number",
        "number": 4
      },
      {
        "key": "name",
        "type": "text",
        "text": "typeform"
      }
    ],
    "hidden": {
      "user_id": "abc123456"
    },
    "definition": {
      "id": "lT4Z3j",
      "title": "Webhooks example",
      "fields": [
        {
          "id": "JwWggjAKtOkA",
          "title": "What is your first name?",
          "type": "short_text",
          "ref": "readable_ref_short_text",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        },
        {
          "id": "SMEUb7VJz92Q",
          "title": "If you'\''re OK with our city management following up if they have further questions, please give us your email address.",
          "type": "email",
          "ref": "readable_ref_email",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        },
        {
          "id": "NRsxU591jIW9",
          "title": "How important is the weather to your opinion about a city? 1 is not important, 5 is very important.",
          "type": "opinion_scale",
          "ref": "readable_ref_opinion_scale",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        }
      ],
      "endings": [
        {
          "id": "dN5FLyFpCMFo",
          "ref": "01GRC8GR2017M6WW347T86VV39",
          "title": "Bye!",
          "type": "thankyou_screen"
        }
      ]
    },
    "answers": [
      {
        "type": "text",
        "text": "Laura",
        "field": {
          "id": "JwWggjAKtOkA",
          "type": "short_text"
        }
      },
      {
        "type": "email",
        "email": "laura@example.com",
        "field": {
          "id": "SMEUb7VJz92Q",
          "type": "email"
        }
      },
      {
        "type": "number",
        "number": 4,
        "field": {
          "id": "NRsxU591jIW9",
          "type": "opinion_scale"
        }
      }
    ],
    "ending": {
      "id": "dN5FLyFpCMFo",
      "ref": "01GRC8GR2017M6WW347T86VV39"
    }
  }
}'

← All payload examples · Signature debugger · Docs