API Documentation

Everything you need to integrate with the Developers.Contrib API

Getting Started

  1. 1
    Create an account

    Sign up at developers.contrib.com using email or GitHub OAuth.

  2. 2
    Generate an API Key

    Go to Account → API Keys and generate a new key. Keep it secure.

  3. 3
    Make 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

MethodEndpoint
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

JavaScript / Fetch
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);
Python / requests
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
curl -X GET \
  https://developers.contrib.com/api/public/frameworks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
Node.js / axios
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.

JSON Response
{
  "data": [
    {
      "id": 1,
      "name": "My Framework",
      "status": "approved"
    }
  ],
  "total": 100,
  "page": 1,
  "limit": 10,
  "totalPages": 10
}
Error Response
{
  "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:

Authenticated100 requests per minute per API key
Unauthenticated20 requests per minute per IP address

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.