> ## Documentation Index
> Fetch the complete documentation index at: https://docs.repdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SEARCH (POST)

Same digital fingerprinting, bot and click-farm detection, and duplication scoring as [SEARCH (GET)](/research-defender/endpoints/get-api-v4-respondents-search-publishable_key), with the parameters sent as a JSON body (`Content-Type: application/json`).

`sn_ud` and `sy_nr` are required; `rt_cy_ce` (country code) is strongly recommended. See the [SEARCH guide](/research-defender/guides/search/01-overview) for parameter definitions and failure-reason codes.


## OpenAPI

````yaml POST /api/v4/respondents/search/{publishable_key}
openapi: 3.0.3
info:
  title: Research Defender API
  version: 1.0.0
  description: >-
    Research Defender protects survey data quality through digital
    fingerprinting, duplication detection, and open-end text analysis. This
    reference covers the **SEARCH**, **REVIEW**, and **PREDUPE** products.


    > ACTIVITY and VERIFY are hosted on a separate domain (resdefio.com) and are
    documented separately.


    ## Authentication


    Client-side calls (SEARCH, REVIEW, GETTOKEN) use your **publishable key** in
    the URL path. Server-side lookups (destination_platforms) use your **private
    key**. For enhanced protection, use V3 server-to-server tokens (GETTOKEN) or
    V4 Hashed Validation.


    ## Environments


    Production: `https://prod.rtymgt.com`  

    Staging: `https://staging.rtymgt.com`
servers:
  - url: https://prod.rtymgt.com
    description: Production
  - url: https://staging.rtymgt.com
    description: Staging
security: []
paths:
  /api/v4/respondents/search/{publishable_key}:
    post:
      summary: SEARCH (POST)
      operationId: Search_SearchPost
      parameters:
        - name: publishable_key
          in: path
          required: true
          description: Your Research Defender publishable key (client-side).
          schema:
            type: string
          example: 9fc32a73-8165-4dd4-ae19-458bed3c8db5
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - sn_ud
                - sy_nr
              properties:
                sn_ud:
                  type: string
                  description: >-
                    Unique identifier for each API call (do not reuse across
                    surveys/respondents). GUID recommended.
                sy_nr:
                  type: string
                  description: >-
                    Unique identifier for the client survey, consistent for each
                    survey.
                rt_cy_ce:
                  type: string
                  description: >-
                    Survey country code (ISO 3166-1 alpha-2) so SEARCH can
                    detect country mismatches. Recommended.
                rt_sr_pd:
                  type: string
                  description: >-
                    Persistent respondent identifier for deduplication. Only use
                    if you have independently verified respondent identity.
                pm_sr_id:
                  type: string
                  description: >-
                    Supplier ID (name, abbreviation, or numeric) for backend
                    reporting.
                sy_gp_nr:
                  type: string
                  description: >-
                    Survey group identifier to deduplicate respondents across
                    surveys.
                set_window:
                  type: string
                  description: >-
                    Lockout period in days for a survey. Returns days_flag=1 if
                    the respondent attempted the survey within fewer days than
                    this window.
                coordinates:
                  type: string
                  description: >-
                    Set to 1 to include geolocation, time zone, and weather
                    attributes (latitude, longitude, time_zone, weather_code,
                    state_name).
                wd:
                  type: string
                  description: Set to 1 to include the last transaction date (d_date).
                mm:
                  type: string
                  description: >-
                    Set to 1 to disable MaxMind termed-failure detection
                    (failure_reason=18).
                df_details:
                  type: string
                  description: >-
                    Set to 1 to include an additional dataset with respondent
                    information.
                sip:
                  type: string
                  description: Set to 1 to show the IP address on the API response.
                vpt:
                  type: string
                  description: Pass 'check' to check VPN status (returns 1/0).
                usage_type:
                  type: string
                  description: >-
                    Set to 1 to return usage type: consumer, corporate, or
                    hosting.
                validation:
                  type: string
                  description: >-
                    V4 only: SHA-256 of the request URL signed with your private
                    key (Hashed Validation).
                destination_platform_id:
                  type: string
                  description: >-
                    PREDUPE: unique identifier for the destination
                    platform/buyer. Retrieve via the destination_platforms
                    endpoint.
                destination_platform_survey_number:
                  type: string
                  description: >-
                    PREDUPE: the destination platform's internal survey number
                    (for Research Desk, use the ProjectUd).
                rt_hd_el:
                  type: string
                  description: Hashed email, if any.
                csedp3:
                  type: string
                  description: Set to 1 to provide a result from the EDP score (EDP3 node).
                sisp:
                  type: string
                  description: Set to 1 to provide the ISP (Internet Service Provider).
                dupe_details:
                  type: string
                  description: >-
                    Set to 1 to show the corresponding details for the duplicate
                    (dupes_details).
                mfr:
                  type: string
                  description: >-
                    Set to 1 to provide every triggered failure reason
                    (multiple_failure_reason), not just one.
                tbc:
                  type: string
                  description: >-
                    Set to 1 to allow testers to bypass checks. For testing
                    only.
      responses:
        '200':
          description: Respondent fingerprint and survey duplication results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  Respondent:
                    type: object
                    properties:
                      threat_potential_score:
                        type: string
                        description: 1 (lowest) to 99 (highest threat).
                      country:
                        type: string
                      country_code:
                        type: string
                      respondent_risk:
                        type: integer
                      respondent_ud:
                        type: string
                        format: uuid
                        description: >-
                          Stable identifier tracking a respondent across
                          sessions.
                      time_zone:
                        type: string
                  Surveys:
                    type: array
                    items:
                      type: object
                      properties:
                        flag:
                          type: integer
                          description: >-
                            Deprecated. 1 if previously accessed. Use
                            duplicate_score.
                        duplicate_initial_ud:
                          type: string
                          description: >-
                            sn_ud of the most recent prior session for a
                            duplicate.
                        duplicate_potential:
                          type: string
                          description: Deprecated. Use duplicate_score.
                        duplicate_score:
                          type: string
                          description: 100 if duplicate, 0 if unique.
                        country_mismatch:
                          type: integer
                          description: 1 if the geolocated country differs from rt_cy_ce.
                        failure_reason:
                          type: string
                          description: >-
                            Populated when threat_potential_score >= 31. See the
                            SEARCH guide for codes.
                        days_flag:
                          type: integer
                          description: Populated when set_window is used.
                        days_difference:
                          type: integer
              example:
                Respondent:
                  threat_potential_score: '23'
                  country: United States
                  country_code: US
                  respondent_risk: 0
                  respondent_ud: 4489560a-507f-468a-ae4b-d81ea80fab5d
                  time_zone: America/Chicago
                Surveys:
                  - flag: 1
                    duplicate_initial_ud: 481cd5cf-88f1-44c2-8292-6b779b8a3a8e
                    duplicate_potential: high
                    duplicate_score: '100'
                    country_mismatch: 0
                    failure_reason: '02'
                    days_flag: 1
                    days_difference: 0

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.