Welcome to the official ITCPR API documentation. This API powers various internal and external services including LaTeX document generation, GitHub integration, Discord automation, ZeroTier management, email utilities, WSL command syncing, and server operations.
All endpoints are available under:
https://api.itcpr.org
All requests and responses are in JSON format unless otherwise noted.
POST /latex/compileDescription:
Compile LaTeX documents, including support for BibTeX and embedded figures (as base64).
Payload:
{
"content": "<LaTeX code>",
"bibliography": "<optional .bib content>",
"figures": [
{
"name": "fig1.png",
"data": "data:image/png;base64,..."
}
]
}
Response: Returns a compiled PDF document as binary.
POST /discord/messageSend a plain text message to a specific Discord channel.
{
"channelId": "DISCORD_CHANNEL_ID",
"message": "Hello from ITCPR API"
}
POST /discord/add_userAdd a user to the guild (server) using OAuth2 access_token.
{
"userId": "DISCORD_USER_ID",
"accessToken": "OAUTH_ACCESS_TOKEN"
}
POST /discord/assign_roleAssign an existing role to a user within a guild.
{
"userId": "DISCORD_USER_ID",
"roleId": "DISCORD_ROLE_ID"
}
POST /email/unigurubdSend emails via UniGuruBD SMTP credentials.
POST /email/itcprSend emails via ITCPRβs dedicated SMTP gateway.
Shared Payload:
{
"to": "recipient@example.com",
"subject": "Hello from ITCPR",
"message": "<p>This is an HTML or plain text email body</p>"
}
POST /zerotier/authenticateAuthorize a device in the ZeroTier network.
{
"member_id": "ZT_MEMBER_ID",
"ip": "192.168.195.10"
}
POST /zerotier/deauthenticateRemove a member from the ZeroTier network.
{
"member_id": "ZT_MEMBER_ID"
}
GET /github/get_files?path=...List files in a specified GitHub repository path.
POST /github/upload_file?path=...Upload a file to a GitHub repository.
Form Data:
- file: file input
- path: destination folder under /files/
POST /github/webhookTrigger a Discord message when someone pushes to the repo.
POST /wsl/uploadUpload a .txt file to WSL for logging or syncing purposes.
GET /wsl/downloadDownload the current log file stored on WSL.
POST /server/webhookUpdate internal server metrics via a JSON POST.
GET /server/statsRetrieve latest saved system stats.
POST /server/accessUpload access_codes.json to the server.
POST /server/downloadDownload a specific file (e.g., access_codes.json) from the server.
All endpoints (unless file upload) expect:
Content-Type: application/json
Use appropriate headers for file uploads via multipart/form-data.
curl -X POST https://api.itcpr.org/email/itcpr \
-H "Content-Type: application/json" \
-d '{
"to": "you@example.com",
"subject": "Welcome!",
"message": "Hello from ITCPR API."
}'
HTTP status code and JSON body with "error" and "details" fields./latex/compile include Content-Type: application/pdf.This service is part of the ITCPR nonprofit platform and intended for internal and collaborative use.
All rights reserved Β© 2025 ITCPR.