Responses

Search responses using advanced filters

post
https://api.typeform.com/forms/{form_id}/responses/search

Retrieves form responses using a structured filter format that supports combining multiple conditions on answers, metadata, tags, hidden fields, response IDs, and submission time. Prefer this endpoint over GET /forms/{form_id}/responses when you need to filter by answer values or combine conditions.

Request

Path Parameters

form_id
, required

Unique ID for the form. Find in your form URL. For example, in the URL "https://mysite.typeform.com/to/u6nXL7" the form_id is u6nXL7.

Request Body

after_response_id

Return responses submitted after this cursor (exclusive).

answered_fields

Only return responses that answered at least one of these field IDs.

before_response_id

Return responses submitted before this cursor (exclusive).

fields

Restrict the answers section to these field IDs. Omitted fields return null.

filter_group Path 3
object

A set of filters combined with a logical AND. A response is included only when every filter matches.

filters Path 3
array of object
field
string, required

The field to filter on. Supported values:

  • response_id — filter by response IDs
  • timestamp — filter by submission time (use with interval)
  • tags — filter by response tags
  • answers.{field_id} — filter by the answer to a specific form field
  • metadata.{key} — filter by a metadata attribute (e.g. metadata.platform)
  • hidden.{key} — filter by a hidden field value
negate
boolean

When true, inverts the match.

operator
string, required
Valid values:any_ofequalsintervalcontainsequalsany_ofinterval

How value is compared to the field:

  • equals — exact match against value.text, value.number, or value.boolean
  • any_of — matches any entry in value.text_list
  • interval — matches values inside value.interval (used with timestamp)
value Path 3
object, required

Filter operand. Provide exactly one field, matching the operator (equals uses text/number/boolean, any_of uses text_list, interval uses interval).

boolean
boolean
interval Path 3
object

A time range in Unix seconds. Both bounds are inclusive; either bound may be omitted for an open-ended range.

end
integer
start
integer
number
integer
text
string
text_list
array of string
query
string

Search for an exact phrase within answer values, hidden field values, and variable values. A response matches when any of the three contains the phrase as a contiguous sequence of words.

response_type
array of string

Which response types to include. Defaults to ["completed"] when omitted.

size
integer

Maximum number of responses to return per page. Default 25, maximum 1000.

sort
array of string

One or more sort clauses. Cannot be combined with after_response_id or before_response_id.

Example

{
  "filter_group": {
    "filters": [
      {
        "field": "timestamp",
        "operator": "interval",
        "value": {
          "interval": {
            "end": 1706745600,
            "start": 1704067200
          }
        }
      },
      {
        "field": "tags",
        "operator": "any_of",
        "value": {
          "text_list": [
            "priority",
            "follow-up"
          ]
        }
      }
    ]
  },
  "response_type": [
    "completed"
  ],
  "size": 100
}

Responses

Status

200 OK

Schema

Representation of collection of responses to a specific form. It is used for displaying results in a human-friendly format.

total_items
number

Total number of items in the retrieved collection.

page_count
number

Number of pages.

items
array of object

Example

{
  "items": [
    {
      "answers": [
        {
          "field": {
            "id": "hVONkQcnSNRj",
            "ref": "my_custom_dropdown_reference",
            "type": "dropdown"
          },
          "text": "Job opportunities",
          "type": "text"
        },
        {
          "boolean": false,
          "field": {
            "id": "RUqkXSeXBXSd",
            "ref": "my_custom_yes_no_reference",
            "type": "yes_no"
          },
          "type": "boolean"
        },
        {
          "boolean": true,
          "field": {
            "id": "gFFf3xAkJKsr",
            "ref": "my_custom_legal_reference",
            "type": "legal"
          },
          "type": "boolean"
        },
        {
          "field": {
            "id": "JwWggjAKtOkA",
            "ref": "my_custom_short_text_reference",
            "type": "short_text"
          },
          "text": "Lian",
          "type": "text"
        },
        {
          "email": "lian1078@other.com",
          "field": {
            "id": "SMEUb7VJz92Q",
            "ref": "my_custom_email_reference",
            "type": "email"
          },
          "type": "email"
        },
        {
          "field": {
            "id": "pn48RmPazVdM",
            "ref": "my_custom_number_reference",
            "type": "number"
          },
          "number": 1,
          "type": "number"
        },
        {
          "field": {
            "id": "Q7M2XAwY04dW",
            "ref": "my_custom_number2_reference",
            "type": "number"
          },
          "number": 1,
          "type": "number"
        },
        {
          "field": {
            "id": "WOTdC00F8A3h",
            "ref": "my_custom_rating_reference",
            "type": "rating"
          },
          "number": 3,
          "type": "number"
        },
        {
          "field": {
            "id": "DlXFaesGBpoF",
            "ref": "my_custom_long_text_reference",
            "type": "long_text"
          },
          "text": "It's a big, busy city. I moved here for a job, but I like it, so I am planning to stay. I have made good friends here.",
          "type": "text"
        },
        {
          "field": {
            "id": "NRsxU591jIW9",
            "ref": "my_custom_opinion_scale_reference",
            "type": "opinion_scale"
          },
          "number": 1,
          "type": "number"
        },
        {
          "choices": {
            "labels": [
              "New York",
              "Tokyo"
            ]
          },
          "field": {
            "id": "PNe8ZKBK8C2Q",
            "ref": "my_custom_picture_choice_reference",
            "type": "picture_choice"
          },
          "type": "choices"
        },
        {
          "date": "2012-03-20T00:00:00Z",
          "field": {
            "id": "KoJxDM3c6x8h",
            "ref": "my_custom_date_reference",
            "type": "date"
          },
          "type": "date"
        },
        {
          "choice": {
            "label": "A friend's experience in Sydney"
          },
          "field": {
            "id": "ceIXxpbP3t2q",
            "ref": "my_custom_multiple_choice_reference",
            "type": "multiple_choice"
          },
          "type": "choice"
        },
        {
          "choices": {
            "labels": [
              "New York",
              "Tokyo"
            ]
          },
          "field": {
            "id": "abISxvbD5t1p",
            "ref": "my_custom_ranking_reference",
            "type": "ranking"
          },
          "type": "choices"
        },
        {
          "choice": {
            "label": "Tokyo"
          },
          "field": {
            "id": "k6TP9oLGgHjl",
            "ref": "my_custom_multiple_choice2_reference",
            "type": "multiple_choice"
          },
          "type": "choice"
        }
      ],
      "calculated": {
        "score": 2
      },
      "hidden": {},
      "landed_at": "2017-09-14T22:33:59Z",
      "landing_id": "21085286190ffad1248d17c4135ee56f",
      "metadata": {
        "browser": "default",
        "network_id": "respondent_network_id",
        "platform": "other",
        "referer": "https://user_id.typeform.com/to/lR6F4j",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
      },
      "response_id": "21085286190ffad1248d17c4135ee56f",
      "submitted_at": "2017-09-14T22:38:22Z",
      "token": "test21085286190ffad1248d17c4135ee56f",
      "variables": [
        {
          "key": "score",
          "number": 2,
          "type": "number"
        },
        {
          "key": "name",
          "text": "typeform",
          "type": "text"
        }
      ]
    },
    {
      "answers": [
        {
          "choice": {
            "label": "New York"
          },
          "field": {
            "id": "k6TP9oLGgHjl",
            "ref": "my_custom_multiple_choice2_reference",
            "type": "multiple_choice"
          },
          "type": "choice"
        },
        {
          "field": {
            "id": "X4BgU2f1K6tG",
            "ref": "my_custom_file_upload_reference",
            "type": "file_upload"
          },
          "file_url": "https://api.typeform.com/forms/lT9Z2j/responses/7f46165474d11ee5836777d85df2cdab/fields/X4BgU2f1K6tG/files/afd8258fd453-aerial_view_rural_city_latvia_valmiera_urban_district_48132860.jpg",
          "type": "file_url"
        },
        {
          "choice": {
            "label": "Other"
          },
          "field": {
            "id": "ceIXxpbP3t2q",
            "ref": "my_custom_multiple_choice_reference",
            "type": "multiple_choice"
          },
          "type": "choice"
        },
        {
          "field": {
            "id": "hVONkQcnSNRj",
            "ref": "my_custom_dropdown_reference",
            "type": "dropdown"
          },
          "text": "Cost of living",
          "type": "text"
        },
        {
          "field": {
            "id": "JwWggjAKtOkA",
            "ref": "my_custom_short_text_reference",
            "type": "short_text"
          },
          "text": "Sarah",
          "type": "text"
        },
        {
          "boolean": true,
          "field": {
            "id": "RUqkXSeXBXSd",
            "ref": "my_custom_yes_no_reference",
            "type": "yes_no"
          },
          "type": "boolean"
        },
        {
          "field": {
            "id": "Fep7sEoBsnvC",
            "ref": "my_custom_long_text_reference",
            "type": "long_text"
          },
          "text": "I read a magazine article about travelling to Sydney",
          "type": "text"
        },
        {
          "boolean": true,
          "field": {
            "id": "gFFf3xAkJKsr",
            "ref": "my_custom_legal_reference",
            "type": "legal"
          },
          "type": "boolean"
        },
        {
          "field": {
            "id": "BFcpoPU5yJPM",
            "ref": "my_custom_short_text_reference",
            "type": "short_text"
          },
          "text": "San Francisco",
          "type": "text"
        },
        {
          "email": "sarahbsmith@example.com",
          "field": {
            "id": "SMEUb7VJz92Q",
            "ref": "my_custom_email_reference",
            "type": "email"
          },
          "type": "email"
        },
        {
          "field": {
            "id": "pn48RmPazVdM",
            "ref": "my_custom_number_reference",
            "type": "number"
          },
          "number": 1,
          "type": "number"
        },
        {
          "field": {
            "id": "WOTdC00F8A3h",
            "ref": "my_custom_rating_reference",
            "type": "rating"
          },
          "number": 3,
          "type": "number"
        },
        {
          "field": {
            "id": "Q7M2XAwY04dW",
            "ref": "my_custom_number2_reference",
            "type": "number"
          },
          "number": 3,
          "type": "number"
        },
        {
          "field": {
            "id": "DlXFaesGBpoF",
            "ref": "my_custom_long_text_reference",
            "type": "long_text"
          },
          "text": "It's a rural area. Very quiet. There are a lot of farms...farming is the major industry here.",
          "type": "text"
        },
        {
          "field": {
            "id": "NRsxU591jIW9",
            "ref": "my_custom_opinion_scale_reference",
            "type": "opinion_scale"
          },
          "number": 1,
          "type": "number"
        },
        {
          "date": "2016-05-13T00:00:00Z",
          "field": {
            "id": "KoJxDM3c6x8h",
            "ref": "my_custom_date_reference",
            "type": "date"
          },
          "type": "date"
        },
        {
          "choices": {
            "labels": [
              "London",
              "New York"
            ]
          },
          "field": {
            "id": "PNe8ZKBK8C2Q",
            "ref": "my_custom_picture_choice_reference",
            "type": "picture_choice"
          },
          "type": "choices"
        }
      ],
      "calculated": {
        "score": 4
      },
      "hidden": {},
      "landed_at": "2017-09-14T22:27:38Z",
      "landing_id": "610fc266478b41e4927945e20fe54ad2",
      "metadata": {
        "browser": "default",
        "network_id": "respondent_network_id",
        "platform": "other",
        "referer": "https://user_id.typeform.com/to/lR6F4j",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
      },
      "submitted_at": "2017-09-14T22:33:56Z",
      "token": "test610fc266478b41e4927945e20fe54ad2"
    },
    {
      "answers": [
        {
          "boolean": false,
          "field": {
            "id": "RUqkXSeXBXSd",
            "ref": "my_custom_yes_no_reference",
            "type": "yes_no"
          },
          "type": "boolean"
        },
        {
          "boolean": true,
          "field": {
            "id": "gFFf3xAkJKsr",
            "ref": "my_custom_legal_reference",
            "type": "legal"
          },
          "type": "boolean"
        },
        {
          "field": {
            "id": "JwWggjAKtOkA",
            "ref": "my_custom_short_text_reference",
            "type": "short_text"
          },
          "text": "Paolo",
          "type": "text"
        },
        {
          "field": {
            "id": "pn48RmPazVdM",
            "ref": "my_custom_number_reference",
            "type": "number"
          },
          "number": 5,
          "type": "number"
        },
        {
          "field": {
            "id": "Q7M2XAwY04dW",
            "ref": "my_custom_number2_reference",
            "type": "number"
          },
          "number": 5,
          "type": "number"
        },
        {
          "choices": {
            "labels": [
              "Barcelona",
              "Sydney"
            ]
          },
          "field": {
            "id": "PNe8ZKBK8C2Q",
            "ref": "my_custom_picture_choice_reference",
            "type": "picture_choice"
          },
          "type": "choices"
        },
        {
          "field": {
            "id": "WOTdC00F8A3h",
            "ref": "my_custom_rating_reference",
            "type": "rating"
          },
          "number": 5,
          "type": "number"
        },
        {
          "field": {
            "id": "DlXFaesGBpoF",
            "ref": "my_custom_long_text_reference",
            "type": "long_text"
          },
          "text": "I live in a medium-sized European city. It's not too crowded, and the people are nice. I like the weather. It's also easy to travel to many beautiful and interesting vacation destinations from where I live.",
          "type": "text"
        },
        {
          "field": {
            "id": "NRsxU591jIW9",
            "ref": "my_custom_opinion_scale_reference",
            "type": "opinion_scale"
          },
          "number": 4,
          "type": "number"
        },
        {
          "date": "1999-08-01T00:00:00Z",
          "field": {
            "id": "KoJxDM3c6x8h",
            "ref": "my_custom_date_reference",
            "type": "date"
          },
          "type": "date"
        },
        {
          "choice": {
            "label": "Barcelona"
          },
          "field": {
            "id": "k6TP9oLGgHjl",
            "ref": "my_custom_multiple_choice_reference",
            "type": "multiple_choice"
          },
          "type": "choice"
        }
      ],
      "calculated": {
        "score": 10
      },
      "hidden": {},
      "landed_at": "2017-09-14T22:24:49Z",
      "landing_id": "9ba5db11ec6c63d22f08aade805bd363",
      "metadata": {
        "browser": "default",
        "network_id": "respondent_network_id",
        "platform": "other",
        "referer": "https://user_id.typeform.com/to/lR6F4j",
        "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1"
      },
      "submitted_at": "2017-09-14T22:27:34Z",
      "token": "test9ba5db11ec6c63d22f08aade805bd363"
    },
    {
      "answers": [],
      "calculated": {
        "score": 0
      },
      "hidden": {},
      "landed_at": "2017-09-15T09:09:30Z",
      "landing_id": "5fcb3f9c162e1fcdaadff4405b741080",
      "metadata": {
        "browser": "default",
        "network_id": "respondent_network_id",
        "platform": "other",
        "referer": "https://user_id.typeform.com/to/lR6F4j",
        "user_agent": "Mozilla/5.0 (Linux; Android 4.1.2; GT-N7000 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36"
      },
      "submitted_at": "0001-01-01T00:00:00Z",
      "token": "test5fcb3f9c162e1fcdaadff4405b741080"
    }
  ],
  "page_count": 1,
  "total_items": 4
}

Status

400 Bad request

Schema

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description of the error, expanding on the terse code.

details Path 3
array of object

An optional object containing more detailed info regarding which field the error occurred in.

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description about the field-level error.

field
string

Which field the error occurred. This could refer to a field in the request body, request header, or query parameter.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

in
string
Valid values:headerbodyquery

The type of field that caused the error.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

Status

401 Unauthorized

Schema

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description of the error, expanding on the terse code.

details Path 3
array of object

An optional object containing more detailed info regarding which field the error occurred in.

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description about the field-level error.

field
string

Which field the error occurred. This could refer to a field in the request body, request header, or query parameter.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

in
string
Valid values:headerbodyquery

The type of field that caused the error.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

Status

405 Method not allowed

Schema

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description of the error, expanding on the terse code.

details Path 3
array of object

An optional object containing more detailed info regarding which field the error occurred in.

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description about the field-level error.

field
string

Which field the error occurred. This could refer to a field in the request body, request header, or query parameter.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

in
string
Valid values:headerbodyquery

The type of field that caused the error.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

Status

500 Internal server error

Schema

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description of the error, expanding on the terse code.

details Path 3
array of object

An optional object containing more detailed info regarding which field the error occurred in.

code
string

A developer-readable snake_case key, indicating some idea of what type of error occurred.

description
string

A developer-readable description about the field-level error.

field
string

Which field the error occurred. This could refer to a field in the request body, request header, or query parameter.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.

in
string
Valid values:headerbodyquery

The type of field that caused the error.

help
string

A URL linking to help content, to aid the client developer in resolving the error. This value should be provided whenever available.