API Documentation - IrsikSoftware

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:

HTTP Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Note: To obtain an API key, contact our support team or visit your account dashboard.

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

GET /users

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

JSON
{
  "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
  }
}
POST /users

Create a new user

Request Body

JSON
{
  "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"
}
GET /users/{id}

Retrieve a specific user by ID

Path Parameters

Parameter Type Description
id string User ID
PUT /users/{id}

Update a user

Request Body

{
  "name": "Jane Doe",
  "role": "admin"
}
DELETE /users/{id}

Delete a user

Projects

GET /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

JSON
{
  "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
  }
}
POST /projects

Create a new project

Request Body

{
  "name": "Mobile App Development",
  "description": "iOS and Android app",
  "owner_id": "usr_1234567890",
  "status": "active"
}

Analytics

GET /analytics/metrics

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

JavaScript
// 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

JSON
{
  "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:

JavaScript
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
View on GitHub

Python

Comprehensive Python SDK with async support

pip install irsik-api
View on GitHub

Go

Idiomatic Go client for IrsikSoftware APIs

go get github.com/irsik/api-client-go
View on GitHub

Ruby

Ruby gem for seamless API integration

gem install irsik-api
View on GitHub

Support & Resources

API Status

Check real-time API status and incident reports

status.irsik.software

Community Forum

Connect with other developers and get help

community.irsik.software

API Support

Contact our API support team

Contact Support

Changelog

Stay updated with API changes and new features

changelog.irsik.software

Subscribe to Our Newsletter