Nyne.ai API Login
Person APIs

Persona Simulation API

Runs a persona simulation: predicts how a resolved person would respond to a question, with sentiment and confidence signals. Requires an identifier (email, phone, or social_media_url) and a question (max 1000 chars); optional name/company/city sharpen the persona. The request is queued and returns a request_id - poll the status endpoint about every 5 seconds or supply a callback_url.

POST https://api.nyne.ai/person/simulation API key

Manual credentials take precedence over your account key.

Try it needs this required parameter:

Overview

The Simulation API models likely responses from a person or persona, helping teams test messaging, positioning, and research hypotheses before outreach.

Best for

  • Testing messaging
  • Modeling audience reactions
  • Generating persona-based feedback

Returns

  • Simulated answer
  • Reasoning context
  • Profile-informed signals

Parameters

question string required
The question to simulate a response to. Required, max 1000 characters.
email string optional
Email identifier. Validated for format.
phone string optional
Phone identifier.
social_media_url string | array optional
Profile URL, or an array of up to 3 URLs (one per platform) for faster results. At least one of email/phone/url is required.
0 / 3
name string optional
Optional name context.
company string optional
Optional employer context.
city string optional
Optional location context.
callback_url string optional
If set, the completed result is POSTed here when the job finishes. Must be a valid HTTP(S) URL on an allowed host when a callback allow-list is configured.

Retrieving the result

This endpoint is asynchronous. A successful submit returns a request_id while the job runs in the background. Poll the same path with a GET request - same authentication headers - passing the request_id as a query parameter:

Loading your API credentials...

Each poll returns the job's current status; once it is completed the payload carries the result shown under Responses. Polling an unknown or expired request_id returns 404 request_not_found.

Status Meaning
queued · processing · pending The job is still running - keep polling.
completed The job finished; the payload carries the result and completed: true.
failed Terminal - the job could not complete; the error field explains why.

Poll every few seconds at first, backing off for long-running jobs. Polling is free - status checks never burn credits.

Prefer push delivery?
Supply the optional callback_url parameter and the completed payload is POSTed to your endpoint when the job finishes - no polling required. Delivery is retried up to 5 times with exponential backoff (1s, 5s, 15s, 1m, 5m) and a 30-second timeout per attempt; respond with a 2xx status to acknowledge receipt.

Credit usage

Credits are charged based on the matched configuration. The listed cost is the per-result unit price.

Feature Credits Notes
Simulation - Minimum 10 credits required to submit; charged when processed
No match 0 Empty results never burn credits
Heads up
Empty results do not burn credits.

Responses

200 Status poll result - returns the current request status and result/error fields when available
202 Request queued - poll the status endpoint (or wait for the callback) with the returned request_id
400 Malformed JSON, missing required parameters, or an invalid field
401 Missing or invalid API credentials
402 insufficient_credits - not enough credits to complete the request
403 subscription_required or ip_not_allowed
404 request_not_found - no matching request is available for this API key
429 rate_limit_exceeded
503 service_unavailable - the API is temporarily unavailable
200 Completed simulation returned inline

A successful response wraps the payload in the { success, data, timestamp } envelope (also shown live in the panel on the right):

{
  "success": true,
  "data": {
    "request_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4_1717000000_4271",
    "status": "completed",
    "completed": true,
    "result": {
      "at_a_glance": {
        "sentiment": "positive",
        "short_answer": "Likely open to evaluating a cloud-native CRM if integrations and migration are strong.",
        "conviction_level": "moderate",
        "confidence": "high",
        "confidence_reason": "Strong recent social signal directly related to the question topic.",
        "key_drivers": [
          "5+ years in SaaS product leadership",
          "Recent posts about CRM limitations"
        ]
      },
      "is_sufficient_signal": true,
      "simulated_response": "We're always evaluating new tools. Our current solution has reporting gaps - show me better integrations and a faster migration path and I'd be open to a conversation."
    },
    "completed_on": "2026-01-15T10:35:00Z"
  },
  "timestamp": "2026-01-01T00:00:00"
}