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.
- Sign a token with your private key, and check it works before anything depends on it.
- Create a meeting and invite people to it.
- Get one person in by minting their join link.
- Put the room in your page, or send them the meeting's own entry link.
- Be told what happened by subscribing a webhook endpoint.
- 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.