API Reference
This documentation provides details about the OpenImpactLab API, allowing you to integrate with our platform and access its functionality programmatically.
Getting Started with the API
Our API uses REST principles and returns responses in JSON format. Base URL for all API endpoints is:
https://api.openimpactlab.org/v1
All API requests must include authentication headers and use HTTPS.
Authentication
The API uses OAuth 2.0 for authentication. To access the API, you need to:
- Register your application in the OpenImpactLab developer portal
- Obtain your API key and secret
- Use these credentials to request an access token
- Include the access token in the Authorization header of each request
Example authentication request:
POST /oauth/token
Content-Type: application/json
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"grant_type": "client_credentials"
}
Resources
API Endpoints
Explore our specialized API endpoints with detailed documentation:
Code Evaluation API
Analyze and evaluate GitHub repository code against specific project requirements and tasks.
Video Evaluation API
Analyze and evaluate project demonstration videos from YouTube against project criteria.
Projects
Endpoints for managing projects:
GET /projects
- List all projectsGET /projects/{projectId}
- Get a specific projectPOST /projects
- Create a new projectPUT /projects/{projectId}
- Update a projectDELETE /projects/{projectId}
- Delete a project
Users
Endpoints for user management:
GET /users
- List all usersGET /users/{userId}
- Get a specific userPOST /users
- Create a new userPUT /users/{userId}
- Update a user
Organizations
Endpoints for organization management:
GET /organizations
- List all organizationsGET /organizations/{orgId}
- Get a specific organizationPOST /organizations
- Create a new organizationPUT /organizations/{orgId}
- Update an organization
Request and Response Format
All API requests should include the following headers:
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
Response codes follow standard HTTP status codes:
200 OK
- The request was successful201 Created
- A new resource was successfully created400 Bad Request
- The request was invalid401 Unauthorized
- Authentication failed403 Forbidden
- You don't have permission to access the resource404 Not Found
- The resource was not found500 Internal Server Error
- Something went wrong on the server
Rate Limiting
To ensure service stability, API requests are rate limited to 100 requests per minute per API key. If you exceed this limit, you'll receive a 429 Too Many Requests response.
The response headers include:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 1619203200
Webhooks
OpenImpactLab also provides webhooks for real-time notifications about events on the platform:
- Project created or updated
- New application submitted
- Status changes
- Messages and comments
To set up a webhook, register your endpoint URL in the developer portal.
SDK and Libraries
We provide official client libraries to simplify API integration:
- JavaScript:
npm install openimpactlab-js
- Python:
pip install openimpactlab-python
- Ruby:
gem install openimpactlab-ruby
These libraries handle authentication, request formatting, and response parsing for you.