Getting Started
Everything you need to integrate with the Artsays Artwork Verification API.
Get Your API Key
Request an API key from your Settings page. After admin approval, you'll receive either a sandbox or production key.
sk_sandbox_ab3f...c8d2Returns mock/test data. Safe for development.
sk_prod_7e9a...f1b3Hits real data. Use only in production apps.
Authenticate Your Requests
Include your API key in every request using one of these methods:
curl -H "x-api-key: sk_prod_your_key" https://ai.artsays.in/api/v1/verifycurl "https://ai.artsays.in/api/v1/verify?api_key=sk_prod_your_key"Base URL
https://ai.artsays.in/api/Make Your First API Call
cURL Example
curl -X GET "https://ai.artsays.in/api/v1/verify" \ -H "x-api-key: sk_prod_your_key_here"
Postman Setup
- 1Create a new GET request to
https://ai.artsays.in/api/v1/verify - 2Go to Headers tab and add
x-api-keywith your key value - 3Click Send and verify you receive a JSON response with
success: true
Understand the Response
Success (200)
{
"success": true,
"data": { ... }
}Error (4xx)
{
"success": false,
"error": "Invalid API key."
}Sandbox note: Sandbox responses include extra fields: "test": true and "environment": "sandbox"
Common Mistakes
| Problem | Cause | Fix |
|---|---|---|
| Missing API Key (401) | No x-api-key header or query param | Add your key to every request |
| Invalid API Key (401) | Key is wrong, rotated, or revoked | Check key in Settings; request new key if needed |
| Endpoint Not Allowed (403) | Key not authorized for this endpoint | Contact admin to update allowed endpoints |
| Rate Limit (429) | Exceeded 60 req/min (or custom limit) | Slow down requests; check Retry-After header |
| Sandbox returns test data | Using sk_sandbox_ key | Switch to sk_prod_ key for real data |
API Scopes
Public Endpoints
No authentication required
API Key Endpoints
Requires x-api-key header
JWT Authenticated Endpoints
Requires Bearer token from login
Rate Limiting
Default: 60 requests/minute per API key (sliding window). Exceeding returns 429 with a Retry-After header. Limits are configurable per client by admin.
All Endpoints
| Method | Path | Scope |
|---|---|---|
| POST | /api/v1/verify | API Key |
| GET | /api/v1/verify | API Key |
| POST | /api/verify-steps | JWT |
| POST | /api/artworks | JWT |
| GET | /api/artworks | JWT |
| GET | /api/artworks/:id | JWT |
| POST | /api/artworks/:id | JWT |
| DELETE | /api/artworks/:id | JWT |
| GET | /api/stats | Public |
| POST | /api/auth/signup | Public |
| POST | /api/auth/login | Public |
| GET | /api/auth/me | JWT |
| GET | /api/profile | JWT |
| PUT | /api/profile | JWT |
| PUT | /api/profile/password | JWT |
| POST | /api/profile/avatar | JWT |
| POST | /api/training | JWT |
| GET | /api/training | JWT |
| POST | /api/training/upload | JWT |
| GET | /api/training/models | JWT |
| GET | /api/training/jobs | JWT |
| POST | /api/training/jobs | JWT |
| GET | /api/admin/api-clients | JWT |
| POST | /api/admin/api-clients | JWT |
| POST | /api/user/request-api-key | JWT |
| GET | /api/user/request-api-key | JWT |