Skip to content

Human behavior, as an API.

Send a video of a person who agreed to be measured. Get back where they stand among people, and their profile as structured data.

The API is not open yet, and its docs are a draft.

What it is for

  • Coaching and practice. A person records, changes something and records again.
  • Creators and speakers. They see how they come across on camera.
  • Research. Teams study how people behave on camera.
  • Your own product. You build features that serve the person you measure.
  • AI labs. They measure how human a generated person behaves: the evaluation.

Results may not be used in decisions about a person’s job, schooling, credit, insurance, housing or public services. They are not for law enforcement or immigration, or for inferring emotions or sensitive characteristics. The API terms give the full rules.

One call

  1. 1 · Send the video. A link to the file, or the file itself in chunks. Name the outputs you want and your consent reference.
  2. 2 · We check it and measure it. From a few minutes to about an hour. A video we cannot measure comes back rejected, with the reason. What we accept
  3. 3 · Get the result. We call your webhook when it is ready, or you ask for it.

What comes back

  • Signals. Each trait the video makes sure and that sits in the outer two tenths, as a place among people, from 0 to 99, and a band.
  • Reports. The person’s profile as structured data, with its chapters closed or open: the same findings, in the same order, that our site and PDF show.
  • The manifest. The release that made the result, and one version of everything behind it.
  • Your consent reference. Sent with the request, returned with the result.

Results are places and bands only: no raw values, no timestamps and no clips.

An example

Request
POST /v1/sessions
Authorization: Bearer pk_live_…
Content-Type: application/json

{
  "source": { "url": "https://example.com/videos/talk.mp4" },
  "outputs": { "signals": true, "reports": ["99"] },
  "release": "first@1",
  "consent": { "token": "consent-record-8812" },
  "webhook": { "url": "https://example.com/hooks/99traits" }
}
Response
{
  "id": "3f6c1e0a-5b7d-4a8e-9c21-0d4b7f9e2a11",
  "status": "ready",
  "consent": {
    "mode": "private",
    "token": "consent-record-8812",
    "represented_at": "…"
  },
  "outputs": {
    "manifest": {
      "release": "first@1",
      "version": "81c9964b6a545c8f"
    },
    "signals": {
      "answer-first": {
        "band": "hi1",
        "place": 93
      },
      "answer-speed": {
        "band": "hi1",
        "place": 95
      },
      "hand-talk": {
        "band": "hi2",
        "place": 84
      }
    },
    "reports": {
      "99": {
        "lang": "en",
        "blocks": [
          {
            "module": {
              "name": "header",
              "version": "ccc467750d2d5e52"
            },
            "seconds": 540,
            "title": "Your profile",
            "type": "header",
            "unit": {
              "name": "header",
              "version": "5c406cf2bd63ad61"
            }
          },
          {
            "families": [
              {
                "family": "timing",
                "name": "Timing and rhythm",
                "traits": [
                  {
                    "band": "hi1",
                    "ends": {
                      "hi": "answers fast",
                      "lo": "takes time to answer"
                    },
                    "name": "answer speed",
                    "place": 95,
                    "sure": 0.9,
                    "text": "answers faster than 9 in 10 people",
                    "trait": "answer-speed"
                  }
                ]
              },
              {
                "family": "words",
                "name": "Words",
                "traits": [
                  {
                    "band": "hi1",
                    "ends": {
                      "hi": "gives the answer before the reason",
                      "lo": "gives the reason before the answer"
                    },
                    "name": "answer first",
                    "place": 93,
                    "sure": 0.8,
                    "text": "gives the answer before the reason more often than 9 in 10 people",
                    "trait": "answer-first"
                  }
                ]
              },
              {
                "family": "body",
                "name": "Body and energy",
                "traits": [
                  {
                    "band": "hi2",
                    "ends": {
                      "hi": "talks with the hands",
                      "lo": "keeps the hands still"
                    },
                    "name": "hand talk",
                    "place": 84,
                    "sure": 0.8,
                    "text": "talks with their hands more than 8 in 10 people",
                    "trait": "hand-talk"
                  }
                ]
              }
            ],
            "module": {
              "name": "traits",
              "version": "c605769b6635e3ca"
            },
            "type": "traits",
            "unit": {
              "name": "traits",
              "version": "3bbb43ec19e33dd1"
            }
          }
        ]
      }
    }
  },
  "expires_at": "…"
}

An example, shortened: a made-up person, their signals, and part of their profile. What each signal’s low and high mean is in the docs.

Consent and the rules

Send only video of people who agreed to be measured. Each request carries a reference to your own record of that person’s consent, and the response returns it.

Using a key means you accept the API terms. Do not use it to watch or track people. A key that breaks the terms is turned off.

We delete the video once the result is ready. The result stays readable for 30 days, or until you delete it. Your video is never used to train our models.

Versions

Every result names the release that made it, with one version of everything behind it, in its manifest. A request can name the release it wants: there is one for now, first@1.

The price

The API comes with Pro: $199 a month with 10 sessions included, then from $15 down to $6 a session. Every output is included. A session is one video of one person, up to an hour.

Start Pro and get a key