Skip to main content

API Reference

All API endpoints are Vercel serverless functions located in the api/ directory. They follow RESTful conventions and use JSON for request/response bodies.

Base URL

Production: https://kinetic.email/api
Local: http://localhost:5173/api

Authentication

Most endpoints require a Supabase JWT in the Authorization header:

Authorization: Bearer <supabase-jwt>

See Authentication for details on obtaining and using tokens.

Common Response Patterns

Success

{
"success": true,
"data": { ... }
}

Error

{
"error": "Human-readable error message"
}

HTTP Status Codes

CodeMeaning
200Success
400Bad request (missing/invalid parameters)
401Unauthorized (missing or invalid JWT)
402Payment required (insufficient tokens)
403Forbidden (admin access required)
405Method not allowed
500Internal server error

Endpoint Summary

Public Endpoints

EndpointMethodAuthDescription
/api/track-pixelGETNoneTracking pixel for email opens/interactions
/api/blog-ogGETNoneDynamic Open Graph image generation

User Endpoints

EndpointMethodAuthTokensDescription
/api/generatePOSTUserai_generationAI email generation (RAG pipeline)
/api/generate-emailPOSTUserai_generationSimple AI email generation
/api/send-emailPOSTUseremail_sendSend email via Resend
/api/send-email-sesPOSTUseremail_sendSend email via AWS SES
/api/validate-ampPOSTUserValidate AMP4Email HTML
/api/resend-statusGETUserCheck email delivery status

Admin Endpoints

EndpointMethodAuthDescription
/api/admin/submit-contentPOSTAdminUpload content to RAG
/api/admin/update-contentPOSTAdminUpdate RAG content
/api/admin/delete-contentPOSTAdminDelete from RAG
/api/admin/list-contentGETAdminBrowse RAG library
/api/admin/rag-statsGETAdminRAG database statistics
/api/admin/auto-tagPOSTAdminAI content auto-tagging
/api/admin/run-evaluationPOSTAdminRun QA evaluation
/api/admin/submit-evaluationPOSTAdminSave evaluation results
/api/admin/list-evaluationsGETAdminList past evaluations
/api/admin/submit-feedbackPOSTAdminSubmit user feedback

CORS

API endpoints are restricted to the following origins:

https://kinetic.email
https://www.kinetic.email
http://localhost:5173
http://localhost:3000