Flashpoint.AIFlashpoint.AIdocs

Dynata

Dynata (formerly Research Now SSI) is the world's largest first-party data and insights platform, with access to respondents across 220+ countries. Flashpoint.AI integrates with Dynata's Samplify API to let you recruit real human respondents for large-scale market research, B2B studies, and niche professional audiences.

How it works

Dynata uses a project-based model. When you launch a panel, Flashpoint.AI creates a Samplify project with a line item that specifies your targeting (as a quota plan), sample size, length of interview, and incidence rate. Dynata handles respondent routing, qualification, and payment on their side.

Respondent tracking uses Dynata's [%RID%] placeholder system. When a respondent finishes the survey, Flashpoint.AI redirects them to Dynata's exit endpoint with an HMAC-SHA256-signed URL that encodes the outcome (complete, screen-out, or quota full). This signature lets Dynata verify the redirect originated from Flashpoint.AI.

Key differences from Prolific

DimensionProlificDynata
ModelStudy-basedProject-based with line items
FeasibilityPre-project eligibility countRequires a draft project — no pre-project feasibility endpoint
AuthToken header (Token <key>)Password grant against Samplify auth endpoint
Targeting formatFilter ID + selected valuesQuota plan with attribute IDs and option IDs
Redirect securityCompletion codes (per-study unique)HMAC-SHA256 signed exit URLs
Typical latency24-48 hours2-7 days
Best forAcademic, UX, consumer surveysLarge-scale MR, B2B, multi-country

Targeting

Dynata targeting uses Samplify attribute IDs. The platform translates canonical keys (like sex, age_range, education) into the Dynata wire format automatically.

Standard targeting keys

KeyAttribute IDFormatDescription
sex / gender11Enum: male, femaleBiological sex.
age13Integer (18-99)Minimum age.
age_range13Range string, e.g. "25-34"Age range.
household_income_usd14Samplify referenceAnnual household income.
education15Samplify referenceHighest education level.
employment_status16Samplify referenceCurrent employment.
marital_status17Samplify referenceRelationship status.
ethnicity / race18Samplify referenceSelf-identified ethnicity.
us_zip / zip195-digit stringUS ZIP code.
us_state20USPS code or full nameUS state of residence.
us_region21Census region nameUS census region.

Keys marked "Samplify reference" accept locale-specific values from Dynata's reference data API. For the sex / gender key, the platform handles the translation (male maps to option 1, female to option 2). All other keys pass values through as strings to Samplify.

Attribute search for niche targeting

Dynata's full attribute catalog spans thousands of entries organized into 14 categories: Demographic, Automotive, Leisure/Interests, Entertainment, Travel, Finance, Household, Electronics, Shopping, Food/Beverages, Utilities, Region, Political, and B2B.

Use the attribute search to find targeting options beyond standard demographics. This is an agent-only operation — there is no public REST endpoint. The surveys agent runs the search against Dynata's catalog and returns the matches inline.

Agent prompt:

Search Dynata for vehicle ownership attributes.

The agent returns matches that include the vendor's own attribute_id and options. Pass these directly into the attributes parameter on quote and submit — no translation needed.

{
  "matches": [
    {
      "attribute_id": "8421",
      "name": "Vehicle Ownership",
      "category": "AUTOMOTIVE",
      "options": [
        {"id": "1", "label": "Own"},
        {"id": "2", "label": "Lease"},
        {"id": "3", "label": "Neither"}
      ]
    }
  ]
}

Survey topics

Dynata uses a topic taxonomy to route respondents. The default topic is BUSINESS. You can override it via the config parameter if your survey falls under a different category (e.g., HEALTHCARE, AUTOMOTIVE, FINANCE).

The full flow

The flow follows the same shape as Prolific: list providers, check filters, quote, approve and pay, monitor, pause/resume.

Step 1: Get a quote

Dynata's feasibility check requires creating a draft project on Samplify (there is no pre-project feasibility endpoint). Flashpoint.AI handles this automatically — the draft project is free and auto-expires. The platform polls Samplify for the feasibility result with exponential backoff, since Dynata returns a PROCESSING status while computing.

Agent prompt:

Quote 500 US respondents on Dynata for the brand tracker, ages 25-54.

API call:

curl -X POST https://surveys.flashpoint.ai/api/v1/surveys/$SURVEY_ID/panels/quote \
  -H "X-Service-Token: $TOKEN" \
  -H "X-Team-ID: $TEAM_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "provider_id": "DYNATA_PROVIDER_UUID",
    "sample_size": 500,
    "country": "US",
    "targeting": {
      "age_range": "25-54"
    },
    "loi_minutes": 12
  }'

Response shape:

{
  "feasible": true,
  "estimated_completes": 500,
  "estimated_days": 5,
  "cost_per_complete": "4.20",
  "total_cost": "2100.00",
  "currency": "USD",
  "warnings": []
}

If Dynata's feasibility engine is still computing when the retry budget is exhausted (~40 seconds), the response returns with a warning and feasible: false. Retry in a moment.

Step 2: Use niche attributes in the quote

Combine standard targeting with vendor-direct attributes from the search catalog.

Agent prompt:

Quote 300 US iPhone users aged 18-34 on Dynata.

API call:

curl -X POST https://surveys.flashpoint.ai/api/v1/surveys/$SURVEY_ID/panels/quote \
  -H "X-Service-Token: $TOKEN" \
  -H "X-Team-ID: $TEAM_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "provider_id": "DYNATA_PROVIDER_UUID",
    "sample_size": 300,
    "country": "US",
    "targeting": {
      "age_range": "18-34"
    },
    "attributes": [
      {"attribute_id": "8421", "options": ["1"]}
    ]
  }'

Multiple attribute entries are AND-ed together. Within one entry, multiple options are OR-ed. Add "operator": "exclude" to negate an attribute.

Step 3: Approve and pay

Same Stripe inline payment flow as Prolific. The panel auto-launches after payment clears. On the Samplify side, this triggers a POST /sample/v1/projects/{id}/buy call that moves the project from draft to fielding.

Agent prompt:

Approve the Dynata panel and launch.

Step 4: Monitor status

Check live progress from Dynata's stats endpoint.

Agent prompt:

How's the Dynata panel doing?

Response shape:

{
  "status": "active",
  "completes": 312,
  "starts": 405,
  "disqualified": 67,
  "over_quota": 26
}

Step 5: Pause and resume

Pause halts respondent flow. Resume reactivates the project.

Agent prompts:

Pause the Dynata panel.

Resume recruiting on Dynata.

How the quota plan works

Dynata's targeting is expressed as a quota plan — a nested structure of quota groups, cells, and nodes. When you provide a flat targeting dict (e.g., {"sex": "male", "age_range": "25-34"}), Flashpoint.AI collapses all conditions into a single quota cell with the specified sample size.

For split quotas (e.g., 50% male / 50% female), the platform converts Flashpoint.AI's Quota database records into multi-cell quota plans via the quota mapper. Each cell specifies its own count and conditions.

Wire format example (single cell):

{
  "filters": [],
  "quotaGroups": [
    {
      "name": "Targeting",
      "quotaCells": [
        {
          "quotaCellId": "default",
          "count": 500,
          "quotaNodes": [
            {
              "attributeId": "11",
              "options": ["1"],
              "operator": "include"
            },
            {
              "attributeId": "13",
              "options": ["25-34"],
              "operator": "include"
            }
          ]
        }
      ]
    }
  ]
}

An empty quota plan ({}) means general population with no filtering.

HMAC-signed redirect URLs

When a respondent finishes (or is disqualified, or hits quota full), Flashpoint.AI redirects them to Dynata's exit endpoint at api.dynata.com/respondent/exit. Each redirect URL includes:

ParameterPurpose
rstResult status: 1 = complete, 2 = screen out, 3 = quota full
psidRespondent ID (Dynata substitutes [%RID%] at runtime)
_oFlashpoint.AI's project ID
_kSecurity key ID
_sHMAC-SHA256 signature over the path and query string

The signature lets Dynata verify that the redirect originated from Flashpoint.AI and was not tampered with. If signing keys are not configured, URLs are generated unsigned (acceptable for development, logged as a warning in production).

Reference data

Dynata's attribute catalog, country list, and survey topic taxonomy are all locale-specific and fetched from Samplify's reference data API. Flashpoint.AI caches this data for one hour. The attribute catalog is paginated and deduplicated — only attributes marked isAllowedInQuotas=true are surfaced.

Next steps

  • Prolific — an alternative panel provider for academic and UX research.
  • Synthetic — pre-flight your survey with AI personas before spending on real respondents.
  • Analyze — compare Dynata results against other panel sources.