API Documentation
The nepper.io API returns an Authenticity Report for one or more images: a 0-100 fake score, a verdict, and weighted labels with a transparent per-detector breakdown.
Authentication
Every request to the API needs your secret key in the Authorization header. Create and rotate your key in the dashboard. Keys are shown once - store them securely and never expose them in client-side code.
curl -X POST https://nepper.io/api/v1/analyze \
-H "Authorization: Bearer nk_live_xxxxxxxxxxxx" \
-H "content-type: application/json" \
-d '{ "images": ["https://example.com/a.jpg"] }'Endpoint
POST/api/v1/analyze
Accepts up to 10 images, 10MB each. Send application/json or multipart/form-data.
Request
JSON (URLs or base64)
curl -X POST https://nepper.io/api/v1/analyze \
-H "Authorization: Bearer nk_live_xxxxxxxxxxxx" \
-H "content-type: application/json" \
-d '{
"images": [
"https://example.com/a.jpg",
"data:image/png;base64,iVBOR..."
]
}'Multipart upload
Use the files field (repeatable). You can mix in images URL fields too.
curl -X POST https://nepper.io/api/v1/analyze \ -H "Authorization: Bearer nk_live_xxxxxxxxxxxx" \ -F "files=@./photo1.jpg" \ -F "files=@./photo2.png" \ -F "images=https://example.com/a.jpg"
Response
{
"reports": [
{
"source": "https://example.com/a.jpg",
"fakeScore": 72,
"verdict": "likely_fake",
"labels": [
{ "label": "ai_generated", "confidence": 0.9, "method": "metadata" }
],
"signals": [
{ "detector": "metadata", "score": 0.9, "reason": "...", "labels": [] }
],
"image": {
"width": 1024, "height": 1024, "format": "png", "bytes": 12345,
"hasExif": false, "hasXmp": false, "hasIcc": false, "hasC2pa": false
}
}
],
"summary": { "count": 1, "flagged": 1, "errored": 0 }
}Verdicts
| Verdict | Fake score |
|---|---|
| likely_real | 0 - 39 |
| suspicious | 40 - 64 |
| likely_fake | 65 - 100 |
Labels
| Label | Meaning |
|---|---|
| ai_generated | AI generated - Synthetic image likely produced by a generative model. |
| deepfake | Deepfake - Face appears manipulated or swapped. |
| influencer | Influencer - Reused image of a public figure / celebrity. |
| stock_photo | Stock photo - Stock or catalog photography rather than a personal photo. |
| reused_image | Reused image - Image appears elsewhere online (reverse image search hit). |
| scam_profile | Scam profile - Matches a known scam-image database. |
| authentic | Authentic - No strong fake signals detected. |
Rate limits
The API is rate limited per key. If you exceed it you'll receive a 429 with a Retry-After header.
| Plan | Requests / min | Images / request |
|---|---|---|
| Free | 60 | 1 |
| Pro (batch) | 60 | 50 |
| Public demo | 8 | 3 |
Free processes one image per request; Pro batches up to 50. Need higher limits? See pricing.