Seishin Docs AI
Discord PortfolioBuildBytGithub
  • Bienvenido
  • Proyectos
    • Nebura Client
      • Modulos
        • Discord Client
          • Economia
          • Sistemas
          • Juegos
            • Sistema de Duelos
            • Sistema de Inventario y Tienda
      • API
        • Seguridad
          • IP Administrador
        • Routes API
        • RateLimit
  • TUTORIALES
    • Discord con TypeScript y Node.js
    • Librerias NPM con Typescript
  • LEGAL
    • Términos y Condiciones
    • Actualizaciones
  • EXTRAS
    • Github
Powered by GitBook
On this page
Edit on GitHub
  1. Proyectos
  2. Nebura Client
  3. API

Routes API

Rutas, peticiones y alertas dentro de la API

PreviousIP AdministradorNextRateLimit

Last updated 1 month ago

Get a task by ID

get

Returns the details of a specific task

Path parameters
idstringRequired

Task ID

Responses
200
Task details
application/json
404
Task not found
500
Server error
application/json
get
GET /api/v1/service/tasks/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
{
  "id": "507f1f77bcf86cd799439011",
  "title": "Reunión mensual",
  "description": "Discutir presupuesto",
  "createdBy": "usuario123",
  "createdAt": "2024-01-20T10:00:00Z",
  "dueDate": "2024-01-25T15:30:00Z",
  "status": "pending",
  "priority": "high",
  "tags": [
    "trabajo",
    "finanzas"
  ],
  "reminder": {
    "enabled": true,
    "timeBefore": "30 minutes",
    "notified": false
  },
  "recurrence": {
    "type": "monthly",
    "interval": 1,
    "endDate": "2024-12-31T23:59:59Z",
    "times": 3
  },
  "autoDelete": "2024-12-31T23:59:59Z",
  "updatedAt": "2024-01-20T10:00:00Z",
  "completedAt": "2025-05-16T00:23:22.920Z"
}

Retrieve Recent Discord Data

get

Fetch recent data from Discord, including the current status, updates, and incidents from the last 24 hours.

Responses
200
Recent Discord data retrieved successfully.
application/json
500
Failed to retrieve recent Discord data.
get
GET /api/v1/public/api/v1/discord/recent HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
{
  "data": {
    "incidents": [
      {
        "title": "Server outage",
        "summary": "A server outage is affecting some users...",
        "link": "https://status.discord.com/incidents/12345",
        "date": "2024-08-30T14:53:44.077Z",
        "type": "incident"
      }
    ],
    "status": {
      "status": "operational",
      "message": "All systems operational",
      "lastUpdated": "2024-08-30T14:53:44.077Z"
    },
    "updates": [
      {
        "title": "New feature announcement",
        "summary": "Discord has introduced a new feature...",
        "link": "https://discord.com/blog/new-feature",
        "date": "2024-08-30T14:53:44.077Z",
        "type": "announcement"
      }
    ]
  },
  "errors": null
}

Retrieve Active Discord Incidents

get

Fetch a list of active incidents reported by Discord. Incidents include service disruptions or outages that are currently unresolved.

Responses
200
Active Discord incidents retrieved successfully.
application/json
500
Failed to retrieve Discord incidents.
get
GET /api/v1/public/api/v1/discord/incidents HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
[
  {
    "title": "Server outage",
    "summary": "A server outage is affecting some users...",
    "link": "https://status.discord.com/incidents/12345",
    "date": "2024-08-30T14:53:44.077Z",
    "type": "incident"
  }
]

Retrieve Recent Discord Updates

get

Fetch a list of recent updates published by Discord. These updates may include announcements, feature releases, or general updates.

Responses
200
Recent Discord updates retrieved successfully.
application/json
500
Failed to retrieve Discord updates.
get
GET /api/v1/public/api/v1/discord/updates HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
[
  {
    "title": "New feature announcement",
    "summary": "Discord has introduced a new feature...",
    "link": "https://discord.com/blog/new-feature",
    "date": "2024-08-30T14:53:44.077Z",
    "type": "announcement"
  }
]

Retrieve Discord Service Status

get

Fetch the current operational status of Discord's services. This endpoint provides real-time information about whether Discord is operational, degraded, or experiencing an outage.

Responses
200
Discord service status retrieved successfully.
application/json
500
Failed to retrieve Discord service status.
get
GET /api/v1/public/api/v1/discord/status HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
{
  "status": "operational",
  "message": "All systems operational",
  "lastUpdated": "2024-08-30T14:53:44.077Z"
}

Get IP address information

get

Retrieve security information about a specific IP address including block status and related activity

Authorizations
Path parameters
ipAddressstring · ipv4Required

IP address to query

Example: 192.168.1.100
Responses
200
Successful operation
application/json
400
Invalid IP address format
401
Unauthorized - Missing or invalid authentication token
403
Forbidden - User doesn't have required permissions
500
Internal server error
get
GET /api/v1/security/ip-info/{ipAddress} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer JWT
Accept: */*
{
  "ipAddress": "192.168.1.100",
  "isBlocked": true,
  "blockedInfo": {
    "ipAddress": "192.168.1.100",
    "reason": "Multiple failed login attempts",
    "blockedAt": "2023-01-15T10:30:00Z",
    "expiresAt": "2023-02-15T10:30:00Z",
    "blockedBy": {
      "id": "5f8d04b3ab35de3a342f3a5d",
      "name": "Admin User",
      "email": "admin@example.com"
    }
  },
  "failedAttempts": 3,
  "licenseUsage": [
    {
      "licenseId": "5f8d04b3ab35de3a342f3a5b",
      "type": "PREMIUM",
      "lastUsedAt": "2023-01-20T14:30:00Z"
    }
  ]
}

Get license information

get

Retrieve detailed information about a specific license including associated IPs and usage statistics

Authorizations
Path parameters
licenseKeystringRequired

Unique license key identifier

Example: 5f8d04b3ab35de3a342f3a5b
Responses
200
Successful operation
application/json
400
Invalid license key format
401
Unauthorized - Missing or invalid authentication token
403
Forbidden - User doesn't have required permissions
404
License not found
500
Internal server error
get
GET /api/v1/security/license-info/{licenseKey} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer JWT
Accept: */*
{
  "license": {
    "id": "507f1f77bcf86cd799439013",
    "type": "PREMIUM",
    "userId": "507f1f77bcf86cd799439011",
    "adminId": "507f1f77bcf86cd799439012",
    "hwid": [
      "HWID12345"
    ],
    "requestLimit": 5000,
    "requestCount": 42,
    "validFrom": "2023-01-01T00:00:00Z",
    "validUntil": "2024-12-31T23:59:59Z",
    "status": "ACTIVE",
    "createdAt": "2023-01-01T00:00:00Z",
    "updatedAt": "2023-01-02T00:00:00Z"
  },
  "blockedIPs": [
    {
      "ipAddress": "192.168.1.100",
      "reason": "Multiple failed login attempts",
      "blockedAt": "2023-01-15T10:30:00Z",
      "expiresAt": "2023-02-15T10:30:00Z",
      "blockedBy": {
        "id": "5f8d04b3ab35de3a342f3a5d",
        "name": "Admin User",
        "email": "admin@example.com"
      }
    }
  ],
  "usageStats": {
    "requestCount": 342,
    "requestLimit": 1000,
    "lastUsedAt": "2023-01-20T14:30:00Z",
    "lastUsedIp": "192.168.1.150"
  }
}

Get system status

get

Retrieve the current status of the system, including uptime and health checks.

Responses
200
System status retrieved successfully.
application/json
401
Unauthorized access.
application/json
404
Resource not found.
application/json
500
Internal server error or system is down.
application/json
get
GET /api/v1/public/status HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
{
  "status": "operational",
  "uptime": 15.3353802,
  "database": {
    "status": "healthy",
    "responseTime": "283ms"
  },
  "system": {
    "platform": "win32",
    "arch": "x64",
    "nodeVersion": "v20.18.0",
    "memoryUsage": {
      "rss": 113950720,
      "heapTotal": 61710336,
      "heapUsed": 40272096,
      "external": 2482539,
      "arrayBuffers": 53510
    },
    "uptime": 15.0516304,
    "cpuUsage": {
      "user": 3375000,
      "system": 7078000
    },
    "systemLoad": [
      0,
      0,
      0
    ],
    "freeMemory": 3459817472,
    "totalMemory": 14861852672
  },
  "meta": {
    "apiVersion": "1.0.0",
    "environment": "development",
    "startTime": "2025-03-30T11:21:25.486Z"
  }
}

Get user data from the API.

get

Retrieve user data from the API using the provided JWT token.

Authorizations
Path parameters
idstringRequired

ID of the user to retrieve.

Example: userId123
Header parameters
AuthorizationstringRequired

JWT token for authentication.

Responses
200
User data retrieved successfully.
application/json
400
Bad request due to invalid parameters or token.
application/json
get
GET /api/v1/auth/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: text
Accept: */*
{
  "id": "userId123",
  "discord": "123456789",
  "name": "John Doe",
  "createdAt": "2024-08-30T14:53:44.077Z",
  "rol": "user",
  "email": "user@example.com",
  "password": "hashed-password"
}

Validate a license key

post

Check if a license key is valid and meets all requirements

Path parameters
keystringRequired

License key to validate

Example: LIC-123-456-789
Query parameters
hwidstringRequired

Hardware ID to validate against

Example: HWID12345
Responses
200
License validation result
application/json
403
License validation failed
application/json
post
POST /api/v1/license/validate/{key} HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
{
  "valid": true,
  "remainingRequests": 4958,
  "expiresAt": "2024-12-31T23:59:59Z"
}

Delete a license

delete

Permanently remove a license from the system

Authorizations
Path parameters
idstringRequired

License ID

Example: 507f1f77bcf86cd799439013
Header parameters
AuthorizationstringRequired

Bearer token for authentication

Example: Bearer your.jwt.token.here
Responses
204
License deleted successfully
401
Missing or invalid authentication
application/json
404
Resource not found
application/json
delete
DELETE /api/v1/license/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer your.jwt.token.here
Accept: */*

No content

Get license details

get

Retrieve detailed information about a specific license

Authorizations
Path parameters
idstringRequired

License ID

Example: 507f1f77bcf86cd799439013
Header parameters
AuthorizationstringRequired

Bearer token for authentication

Example: Bearer your.jwt.token.here
Responses
200
Successful operation
application/json
404
Resource not found
application/json
get
GET /api/v1/license/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer your.jwt.token.here
Accept: */*
{
  "message": "License created successfully",
  "data": {
    "id": "507f1f77bcf86cd799439013",
    "type": "PREMIUM",
    "userId": "507f1f77bcf86cd799439011",
    "adminId": "507f1f77bcf86cd799439012",
    "hwid": [
      "HWID12345"
    ],
    "requestLimit": 5000,
    "requestCount": 42,
    "validFrom": "2023-01-01T00:00:00Z",
    "validUntil": "2024-12-31T23:59:59Z",
    "status": "ACTIVE",
    "createdAt": "2023-01-01T00:00:00Z",
    "updatedAt": "2023-01-02T00:00:00Z"
  }
}

List all licenses

get

Retrieve a list of all licenses in the system

Authorizations
Header parameters
AuthorizationstringRequired

Bearer token for authentication

Example: Bearer your.jwt.token.here
Responses
200
Successful operation
application/json
401
Missing or invalid authentication
application/json
get
GET /api/v1/license HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer your.jwt.token.here
Accept: */*
[
  {
    "id": "507f1f77bcf86cd799439013",
    "type": "PREMIUM",
    "userId": "507f1f77bcf86cd799439011",
    "adminId": "507f1f77bcf86cd799439012",
    "hwid": [
      "HWID12345"
    ],
    "requestLimit": 5000,
    "requestCount": 42,
    "validFrom": "2023-01-01T00:00:00Z",
    "validUntil": "2024-12-31T23:59:59Z",
    "status": "ACTIVE",
    "createdAt": "2023-01-01T00:00:00Z",
    "updatedAt": "2023-01-02T00:00:00Z"
  }
]

List blocked IP addresses

get

Returns a paginated list of currently blocked IP addresses in the system

Authorizations
Query parameters
pageinteger · min: 1Optional

Page number to retrieve (pagination)

Default: 1
limitinteger · min: 1 · max: 100Optional

Maximum number of results per page

Default: 20
Responses
200
Successfully retrieved blocked IP list
application/json
get
GET /api/v1/admin/blocked-ips HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer JWT
Accept: */*
200

Successfully retrieved blocked IP list

[
  {
    "ipAddress": "192.168.1.100",
    "blockedAt": "2023-01-15T10:30:00Z",
    "reason": "Brute force attack attempt",
    "expiresAt": "2023-02-15T10:30:00Z",
    "blockedBy": "admin@domain.com"
  }
]

Unblock an IP address

delete

Removes an IP address from the active block list

Authorizations
Path parameters
ipAddressstring · ipv4Required

IP address to be unblocked

Example: 192.168.1.100
Responses
200
IP successfully unblocked
application/json
400
Invalid IP format or parameters
401
Authentication required
403
Insufficient user privileges
404
Specified IP address is not currently blocked
500
Server error processing request
delete
DELETE /api/v1/admin/unblock-ip/{ipAddress} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer JWT
Accept: */*
{
  "success": true,
  "message": "IP unblocked successfully"
}

Get upcoming reminders

get

Returns a list of reminders that are about to be triggered

Responses
200
List of reminders
application/json
500
Server error
application/json
get
GET /api/v1/service/reminders HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
[
  {
    "id": "507f1f77bcf86cd799439011",
    "title": "Reunión mensual",
    "description": "Discutir presupuesto",
    "createdBy": "usuario123",
    "createdAt": "2024-01-20T10:00:00Z",
    "dueDate": "2024-01-25T15:30:00Z",
    "status": "pending",
    "priority": "high",
    "tags": [
      "trabajo",
      "finanzas"
    ],
    "reminder": {
      "enabled": true,
      "timeBefore": "30 minutes",
      "notified": false
    },
    "recurrence": {
      "type": "monthly",
      "interval": 1,
      "endDate": "2024-12-31T23:59:59Z",
      "times": 3
    },
    "autoDelete": "2024-12-31T23:59:59Z",
    "updatedAt": "2024-01-20T10:00:00Z",
    "completedAt": "2025-05-16T00:23:22.920Z"
  }
]

Delete a task

delete

Permanently deletes a task

Path parameters
idstringRequired

Task ID

Responses
204
Task deleted successfully
404
Task not found
500
Server error
application/json
delete
DELETE /api/v1/service/tasks/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*

No content

  • GETGet all tasks
  • POSTCreate a new task
  • GETGet a task by ID
  • PATCHUpdate a task
  • GETRetrieve Recent Discord Data
  • GETRetrieve Active Discord Incidents
  • GETRetrieve Recent Discord Updates
  • GETRetrieve Discord Service Status
  • GETGet IP address information
  • GETGet license information
  • GETGet system status
  • POSTLogin a user in the API.
  • POSTRegister a user in the API.
  • GETGet user data from the API.
  • POSTValidate a license key
  • DELETEDelete a license
  • PUTUpdate a license
  • GETGet license details
  • GETList all licenses
  • POSTCreate a new license
  • GETList blocked IP addresses
  • DELETEUnblock an IP address
  • POSTBlock an IP address
  • POSTProcess combined text and file with Gemini
  • POSTProcess file with Gemini
  • POSTProcess text with Gemini
  • GETGet upcoming reminders
  • DELETEDelete a task

Get all tasks

get

Returns a list of tasks with filtering options

Query parameters
statusstring · enumOptional

Filter by task status

Possible values:
prioritystring · enumOptional

Filter by priority

Possible values:
createdBystringOptional

Filter by creator ID

tagstringOptional

Filter by tag

Responses
200
List of tasks
application/json
500
Server error
application/json
get
GET /api/v1/service/tasks HTTP/1.1
Host: admin.hiroshi-dev.me
Accept: */*
[
  {
    "id": "507f1f77bcf86cd799439011",
    "title": "Reunión mensual",
    "description": "Discutir presupuesto",
    "createdBy": "usuario123",
    "createdAt": "2024-01-20T10:00:00Z",
    "dueDate": "2024-01-25T15:30:00Z",
    "status": "pending",
    "priority": "high",
    "tags": [
      "trabajo",
      "finanzas"
    ],
    "reminder": {
      "enabled": true,
      "timeBefore": "30 minutes",
      "notified": false
    },
    "recurrence": {
      "type": "monthly",
      "interval": 1,
      "endDate": "2024-12-31T23:59:59Z",
      "times": 3
    },
    "autoDelete": "2024-12-31T23:59:59Z",
    "updatedAt": "2024-01-20T10:00:00Z",
    "completedAt": "2025-05-16T00:23:22.920Z"
  }
]

Create a new task

post

Creates a task with the provided data

Body
titlestringRequiredExample: Reunión mensual
descriptionstringOptionalExample: Discutir presupuesto
createdBystringRequiredExample: usuario123
dueDatestring · date-timeOptionalExample: 2024-01-25T15:30:00Z
statusstring · enumOptionalDefault: pendingExample: pendingPossible values:
prioritystring · enumOptionalDefault: mediumExample: highPossible values:
tagsstring[]OptionalExample: ["trabajo","finanzas"]
autoDeletestring · date-timeOptionalExample: 2024-12-31T23:59:59Z
Responses
201
Task created successfully
application/json
400
Invalid input data
500
Server error
application/json
post
POST /api/v1/service/tasks HTTP/1.1
Host: admin.hiroshi-dev.me
Content-Type: application/json
Accept: */*
Content-Length: 385

{
  "title": "Reunión mensual",
  "description": "Discutir presupuesto",
  "createdBy": "usuario123",
  "dueDate": "2024-01-25T15:30:00Z",
  "status": "pending",
  "priority": "high",
  "tags": [
    "trabajo",
    "finanzas"
  ],
  "reminder": {
    "enabled": true,
    "timeBefore": "30 minutes",
    "notified": false
  },
  "recurrence": {
    "type": "monthly",
    "interval": 1,
    "endDate": "2024-12-31T23:59:59Z",
    "times": 3
  },
  "autoDelete": "2024-12-31T23:59:59Z"
}
{
  "id": "507f1f77bcf86cd799439011",
  "title": "Reunión mensual",
  "description": "Discutir presupuesto",
  "createdBy": "usuario123",
  "createdAt": "2024-01-20T10:00:00Z",
  "dueDate": "2024-01-25T15:30:00Z",
  "status": "pending",
  "priority": "high",
  "tags": [
    "trabajo",
    "finanzas"
  ],
  "reminder": {
    "enabled": true,
    "timeBefore": "30 minutes",
    "notified": false
  },
  "recurrence": {
    "type": "monthly",
    "interval": 1,
    "endDate": "2024-12-31T23:59:59Z",
    "times": 3
  },
  "autoDelete": "2024-12-31T23:59:59Z",
  "updatedAt": "2024-01-20T10:00:00Z",
  "completedAt": "2025-05-16T00:23:22.920Z"
}

Update a task

patch

Updates the specified fields of a task

Path parameters
idstringRequired

Task ID

Body
titlestringOptionalExample: Reunión mensual actualizada
descriptionstringOptionalExample: Discutir presupuesto y proyecciones
dueDatestring · date-timeOptionalExample: 2024-01-26T15:30:00Z
statusstring · enumOptionalExample: completedPossible values:
prioritystring · enumOptionalExample: mediumPossible values:
tagsstring[]OptionalExample: ["trabajo","finanzas","importante"]
autoDeletestring · date-timeOptionalExample: 2024-12-31T23:59:59Z
Responses
200
Task updated successfully
application/json
404
Task not found
500
Server error
application/json
patch
PATCH /api/v1/service/tasks/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Content-Type: application/json
Accept: */*
Content-Length: 404

{
  "title": "Reunión mensual actualizada",
  "description": "Discutir presupuesto y proyecciones",
  "dueDate": "2024-01-26T15:30:00Z",
  "status": "completed",
  "priority": "medium",
  "tags": [
    "trabajo",
    "finanzas",
    "importante"
  ],
  "reminder": {
    "enabled": true,
    "timeBefore": "30 minutes",
    "notified": false
  },
  "recurrence": {
    "type": "monthly",
    "interval": 1,
    "endDate": "2024-12-31T23:59:59Z",
    "times": 3
  },
  "autoDelete": "2024-12-31T23:59:59Z"
}
{
  "id": "507f1f77bcf86cd799439011",
  "title": "Reunión mensual",
  "description": "Discutir presupuesto",
  "createdBy": "usuario123",
  "createdAt": "2024-01-20T10:00:00Z",
  "dueDate": "2024-01-25T15:30:00Z",
  "status": "pending",
  "priority": "high",
  "tags": [
    "trabajo",
    "finanzas"
  ],
  "reminder": {
    "enabled": true,
    "timeBefore": "30 minutes",
    "notified": false
  },
  "recurrence": {
    "type": "monthly",
    "interval": 1,
    "endDate": "2024-12-31T23:59:59Z",
    "times": 3
  },
  "autoDelete": "2024-12-31T23:59:59Z",
  "updatedAt": "2024-01-20T10:00:00Z",
  "completedAt": "2025-05-16T00:23:22.920Z"
}

Login a user in the API.

post

Authenticate a user and return a JWT token for subsequent requests.

Body
emailstringOptionalExample: user@example.com
passwordstringOptionalExample: secure-password
Responses
200
User logged in successfully.
application/json
400
Bad request due to invalid credentials.
application/json
post
POST /api/v1/auth/login HTTP/1.1
Host: admin.hiroshi-dev.me
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "email": "user@example.com",
  "password": "secure-password"
}
{
  "id": "userId123",
  "email": "user@example.com",
  "name": "John Doe",
  "discord": "123456789",
  "token": "jwt-token-123"
}

Register a user in the API.

post

Register a new user in the API and generate a JWT token.

Body
emailstringOptionalExample: user@example.com
passwordstringOptionalExample: secure-password
namestringOptionalExample: John Doe
discordstringOptionalExample: 123456789
Responses
200
User registered successfully.
application/json
400
Bad request due to invalid input data.
application/json
post
POST /api/v1/auth/register HTTP/1.1
Host: admin.hiroshi-dev.me
Content-Type: application/json
Accept: */*
Content-Length: 97

{
  "email": "user@example.com",
  "password": "secure-password",
  "name": "John Doe",
  "discord": "123456789"
}
{
  "id": "userId123",
  "email": "user@example.com",
  "name": "John Doe",
  "discord": "123456789"
}

Update a license

put

Update license properties

Authorizations
Path parameters
idstringRequired

License ID

Example: 507f1f77bcf86cd799439013
Header parameters
AuthorizationstringRequired

Bearer token for authentication

Example: Bearer your.jwt.token.here
Body
hwidstring[]Optional

Updated list of hardware IDs

Example: ["HWID12345","HWID67890"]
requestLimitintegerOptional

New request limit

Example: 10000
validUntilstring · date-timeOptional

New expiration date

Example: 2025-12-31T23:59:59Z
statusstring · enumOptionalExample: ACTIVEPossible values:
Responses
200
License updated successfully
application/json
400
Invalid request data
application/json
401
Missing or invalid authentication
application/json
put
PUT /api/v1/license/{id} HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer your.jwt.token.here
Content-Type: application/json
Accept: */*
Content-Length: 109

{
  "hwid": [
    "HWID12345",
    "HWID67890"
  ],
  "requestLimit": 10000,
  "validUntil": "2025-12-31T23:59:59Z",
  "status": "ACTIVE"
}
{
  "message": "License created successfully",
  "data": {
    "id": "507f1f77bcf86cd799439013",
    "type": "PREMIUM",
    "userId": "507f1f77bcf86cd799439011",
    "adminId": "507f1f77bcf86cd799439012",
    "hwid": [
      "HWID12345"
    ],
    "requestLimit": 5000,
    "requestCount": 42,
    "validFrom": "2023-01-01T00:00:00Z",
    "validUntil": "2024-12-31T23:59:59Z",
    "status": "ACTIVE",
    "createdAt": "2023-01-01T00:00:00Z",
    "updatedAt": "2023-01-02T00:00:00Z"
  }
}

Create a new license

post

Creates a new software license with specified parameters. Requires admin privileges.

Authorizations
Header parameters
AuthorizationstringRequired

Bearer token for authentication

Example: Bearer your.jwt.token.here
Body
typestring · enumRequiredExample: PREMIUMPossible values:
userIdstringRequired

ID of user this license is assigned to

Example: 507f1f77bcf86cd799439011
adminIdstringRequired

ID of admin creating the license

Example: 507f1f77bcf86cd799439012
hwidstring[]Required

List of allowed hardware IDs

Example: ["HWID12345"]
requestLimitintegerOptional

Maximum allowed API requests

Default: 1000Example: 5000
validUntilstring · date-timeRequired

Expiration date

Example: 2024-12-31T23:59:59Z
metadataobjectOptional

Additional custom data

Example: {"features":["premium","api-access"]}
Responses
201
License created successfully
application/json
400
Invalid request data
application/json
401
Missing or invalid authentication
application/json
403
Insufficient permissions
application/json
post
POST /api/v1/license HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer your.jwt.token.here
Content-Type: application/json
Accept: */*
Content-Length: 217

{
  "type": "PREMIUM",
  "userId": "507f1f77bcf86cd799439011",
  "adminId": "507f1f77bcf86cd799439012",
  "hwid": [
    "HWID12345"
  ],
  "requestLimit": 5000,
  "validUntil": "2024-12-31T23:59:59Z",
  "metadata": {
    "features": [
      "premium",
      "api-access"
    ]
  }
}
{
  "message": "License created successfully",
  "data": {
    "id": "507f1f77bcf86cd799439013",
    "type": "PREMIUM",
    "userId": "507f1f77bcf86cd799439011",
    "adminId": "507f1f77bcf86cd799439012",
    "hwid": [
      "HWID12345"
    ],
    "requestLimit": 5000,
    "requestCount": 42,
    "validFrom": "2023-01-01T00:00:00Z",
    "validUntil": "2024-12-31T23:59:59Z",
    "status": "ACTIVE",
    "createdAt": "2023-01-01T00:00:00Z",
    "updatedAt": "2023-01-02T00:00:00Z"
  }
}

Block an IP address

post

Adds an IP address to the system's block list

Authorizations
Body
ipAddressstring · ipv4Required

IP address to be blocked

Example: 192.168.1.100
reasonstringOptional

Reason for blocking (for audit logs)

Example: Multiple failed login attempts
userIdstringOptional

ID of the user performing the block (optional)

Example: 507f1f77bcf86cd799439011
expiresAtstring · date-timeOptional

Expiration date/time for automatic unblock (optional)

Example: 2023-12-31T23:59:59Z
Responses
200
IP successfully blocked
application/json
400
Invalid request or malformed parameters
401
Authentication required or invalid token
403
User lacks required permissions
500
Internal server error
post
POST /api/v1/admin/block-ip HTTP/1.1
Host: admin.hiroshi-dev.me
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 142

{
  "ipAddress": "192.168.1.100",
  "reason": "Multiple failed login attempts",
  "userId": "507f1f77bcf86cd799439011",
  "expiresAt": "2023-12-31T23:59:59Z"
}
{
  "success": true,
  "message": "IP blocked successfully"
}

Process combined text and file with Gemini

post

Send both text and a file to Gemini for combined processing

Header parameters
x-gemini-api-keystringRequired

Google Gemini API Key

Example: AIzaSyD...xyz
x-gemini-modelstring · enumRequired

Gemini model to use

Example: gemini-1.5-proPossible values:
Body
filestring · binaryOptional

File to process (PDF, DOCX, etc.)

textstringOptional

Text related to the file

Example: Based on this document, what are the key points?
systemInstructionstringOptional

System instruction to configure Gemini's behavior

Example: You are a document analysis expert
Responses
200
Successful response from Gemini
application/json
400
Missing required headers, no file provided, or invalid request
500
Error processing the request
post
POST /api/v1/service/google/model-ai/combined HTTP/1.1
Host: admin.hiroshi-dev.me
x-gemini-api-key: AIzaSyD...xyz
x-gemini-model: gemini-1.5-pro
Content-Type: multipart/form-data
Accept: */*
Content-Length: 132

{
  "file": "binary",
  "text": "Based on this document, what are the key points?",
  "systemInstruction": "You are a document analysis expert"
}
{
  "response": "Artificial intelligence is...",
  "model": "gemini-1.5-pro",
  "timestamp": "2025-05-16T00:23:22.920Z"
}

Process file with Gemini

post

Send a file to Gemini for processing

Header parameters
x-gemini-api-keystringRequired

Google Gemini API Key

Example: AIzaSyD...xyz
x-gemini-modelstring · enumRequired

Gemini model to use

Example: gemini-1.5-proPossible values:
Body
filestring · binaryOptional

File to process (PDF, DOCX, etc.)

textstringOptional

Instructions/prompt to process the file

Example: Summarize this document
systemInstructionstringOptional

System instruction to configure Gemini's behavior

Example: You are an academic assistant specialized in summarizing documents
Responses
200
Successful response from Gemini
application/json
400
Missing required headers, no file provided, or invalid request
500
Error processing the request
post
POST /api/v1/service/google/model-ai/file HTTP/1.1
Host: admin.hiroshi-dev.me
x-gemini-api-key: AIzaSyD...xyz
x-gemini-model: gemini-1.5-pro
Content-Type: multipart/form-data
Accept: */*
Content-Length: 139

{
  "file": "binary",
  "text": "Summarize this document",
  "systemInstruction": "You are an academic assistant specialized in summarizing documents"
}
{
  "response": "Artificial intelligence is...",
  "model": "gemini-1.5-pro",
  "timestamp": "2025-05-16T00:23:22.920Z"
}

Process text with Gemini

post

Send text to Gemini for processing

Header parameters
x-gemini-api-keystringRequired

Google Gemini API Key

Example: AIzaSyD...xyz
x-gemini-modelstring · enumRequired

Gemini model to use

Example: gemini-1.5-proPossible values:
Body
textstringRequired

Text to be processed

Example: Explain the concept of artificial intelligence
systemInstructionstringOptional

System instruction to configure Gemini's behavior

Example: You are a university professor explaining technical concepts
Responses
200
Successful response from Gemini
application/json
400
Missing required headers or invalid request
500
Error processing the request
post
POST /api/v1/service/google/model-ai/text HTTP/1.1
Host: admin.hiroshi-dev.me
x-gemini-api-key: AIzaSyD...xyz
x-gemini-model: gemini-1.5-pro
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "text": "Explain the concept of artificial intelligence",
  "systemInstruction": "You are a university professor explaining technical concepts"
}
{
  "response": "Artificial intelligence is...",
  "model": "gemini-1.5-pro",
  "timestamp": "2025-05-16T00:23:22.920Z"
}