REST API
The QuizNap REST API lets you programmatically create quizzes, manage sessions, and retrieve responses.
/v1/public/apps/:slug Get a public quiz by slug /v1/apps/:appId/sessions Start a new quiz session /v1/apps/:appId/sessions/:id/next Submit answer and get next question /v1/apps/:appId/sessions/:id/complete Complete a quiz session /v1/apps/:appId/sessions/:id/identity Set respondent identity /v1/apps/:appId/sessions/:id Get session details and answers @quiznap/js-sdk
Zero-dependency vanilla JavaScript SDK for interacting with the QuizNap API.
import { QuizNapClient } from '@quiznap/js-sdk';
const client = new QuizNapClient({
baseUrl: 'https://app.quiznap.com/v1',
});
// Get quiz info
const app = await client.apps.getBySlug('my-quiz');
// Start session
const session = await client.sessions.create(app.id);
// Submit answers
await client.sessions.submitNext(app.id, session.id, {
questionId: 'q1',
value: 'Answer text',
});
// Complete
await client.sessions.complete(app.id, session.id); @quiznap/embed
Lightweight embed script for adding quizzes to any website via iframe with auto-resize and event handling.
import { QuizNapEmbed } from '@quiznap/embed';
const quiz = QuizNapEmbed.init({
slug: 'my-quiz',
container: '#quiz-container',
onReady: () => console.log('Quiz loaded'),
onComplete: (data) => {
console.log('Completed!', data.sessionId);
},
onResize: (data) => {
console.log('Height:', data.height);
},
});
// Later: quiz.destroy(); @quiznap/react
React hooks for headless quiz integration. Full control over UI with useSession, useQuizNap, and useQuizEvents.
import { QuizNapProvider } from '@quiznap/react';
import { useSession } from '@quiznap/react';
function App() {
return (
<QuizNapProvider baseUrl="https://app.quiznap.com">
<MyQuiz />
</QuizNapProvider>
);
}
function MyQuiz() {
const {
status, currentQuestion, progress,
submitAnswer, complete, start,
} = useSession('my-quiz', { autoStart: true });
if (status === 'loading') return <p>Loading...</p>;
// Render your own UI with full quiz data
} @quiznap/react-ui
Pre-built React components: Quiz, QuizModal, and QuizPopup. Drop-in components with theme support.
import { QuizNapProvider } from '@quiznap/react';
import { Quiz, QuizModal } from '@quiznap/react-ui';
function App() {
return (
<QuizNapProvider baseUrl="https://app.quiznap.com">
{/* Inline quiz */}
<Quiz slug="my-quiz" onComplete={handleComplete} />
{/* Modal quiz */}
<QuizModal
slug="feedback-form"
open={isOpen}
onClose={() => setIsOpen(false)}
/>
</QuizNapProvider>
);
} Need Help Integrating?
Our team is here to help you get set up. Reach out for integration support or feature requests.
Contact Developer Support