Platform Keys
Platform keys are for multi-tenant platforms (ATS, HRIS, recruitment tools) that integrate Boooply on behalf of their customers. If you’re integrating Boooply for your own company, use an organization key instead.
How it works
- You get a platform key from Boooply (
bply_platform_xxxxxxxxxxxxx) - Customer clicks “Connect Boooply” in your product
- Your backend calls
createOrganizationApiKey()— Boooply creates an org and returns a key - You store the org key in your database, associated with that customer
- All API calls for that customer use their org key — interviews, evaluations, transcripts, etc.
The customer never sees or manages any keys. The entire flow is seamless from their perspective.
BoooplyClient.createOrganizationApiKey(config, data)
Creates an organization-specific API key. Call this once per customer when they connect Boooply in your platform.
const { BoooplyClient } = require('@boooply/ai-interviews-sdk');
// Called when a customer clicks "Connect Boooply" in your platform
const result = await BoooplyClient.createOrganizationApiKey(
{
baseUrl: 'https://api.meetings.boooply.com',
platformKey: process.env.BOOOPLY_PLATFORM_KEY,
},
{
userId: '12345',
userEmail: 'admin@acme.com',
userName: 'Jane Admin',
organizationId: 'org_7234567890', // your platform's org ID
organizationName: 'Acme Corporation',
teamMembers: [ // optional — import team
{ email: 'bob@acme.com', name: 'Bob', role: 'ADMIN' },
{ email: 'carol@acme.com', name: 'Carol', role: 'MEMBER' },
],
}
);
// Store this key — use it for all API calls on behalf of this customer
const orgApiKey = result.apiKey; // 'bply_org_xxxxx'
await db.saveBoooplyKey(customerId, orgApiKey);Config parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
baseUrl | string | Yes | Boooply API URL |
platformKey | string | Yes | Your platform master key (bply_platform_...) |
Data parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | User ID from your platform |
userEmail | string | Yes | User email |
userName | string | No | User name |
organizationId | string | Yes | Your platform’s org ID |
organizationName | string | No | Organization name |
teamMembers | Array | No | Team members to import ([{ email, name, role }]) |
Security: Only call this from your server. The platform key grants elevated privileges — it can create organizations and API keys. Never expose it in client-side code.
Using the org key
After provisioning, create a BoooplyClient instance with the customer’s org key:
// For each customer, use their stored org key
const client = new BoooplyClient({
apiKey: customer.boooplyApiKey, // the key you stored from createOrganizationApiKey()
baseUrl: 'https://api.meetings.boooply.com',
});
// Now all operations are scoped to that customer's organization
const interview = await client.interviews.create({
type: 'ai',
jobRole: 'Frontend Engineer',
candidate: { name: 'Jane', email: 'jane@example.com' },
});Full integration example
// routes/integrations.js — your platform's backend
const { BoooplyClient } = require('@boooply/ai-interviews-sdk');
// 1. Customer connects Boooply
app.post('/api/connect-boooply', async (req, res) => {
const customer = await getCustomer(req.user.orgId);
const result = await BoooplyClient.createOrganizationApiKey(
{
baseUrl: 'https://api.meetings.boooply.com',
platformKey: process.env.BOOOPLY_PLATFORM_KEY,
},
{
userId: req.user.id,
userEmail: req.user.email,
userName: req.user.name,
organizationId: customer.id,
organizationName: customer.name,
}
);
await db.update('customers', customer.id, { boooplyApiKey: result.apiKey });
res.json({ success: true, message: 'Boooply connected' });
});
// 2. Create interview on behalf of customer
app.post('/api/interviews', async (req, res) => {
const customer = await getCustomer(req.user.orgId);
const client = new BoooplyClient({
apiKey: customer.boooplyApiKey,
baseUrl: 'https://api.meetings.boooply.com',
});
const interview = await client.interviews.create({
type: 'ai',
jobRole: req.body.jobRole,
candidate: req.body.candidate,
skills: req.body.skills,
});
res.json(interview);
});When to use platform keys vs org keys
| Organization Key | Platform Key | |
|---|---|---|
| Who | Single company integrating Boooply | Platform serving multiple companies |
| Key management | User copies key from Boooply dashboard | Your backend auto-provisions keys |
| User experience | User pastes API key in your settings | User clicks “Connect” — no keys visible |
| Key format | bply_org_... | bply_platform_... (master) → creates bply_org_... per customer |
| Where key lives | Customer’s .env or settings | Your platform’s .env (master) + database (per-customer org keys) |
| Example | A company builds their own Boooply integration | An ATS like TalentFlow offers Boooply to all its customers |
Last updated on