- Linguapop needs a paid plan for invitations. You can create an account and preview tests for free, but an active subscription with billing details is required to administer placement tests. Linguapop bills only completed tests.
- The key travels in the request body. Linguapop reads an
apiKeyfield from the JSON body ofinvitations.create, not a header. Corsair adds it for you; it is not an input, and passingapiKeyyourself is rejected. Errors thrown by this plugin never carry the key. - Languages.
languages.listreturns{ name, code }pairs. Pass thecode(for exampleita, andgerfor German) aslanguageCode. More languages are planned, so the plugin does not restrictcodeto today’s five. - No key is sent to
languages.list. A live check showed Linguapop answers it without one, so the plugin does not put the key on a GET. Corsair still needs a saved key to run the call. - Invitations are not undone.
invitations.createis not documented as idempotent and has no cancel call, so it is never retried after a 5xx or a timeout. Check Linguapop before repeating a call that failed that way.externalIdentifieris your own ID for the candidate; it is not a duplicate guard. - The returned
urlis the candidate’s access link. It holds the invitation token, so treat it as a secret. SetsendEmail: falseto hand it to the candidate yourself. - Results. Linguapop reports a finished test by POSTing to the
callbackUrlyou give. That call is unsigned and this plugin does not receive it, and the API has no call to fetch results. - Unverified. The author had no paid account, so the live suite in
api.test.tshas not run againstinvitations.create: the exact response shape follows the docs’ example and is untested against the real API. Onlylanguages.listand the rejection of an unrecognised key were checked live. - Webhooks. None are handled.
- 2 typed API operations
Setup
1
Install
2
Add the plugin
corsair.ts
multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.3
Choose authentication
- API Key (Recommended)
No setup required yet. When you make your first request as a tenant, Corsair prompts for the API key.More: API Key
4
Connect a tenant
Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.
Example API calls
List the languages Linguapop can testWhat’s next
API reference
Every
linguapop.api.* operation with input and output types.Connect / OAuth
createLink, Hub delivery, and tenant connect flows.
Use with agents
Expose this plugin’s operations as MCP tools.