School API Documentation
Discover every student’s hidden talents with our simple 3-step API integration. Transform homework into insights in just 90 seconds.
Get Your School API Key
Contact our education team to receive your secure API key
sk_school_yourschool_abc123...Test Your Connection
Verify your school is connected and ready
curl -H "Authorization: Bearer YOUR_KEY" \
https://www.talents.kids/api/school/v1/healthAnalyze Student Work
Upload any student work and get insights in 90 seconds
Why Schools Choose Our API
Interactive API Explorer
Test API endpoints live with Swagger UI. Authenticate once and explore all features.
Open Swagger UIAuto-Generate SDKs
Generate client libraries in Python, JavaScript, PHP, Java, or any language.
Download OpenAPI SpecPro Tip for Developers
Auto-Selected Analysis
plain_text_files, we automatically use the reading_analysis preset to analyze for writing ability, creativity, critical thinking.Generate Materials (PDF)
curl -X POST "https://www.talents.kids/api/school/v1/students/{student_uuid}/materials/generate" -H "Authorization: Bearer sk_school_..." -H "Content-Type: application/json" -d '{
"talentId":"math",
"materialType":"worksheet",
"difficulty":"medium",
"language":"en"
}'Generate Visuals (coloring/worksheet)
curl -X POST "https://www.talents.kids/api/school/v1/students/{student_uuid}/visuals/generate" -H "Authorization: Bearer sk_school_..." -H "Content-Type: application/json" -d '{"type":"coloring","ratio":"1:1","count":1}'Full Talents Report (PDF)
curl -X POST "https://www.talents.kids/api/school/v1/students/{student_uuid}/talents/full-report" -H "Authorization: Bearer sk_school_..."en. Visuals require student’s age; ensure the student record has an age. Materials require a valid grade level; the system derives it from student grade or age if not provided. ADHD insights apply only to Analyze.javascript Integration
// Step 1: Initialize API client
const API_KEY = 'sk_school_yourschool_abc123...';
const BASE_URL = 'https://www.talents.kids/api/school/v1';
// Step 2: Analyze student work
async function analyzeStudentWork(studentId, age, filePath) {
// Read and encode file
const fs = require('fs');
const content = fs.readFileSync(filePath);
const base64 = content.toString('base64');
// Submit analysis
const response = await fetch(`${BASE_URL}/analyze`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
student_id: studentId,
student_age: age,
document_type: 'plain_text_files', // Auto-selects best AI preset
media: [{
file: base64,
filename: 'essay.txt',
mime_type: 'text/plain'
}]
})
});
const result = await response.json();
console.log(`Analysis started: ${result.id}`);
return result.id;
}
// Step 3: Get results when ready
async function getResults(analysisId) {
const response = await fetch(`${BASE_URL}/analyses/${analysisId}/result`, {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});
const results = await response.json();
console.log('Top talents:', results.analysis_result.keyTalents);
return results;
}
// Example usage
analyzeStudentWork('student_001', 12, 'student_essay.txt')
.then(id => setTimeout(() => getResults(id), 90000)); // Check after 90 secondsEmail Support
Response within 2 hours during school days