REDUCE API

Behavioral text optimization, as a single REST call.

Wrap parts of your template in <<OPTIMIZE>> markers, POST it with goal and context, get back optimized copy plus the applied techniques. Built on Jonah Berger's REDUCE model.

Pay-per-call with Ψ-tokens. Tokens never expire.

How it works

From template to optimized text in four steps

  1. 1

    Mark

    Wrap the section you want optimized in <<OPTIMIZE>>...<</OPTIMIZE>>. The rest stays as context.

  2. 2

    Send

    POST text + goal + context to the API with your x-api-key header.

  3. 3

    Receive

    Get back optimized_section plus techniques_used (name + motivation per technique).

  4. 4

    Replace

    Swap the marked section in your template with the result — done. Loops, batches and A/B tests all welcome.

AT SCALE · REDUCE API
Mark a fragment. Pass your context.
Different signals — different rewrite, every send.
▸ You mark the variable text fragment
From: BankStream · Customer Care
Subject: Your account renewal — 30 days left
Dear Mr. Coster, Your premium subscription expires in 30 days. <<OPTIMIZE>>To keep access to your investment dashboard, please renew before May 30th.<</OPTIMIZE>> Most of our long-term customers renew before the deadline to avoid any interruption. You've been with BankStream since 2021 — we'd like to keep it that way. If you choose not to renew, your account will revert to the free tier and your saved portfolios will be archived.
▸ Identify and include customer data
▸ Variant 1 · Trial expired · day 5
{
"context": {
"days_since_cancellation": 5,
"reason": "expired_trial",▸ driver
"used_offer": false,▸ driver
"source": "google"
}
}
▸ Decision driver expired_trial + used_offer=false → certainty / risk reversal
▸ Variant 2 · Active unsubscribe · day 30
{
"context": {
"days_since_cancellation": 30,▸ driver
"reason": "active_unsubscribe",▸ driver
"used_offer": true,
"source": "social"
}
}
▸ Decision driver active_unsubscribe + day 30 → endowment / surface what they'd lose
▸ Each fragment is optimized to match customer data with our psychological techniques
Variant 1 · only the <<OPTIMIZE>> fragment changed
"We'll keep your dashboard live automatically — and you have 14 days to switch back if it doesn't fit."
Variant 2 · only the <<OPTIMIZE>> fragment changed
"If you want to keep your saved portfolios, your alerts, and four years of dashboard history, here's the link."
0:00 / 0:23
AT SCALE · REDUCE API
Mark a fragment. Pass your context.
Different signals — different rewrite, every send.
▸ You mark the variable text fragment
From: BankStream · Customer Care
Subject: Your account renewal — 30 days left
Dear Mr. Coster, Your premium subscription expires in 30 days. <<OPTIMIZE>>To keep access to your investment dashboard, please renew before May 30th.<</OPTIMIZE>> Most of our long-term customers renew before the deadline to avoid any interruption. You've been with BankStream since 2021 — we'd like to keep it that way. If you choose not to renew, your account will revert to the free tier and your saved portfolios will be archived.
▸ Identify and include customer data
▸ Variant 1 · Trial expired · day 5
{
"context": {
"days_since_cancellation": 5,
"reason": "expired_trial",▸ driver
"used_offer": false,▸ driver
"source": "google"
}
}
▸ Decision driver expired_trial + used_offer=false → certainty / risk reversal
▸ Variant 2 · Active unsubscribe · day 30
{
"context": {
"days_since_cancellation": 30,▸ driver
"reason": "active_unsubscribe",▸ driver
"used_offer": true,
"source": "social"
}
}
▸ Decision driver active_unsubscribe + day 30 → endowment / surface what they'd lose
▸ Each fragment is optimized to match customer data with our psychological techniques
Variant 1 · only the <<OPTIMIZE>> fragment changed
"We'll keep your dashboard live automatically — and you have 14 days to switch back if it doesn't fit."
Variant 2 · only the <<OPTIMIZE>> fragment changed
"If you want to keep your saved portfolios, your alerts, and four years of dashboard history, here's the link."

Example call

One POST. Optimized copy + explanation.

Send your draft and context. Receive optimized text plus the behavioral techniques applied — auditable and explainable.

Request — cURL

cURLbash
curl -X POST https://api.behaviorpro.nl/functions/v1/api-reduce \
  -H "Content-Type: application/json" \
  -H "x-api-key: bp_your_api_key_here" \
  -d '{
    "text": "Beste klant, <<OPTIMIZE>>Graag herinneren wij u aan uw afspraak op dinsdag 15 april om 10:00 uur op ons kantoor.<</OPTIMIZE>> Met vriendelijke groet, Alpine Group",
    "goal": "Voorkom no-shows bij adviesgesprekken",
    "context": {
      "doelgroep": "particuliere polishouders",
      "kanaal": "email",
      "eerdere_afspraken": 3,
      "beschikbare_plekken": 2
    }
  }'
bash block

Response — JSON

200 OKjson
{
  "optimized_section": "U heeft al 3 eerdere gesprekken bij ons gehad - dit adviesgesprek is de laatste stap om uw dekking compleet te maken. 98% van onze klanten verschijnt op hun afspraak. Er zijn nog 2 plekken beschikbaar. Wilt u de afspraak bevestigen of een ander moment kiezen?",
  "techniques_used": [
    {
      "name": "Sunk-Cost Effect",
      "motivation": "Customer has had 3 prior conversations; reminder of investment motivates attendance."
    },
    {
      "name": "Social Proof",
      "motivation": "98% attendance rate reinforces the norm that showing up is expected behavior."
    },
    {
      "name": "Alternative Choice",
      "motivation": "Choice between confirming or rescheduling gives the customer control."
    }
  ]
}
json block

Full endpoints, parameters, error codes and language SDKs in the API documentation .

The REDUCE model

Five behavioral barriers — one focused API

Jonah Berger's REDUCE model identifies the five psychological barriers that stop people from changing. The API matches each text to the right barrier and applies techniques scientifically shown to lower it.

Reactance

People push back when they feel pushed. The API uses techniques like Evoking Freedom, Alternative Choice, Self-Persuasion and Empathy.

Endowment

People overvalue what they already have. The API uses Costs of Inaction, Loss Aversion, Sunk-Cost Effect and Burn the Ships.

Distance

Big asks get rejected. The API uses Information Chunking, Endowed Progress, Self-Efficacy, Switch the Field and Find the Movable Middle.

Uncertainty

Risk freezes action. The API uses Risk Reduction and Experiential Learning — trial periods, reversibility, low-stakes first steps.

Corroborating Evidence

Strong beliefs need multiple sources. The API uses Authority, Social Proof, Reasons Why and Temporal Evidence Spacing.

What you get

A developer-friendly behavioral optimizer

One REST endpoint, any stack

POST to /functions/v1/api-reduce with text + goal + context. Integrates with CRM, CCM, e-mail platforms, customer portals.

Built on the REDUCE model

Five behavioral barriers (Reactance, Endowment, Distance, Uncertainty, Corroborating Evidence) from Jonah Berger's research. The API picks the right one.

Curated, evidence-based techniques

Each technique is mapped to a REDUCE barrier and selected based on your goal, audience and context — not generic AI rewriting.

Transparent reasoning per call

Every response includes techniques_used with the applied technique name + motivation. Auditable, explainable, compliance-friendly.

Marker-based scoping

Wrap parts of your template in <<OPTIMIZE>>...<</OPTIMIZE>>. The rest stays as context but is not rewritten — full control.

Python & JavaScript examples

Drop-in code samples for CRM workers, customer portals, e-mail platforms and any HTTP-capable system.

Rate-limited & fast

60 requests/minute per key, average response 3–8 seconds. Suitable for transactional and batch workflows.

Hashed API keys

SHA-256 hashed at rest. Keys revocable per-second from your profile. One key per environment (dev, staging, prod).

GDPR-safe, EU-hosted

TLS 1.3, no training on your content, no text retention after processing. Anonymise PII before sending.

Ψ-tokens, no surprise billing

Pay-per-call with Ψ-tokens. Top up, subscribe, or get tokens bundled in Enterprise. Tokens never expire.

Built for

Financial services, CCM/CXM platforms and integrators

Use cases include policy renewals, no-show prevention, cross-sell, claim guidance and offer follow-ups.

“We exposed BehaviorPro's REDUCE optimization as a "behavioral upgrade" module to our customers. Plug-in revenue without owning the science.”
CTO
CCM/CXM platform
Placeholder — real quote follows
“Two days to wire it into our CRM. The techniques_used field made the upgrade auditable — our compliance team signed off without a meeting.”
Lead Developer
Insurance integrator
Placeholder — real quote follows
“Renewal reminders went from generic to behaviorally targeted overnight. We track uplift per technique, not per message.”
Head of Customer Lifecycle
Subscription business
Placeholder — real quote follows

Questions about the REDUCE API

Ready to optimize customer communication at scale?

Start with the API test tool in your account, or jump straight into the full reference.

Or download the REDUCE whitepaper from the docs page for the full deep-dive.