API Documentation Portal
Welcome to the IrsikSoftware API Documentation Portal. Our comprehensive APIs enable you to integrate our enterprise solutions into your applications. This portal provides detailed documentation, interactive examples, and code samples for all available endpoints.
Getting Started
Authentication
All API requests require authentication using API keys. Include your API key in the request header:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Base URL
All API endpoints are relative to the base URL:
https://api.irsik.software/v1
Rate Limiting
API requests are rate-limited to ensure service quality:
- Standard tier: 1,000 requests per hour
- Professional tier: 10,000 requests per hour
- Enterprise tier: Custom limits available
Rate limit headers are included in all responses:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1699564800
API Reference
User Management
Retrieve a list of users
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
page |
integer | No | Page number for pagination (default: 1) |
limit |
integer | No | Items per page (default: 20, max: 100) |
search |
string | No | Search users by name or email |
Response Example
{
"data": [
{
"id": "usr_1234567890",
"email": "user@example.com",
"name": "John Doe",
"role": "developer",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-20T14:45:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}
Create a new user
Request Body
{
"email": "newuser@example.com",
"name": "Jane Smith",
"role": "developer",
"password": "SecureP@ssw0rd"
}
Response Example
{
"id": "usr_0987654321",
"email": "newuser@example.com",
"name": "Jane Smith",
"role": "developer",
"created_at": "2025-10-11T09:00:00Z"
}
Retrieve a specific user by ID
Path Parameters
Parameter | Type | Description |
---|---|---|
id |
string | User ID |
Update a user
Request Body
{
"name": "Jane Doe",
"role": "admin"
}
Delete a user
Projects
Retrieve all projects
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
status |
string | No | Filter by status (active, completed, archived) |
owner_id |
string | No | Filter by project owner |
Response Example
{
"data": [
{
"id": "prj_abc123",
"name": "E-Commerce Platform",
"description": "Modern e-commerce solution",
"status": "active",
"owner_id": "usr_1234567890",
"created_at": "2025-08-01T00:00:00Z",
"updated_at": "2025-10-10T18:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 45
}
}
Create a new project
Request Body
{
"name": "Mobile App Development",
"description": "iOS and Android app",
"owner_id": "usr_1234567890",
"status": "active"
}
Analytics
Retrieve analytics metrics
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
start_date |
string | Yes | Start date (ISO 8601 format) |
end_date |
string | Yes | End date (ISO 8601 format) |
metric |
string | No | Specific metric (users, requests, errors) |
Response Example
{
"metrics": {
"total_requests": 125000,
"total_users": 3420,
"error_rate": 0.02,
"avg_response_time": 145
},
"period": {
"start": "2025-10-01T00:00:00Z",
"end": "2025-10-11T23:59:59Z"
}
}
Code Samples
JavaScript Example
// Initialize the API client
const IrsikAPI = require('@irsik/api-client');
const client = new IrsikAPI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://api.irsik.software/v1'
});
// Fetch users with pagination
async function getUsers() {
try {
const response = await client.users.list({
page: 1,
limit: 20,
search: 'john'
});
console.log('Users:', response.data);
console.log('Total:', response.pagination.total);
} catch (error) {
console.error('Error:', error.message);
}
}
// Create a new user
async function createUser() {
try {
const newUser = await client.users.create({
email: 'developer@example.com',
name: 'New Developer',
role: 'developer'
});
console.log('Created user:', newUser.id);
} catch (error) {
console.error('Error:', error.message);
}
}
getUsers();
createUser();
Webhooks
Overview
Webhooks allow you to receive real-time notifications when specific events occur in your account. Configure webhook endpoints to listen for events such as user creation, project updates, or system alerts.
Event Types
Event | Description |
---|---|
user.created |
Triggered when a new user is created |
user.updated |
Triggered when a user is updated |
user.deleted |
Triggered when a user is deleted |
project.created |
Triggered when a new project is created |
project.updated |
Triggered when a project is updated |
project.completed |
Triggered when a project is marked as completed |
Webhook Payload Example
{
"event": "user.created",
"timestamp": "2025-10-11T12:00:00Z",
"id": "evt_1234567890",
"data": {
"id": "usr_0987654321",
"email": "newuser@example.com",
"name": "Jane Smith",
"role": "developer",
"created_at": "2025-10-11T12:00:00Z"
}
}
Webhook Security
All webhook requests include a signature in the X-Webhook-Signature
header. Verify this signature to ensure the request is from IrsikSoftware:
const crypto = require('crypto');
function verifyWebhookSignature(payload, signature, secret) {
const hmac = crypto.createHmac('sha256', secret);
const digest = hmac.update(payload).digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(digest)
);
}
Official SDKs
JavaScript/TypeScript
Full-featured SDK for Node.js and browser environments
npm install @irsik/api-client