Provenix Developer Guide
Add cryptographic provenance to your AI-generated content in under 5 minutes.
Quick Start
1. Install the SDK
npm install @provenix/sdk2. Sign Your Content
import { ProvenixClient } from '@provenix/sdk'
const client = new ProvenixClient({
apiKey: 'prov_live_...',
baseUrl: 'https://provenixapi-production.up.railway.app'
})
// Sign text
const result = await client.sign('Your AI-generated content here', {
model: 'gpt-5.2',
userId: 'user_123'
})
console.log(result.manifestId)
console.log(result.verificationUrl)3. Embed the Widget
<!-- Add widget script -->
<script src="https://unpkg.com/@provenix/widget@latest/dist/provenix-widget.js"></script>
<!-- Display verification badge -->
<provenix-widget
manifest='{"hash":"...","timestamp":"...","signature":"..."}'>
</provenix-widget>Authentication
All API requests (except public manifest lookup) require an API key in the Authorization header:
Authorization: Bearer prov_live_your_key_hereAPI keys start with prov_live_ for production or prov_test_ for testing.
POST /api/v1/sign
Generate a cryptographic signature for text.
Headers
Authorization: Bearer prov_live_... Content-Type: application/json
Request Body
{
"text": "Your content here",
"metadata": {
"model": "gpt-5.2",
"userId": "user_123"
}
}Response
{
"manifestId": "a1b2c3d4-...",
"hash": "sha256:9d3c...",
"signature": "ed25519:ab390f...",
"verificationUrl": "https://provenix.dev/verify/a1b2c3d4-..."
}POST /api/v1/verify
Verify a signed manifest.
Request Body
{
"text": "Your content here",
"signature": "ed25519:ab390f...",
"manifest": { ... }
}Response
{
"valid": true,
"hashMatch": true,
"signatureValid": true,
"timestamp": "2025-01-23T12:40:12.581Z"
}GET /api/v1/manifests/:id
Fetch a signed manifest for public verification (no auth required).
Example
GET https://provenixapi-production.up.railway.app/api/v1/manifests/a1b2c3d4-...
Error Codes
All errors follow consistent JSON structure with HTTP status codes and descriptive messages.
Error Response Format
{
"error": {
"code": "INVALID_API_KEY",
"message": "The API key provided is invalid or expired",
"statusCode": 401
}
}Common Error Codes
| Code | Status | Description |
|---|---|---|
INVALID_API_KEY | 401 | API key is missing, invalid, or expired |
MISSING_CONTENT | 400 | Request body missing required 'text' field |
CONTENT_TOO_LARGE | 413 | Content exceeds maximum size limit (10MB) |
RATE_LIMIT_EXCEEDED | 429 | Monthly request quota exceeded for your plan |
INVALID_SIGNATURE | 400 | Signature format is invalid or malformed |
MANIFEST_NOT_FOUND | 404 | Manifest ID does not exist or has been deleted |
VERIFICATION_FAILED | 422 | Content hash or signature verification failed |
INTERNAL_ERROR | 500 | Unexpected server error - please contact support |
Rate Limit Response Headers
All responses include rate limit headers:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1706745600
TypeScript SDK
The Provenix TypeScript SDK provides a type-safe interface for all API operations.
import { ProvenixClient } from '@provenix/sdk'
const provenix = new ProvenixClient({
apiKey: process.env.PROVENIX_API_KEY,
baseUrl: 'https://provenixapi-production.up.railway.app'
})
// Sign content
const result = await provenix.sign(text, {
model: 'gpt-5.2',
userId: 'user_123'
})
// Verify content
const verification = await provenix.verify({
text: originalText,
signature: result.signature,
manifest: result.manifest
})Embed Widget
The Provenix widget is a drop-in web component that displays verification status.
Include the Script
<script src="https://unpkg.com/@provenix/widget@latest/dist/provenix-widget.js"></script>
Add the Widget
<provenix-widget manifest='...'></provenix-widget>
Widget Theme Comparison
Drag the slider to compare how the verification badge appears in light and dark themes:
Dark Theme

Light Theme

💡 Tip: Drag the slider left and right to see the widget in both themes
Rate Limits
Free Tier: 1,000 requests/month
Starter: 8,000 requests/month
Growth: 20,000 requests/month
Pro: 50,000 requests/month
Enterprise: Custom limits
Rate limit errors return 429 Too Many Requests
Need Help?
Questions about integration? Want to discuss your use case?
Email: info@provenix.dev
Demo: Try it live