This document provides a comprehensive reference for the REChain API endpoints, parameters, and responses.
All API requests require authentication using JWT tokens.
Authorization: Bearer <your-jwt-token>https://api.rechain.network/v1
Retrieve a list of users.
Parameters:
limit(optional): Number of users to return (default: 20)offset(optional): Offset for pagination (default: 0)
Response:
{
"users": [
{
"id": "string",
"username": "string",
"email": "string",
"created_at": "2023-01-01T00:00:00Z"
}
],
"total": 100,
"limit": 20,
"offset": 0
}Create a new user.
Request Body:
{
"username": "string",
"email": "string",
"password": "string"
}Response:
{
"id": "string",
"username": "string",
"email": "string",
"created_at": "2023-01-01T00:00:00Z"
}Retrieve a specific user.
Parameters:
id: User ID
Response:
{
"id": "string",
"username": "string",
"email": "string",
"created_at": "2023-01-01T00:00:00Z"
}Update a user.
Parameters:
id: User ID
Request Body:
{
"username": "string",
"email": "string"
}Response:
{
"id": "string",
"username": "string",
"email": "string",
"updated_at": "2023-01-01T00:00:00Z"
}Delete a user.
Parameters:
id: User ID
Response:
{
"message": "User deleted successfully"
}Retrieve messages.
Parameters:
room_id(optional): Room ID to filter messageslimit(optional): Number of messages to return (default: 50)before(optional): Get messages before this timestamp
Response:
{
"messages": [
{
"id": "string",
"room_id": "string",
"sender_id": "string",
"content": "string",
"timestamp": "2023-01-01T00:00:00Z"
}
],
"end": "string"
}Send a message.
Request Body:
{
"room_id": "string",
"content": "string",
"msgtype": "m.text"
}Response:
{
"event_id": "string"
}Get user's rooms.
Response:
{
"rooms": [
{
"room_id": "string",
"name": "string",
"topic": "string",
"members": 10
}
]
}Create a room.
Request Body:
{
"name": "string",
"topic": "string",
"visibility": "private"
}Response:
{
"room_id": "string"
}Get wallet balance.
Parameters:
address: Wallet address
Response:
{
"address": "string",
"balance": "1000000000000000000",
"symbol": "ETH"
}Transfer tokens.
Request Body:
{
"from": "string",
"to": "string",
"amount": "1000000000000000000",
"symbol": "ETH"
}Response:
{
"tx_hash": "string"
}Upload file to IPFS.
Request Body: (multipart/form-data)
file: File to upload
Response:
{
"hash": "Qm...",
"url": "https://ipfs.io/ipfs/Qm..."
}Retrieve file from IPFS.
Parameters:
hash: IPFS hash
Response: File content
Generate AI response.
Request Body:
{
"prompt": "string",
"model": "gpt-3.5-turbo",
"max_tokens": 100
}Response:
{
"response": "string",
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}All errors follow this format:
{
"error": "Error message",
"code": "ERROR_CODE",
"details": {}
}INVALID_REQUEST: Invalid request parametersUNAUTHORIZED: Authentication requiredFORBIDDEN: Insufficient permissionsNOT_FOUND: Resource not foundINTERNAL_ERROR: Server error
API requests are rate limited:
- 1000 requests per hour for authenticated users
- 100 requests per hour for unauthenticated users
Rate limit headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1638360000
- Initial API release
- Basic user, message, and room endpoints
- Added blockchain integration
- Added IPFS file storage
- Added AI endpoints
- Improved error handling
This API reference is part of the REChain documentation suite.