Skip to content

Start here

inTouch runs video meetings, and your application drives them over a plain web API. Your application signs a short-lived JSON Web Token with a private key you generate, and sends it in an Authorization: Bearer header on ordinary HTTPS requests carrying JSON. Any language and any framework can do that: there is no library, no software development kit, and nothing to install.

The worked examples on the other pages are written in one language because a document has to choose one. Nothing on this platform requires that language, or any other.

Addresses on every page are written as https://<host>. Replace the whole prefix — scheme, host and port — with the deployment address you were given, which is the address these pages are served from. Here is one request, four ways — each row is the call itself, with your language's usual imports assumed. It is the call in One call you can make right now below:

Language The call
Shell curl -s https://<host>/v1/integrator/discovery
Python json.load(urllib.request.urlopen("https://<host>/v1/integrator/discovery"))
PHP json_decode(file_get_contents("https://<host>/v1/integrator/discovery"), true)
Java HttpClient.newHttpClient().send(HttpRequest.newBuilder(URI.create("https://<host>/v1/integrator/discovery")).build(), BodyHandlers.ofString()).body()

What your administrator gives you

A workspace administrator — someone at your own company — registers your application in the developer console at https://<host>/app/console, registers the public key you send them, and gives you four values, the last of them only if you want webhooks. That is everything anyone else does for you.

Value What you do with it
Application identifier The iss claim of every token you sign.
Tenant identifier The tenant_id claim of every token you sign.
Key identifier, kid The kid member of your token header, naming which of your public keys signed it.
Webhook signing secret Verifies the deliveries this platform sends you. Only if you want to be told about events rather than asking for them.

You generate the key pair yourself, keep the private half, and send the public half to your administrator. What to ask for, and how, is in Getting your first meeting running.

One call you can make right now

This one needs no credential and no registration. Run it against the address you were given:

curl -s https://<host>/v1/integrator/discovery

It answers with what this deployment expects of a token. Read these values from it rather than writing them into your application. Abridged below — claims, scopes, kyc_scopes and webhooks are left out here, and the response you just fetched carries all four:

{
  "audience": "intouch-integrator-api",
  "algorithm": "RS256",
  "required_claims": ["iss", "aud", "tenant_id", "scopes", "exp"],
  "clock_skew_seconds": 60,
  "max_token_lifetime_seconds": 3600,
  "max_active_keys_per_application": 5,
  "rate_limit_per_minute": 120
}

What an integration does, end to end

Six steps, in order. Each is one section of the guide.

  1. Sign a token with your private key, and check it works before anything depends on it.
  2. Create a meeting and invite people to it.
  3. Get one person in by minting their join link.
  4. Put the room in your page, or send them the meeting's own entry link.
  5. Be told what happened by subscribing a webhook endpoint.
  6. Read back what the meeting produced — its recordings, transcripts and summaries.

Steps 1 to 3 are enough to have somebody in a room. Steps 4 to 6 are each independent of the others.

Where to go next

You want Read
To build the six steps above, in order Getting your first meeting running
The token, its claims, and rotating a key Authenticating your application
The meeting lifecycle in full Running a meeting from your own application
What a refusal means and what to change Error reference

Start with the first row.