Quick Start
Quick Start
Section titled “Quick Start”Get your first identity check working in under 5 minutes.
Prerequisites
Section titled “Prerequisites”- An LMIF API key (get one here)
- A platform that creates AI avatars or uses likeness
-
Get your API key
Sign up at lookmaimfamous.com/developers to get your API key. You’ll receive:
- A sandbox key (
lmif_test_xxx) for development - A production key (
lmif_live_xxx) when approved
- A sandbox key (
-
Install the SDK (optional)
Terminal window npm install @lookmaimfamous/lmifTerminal window yarn add @lookmaimfamous/lmifTerminal window pnpm add @lookmaimfamous/lmif -
Make your first identity check
Before allowing a user to create an avatar, check if the identity is protected:
import { LMIFClient } from '@lookmaimfamous/lmif';const lmif = new LMIFClient({apiKey: process.env.LMIF_API_KEY,});async function checkBeforeCreating(name: string, imageUrl: string) {const result = await lmif.identity.check({name,imageUrl,});if (result.isBoxed) {// Identity is protected - check policyif (result.policy === 'BLOCK_ALL') {throw new Error('This identity cannot be used for AI avatars');}if (result.policy === 'LICENSE') {// Redirect to licensing flowreturn { requiresLicense: true, boxId: result.boxId };}if (result.policy === 'MONETIZE') {// Proceed but track for revenue sharereturn { proceed: true, royaltyRate: result.royaltyRate };}}// Identity is not protected - proceedreturn { proceed: true };}Terminal window curl -X POST https://api.lookmaimfamous.com/v1/lmif/identity/check \-H "Authorization: Bearer lmif_test_xxx" \-H "Content-Type: application/json" \-d '{"name": "Taylor Swift","imageUrl": "https://example.com/avatar.jpg"}'const response = await fetch('https://api.lookmaimfamous.com/v1/lmif/identity/check',{method: 'POST',headers: {'Authorization': `Bearer ${process.env.LMIF_API_KEY}`,'Content-Type': 'application/json',},body: JSON.stringify({name: 'Taylor Swift',imageUrl: 'https://example.com/avatar.jpg',}),});const result = await response.json(); -
Handle the response
The identity check returns:
{"isBoxed": true,"boxId": "box_abc123","policy": "MONETIZE","claimId": "claim_xyz789","entityType": "INDIVIDUAL","verificationTier": "GOLD","royaltyRate": 0.10,"confidence": 0.95}Field Description isBoxedWhether this identity is protected boxIdUnique identifier for the box (if protected) policyProtection policy: BLOCK_ALL,BLOCK_COMMERCIAL,MONETIZE,LICENSE,TEAM,OPENclaimIdThe claim that owns this box entityTypeINDIVIDUAL,ESTATE,CORPORATION, orAGENCYverificationTierGOLD,SILVER, orBRONZEroyaltyRateRevenue share percentage (for MONETIZE policy) confidenceDetection confidence score (0-1) -
Set up webhooks (recommended)
Register a webhook to receive real-time updates when identities get boxed:
// Your webhook endpointapp.post('/webhooks/lmif', async (req, res) => {const signature = req.headers['x-lmif-signature'];// Verify the webhook signatureif (!lmif.webhooks.verify(req.body, signature, process.env.LMIF_WEBHOOK_SECRET)) {return res.status(401).send('Invalid signature');}const event = req.body;switch (event.type) {case 'box.created':// A new identity was boxed - check your existing avatarsawait handleNewBox(event.data);break;case 'grace_period.started':// You have 30 days to complyawait notifyAffectedUsers(event.data);break;case 'grace_period.ending':// Final warning - 2 days leftawait sendUrgentNotification(event.data);break;}res.status(200).send('OK');});
What’s Next?
Section titled “What’s Next?”- Authentication - Learn about API keys and security
- Environments - Understand sandbox vs production
- Identity Check API - Full API reference
- Webhooks - Real-time event notifications