API Documentation
Everything you need to integrate with the Developers.Contrib API
Getting Started
- 1Create an account
Sign up at developers.contrib.com using email or GitHub OAuth.
- 2Generate an API Key
Go to Account → API Keys and generate a new key. Keep it secure.
- 3Make your first request
Include your API key in the Authorization header as a Bearer token.
Authentication
The API supports two authentication methods:
API Key (Bearer Token)
Include your API key as a Bearer token in the Authorization header. Best for server-to-server integrations.
Session Cookie
Automatically used when accessing the API from a browser session. Used by the dashboard.
Example request with API key:
curl https://developers.contrib.com/api/public/frameworks \ -H "Authorization: Bearer YOUR_API_KEY"
API Reference
| Method | Endpoint |
|---|---|
| GET | /api/public/frameworks |
| GET | /api/public/frameworks/:id |
| GET | /api/public/userinfo |
| GET | /api/public/attributes |
| GET | /api/public/attributes/value |
| GET | /api/public/domains |
| GET | /api/public/validate-key |
| GET | /api/public/user |
| GET | /api/frameworks |
| POST | /api/public/adduser |
| POST | /api/frameworks |
| PUT | /api/frameworks/:id |
| DELETE | /api/frameworks/:id |
Code Examples
const res = await fetch( 'https://developers.contrib.com/api/public/frameworks', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } } ); const { data } = await res.json(); console.log(data);
import requests url = "https://developers.contrib.com/api/public/frameworks" headers = {"Authorization": "Bearer YOUR_API_KEY"} response = requests.get(url, headers=headers) data = response.json() print(data["data"])
curl -X GET \ https://developers.contrib.com/api/public/frameworks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"
const axios = require('axios'); const { data } = await axios.get( 'https://developers.contrib.com/api/public/frameworks', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } } ); console.log(data);
Response Format
All API responses follow a consistent JSON structure. Paginated endpoints include metadata for navigating results.
{ "data": [ { "id": 1, "name": "My Framework", "status": "approved" } ], "total": 100, "page": 1, "limit": 10, "totalPages": 10 }
{ "error": "Unauthorized", "message": "Invalid or missing API key", "status": 401 }
Rate Limiting
Rate Limit Policy
To ensure fair usage and maintain service stability, the API enforces the following rate limits:
Rate limit headers (X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response. If you exceed the limit, you will receive a 429 Too Many Requests response.