AppClust Public API
Modern, secure, and powerful APIs for data retrieval, file management, and communication services. Built for seamless external integrations and data copying operations.
SDK & Code Examples
Ready-to-use code examples in popular programming languages.
List Custom Module Data
# List custom module data
curl -X POST https://sites.appclust.com/api/v1/modules/users/list \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"per_page": 10
}'
# Save custom module data
curl -X POST https://sites.appclust.com/api/v1/modules/users/saveToDB \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"OBJID": 1,
"TITLE": "Updated Title",
"DESCRIPTION": "Updated description"
}'
# List files
curl -X GET https://sites.appclust.com/api/v1/files/list \
-H "Content-Type: application/json"
const axios = require('axios');
const apiClient = axios.create({
baseURL: 'https://sites.appclust.com',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
Endpoint: /api/v1/modules/{moduleName}/list
// List custom module data
const response = await apiClient.post('/api/v1/modules/users/list', {
page: 1,
per_page: 10
});
Endpoint: /api/v1/modules/{moduleName}/saveToDB
# Save custom module data
const saveResponse = await apiClient.post('/api/v1/modules/users/saveToDB', {
OBJID: 1,
TITLE: 'Updated Title',
DESCRIPTION: 'Updated description'
});
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
Endpoint: /api/v1/modules/{moduleName}/list
# List custom module data
response = requests.post(
'https://sites.appclust.com/api/v1/modules/users/list',
headers=headers,
json={'page': 1, 'per_page': 10}
)
Endpoint: /api/v1/modules/{moduleName}/saveToDB
# Save custom module data
save_response = requests.post(
'https://sites.appclust.com/api/v1/modules/users/saveToDB',
headers=headers,
json={
'OBJID': 1,
'TITLE': 'Updated Title',
'DESCRIPTION': 'Updated description'
}
)
$headers = [
'Authorization: Bearer YOUR_API_TOKEN',
'Content-Type: application/json'
];
Endpoint: /api/v1/modules/{moduleName}/list
# List custom module data
$data = json_encode([
'page' => 1,
'per_page' => 10
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sites.appclust.com/api/v1/modules/users/list');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
Endpoint: /api/v1/modules/{moduleName}/saveToDB
# Save custom module data
$saveData = json_encode([
'OBJID' => 1,
'TITLE' => 'Updated Title',
'DESCRIPTION' => 'Updated description'
]);
curl_setopt($ch, CURLOPT_URL, 'https://sites.appclust.com/api/v1/modules/users/saveToDB');
curl_setopt($ch, CURLOPT_POSTFIELDS, $saveData);
$saveResponse = curl_exec($ch);
// Node.js (native https module)
const https = require('https');
// List custom module data const data = JSON.stringify({ page: 1, per_page: 10 });
const options = {
hostname: 'sites.appclust.com',
path: '/api/v1/modules/users/list',
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = https.request(options, res => {
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => console.log(body));
});
req.write(data);
req.end();
// Save custom module data (change path and data as needed)
// Java (OkHttp)
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"page\":1,\"per_page\":10}");
Request request = new Request.Builder()
.url("https://sites.appclust.com/api/v1/modules/users/list")
.post(body)
.addHeader("Authorization", "Bearer YOUR_API_TOKEN")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
// Save custom module data (change URL and body as needed)
// Next.js (API Route or getServerSideProps)
export async function getServerSideProps() {
const res = await fetch('https://sites.appclust.com/api/v1/modules/users/list', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ page: 1, per_page: 10 })
});
const data = await res.json();
return { props: { data } }; }
// Save custom module data (change URL and body as needed)
// Flutter (Dart, using http package)
import 'package:http/http.dart' as http;
import 'dart:convert';
void listCustomModuleData() async {
final response = await http.post(
Uri.parse('https://sites.appclust.com/api/v1/modules/users/list'),
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json',
},
body: jsonEncode({'page': 1, 'per_page': 10}),
);
if (response.statusCode == 200) {
print(jsonDecode(response.body));
} else {
print('Request failed: \\${response.statusCode}');
} }
// Save custom module data (change URL and body as needed)
Test List API
Generate a cURL command with your credentials and test the API in your terminal for the most reliable results.
Generated cURL Command
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"per_page": 10
}'
Custom Modules
Retrieve and manage custom module data for external integrations with enterprise-grade security.
/api/v1/modules/{moduleName}/list
Public APIGet list of items from a specific custom module for data retrieval and copying operations.
Request Headers
Content-Type: application/json
Request Body
"page": 1,
"per_page": 10,
"filters": {}
}
Response
"success": true,
"data": [
{
"OID": 1,
"TITLE": "Module Item",
"DESCRIPTION": "Item description",
"CID": 123
}
],
"count": 25
}
/api/v1/modules/{moduleName}/saveToDB
Public APISave or update data in a custom module for external data synchronization.
Request Headers
Content-Type: application/json
Request Body
"OBJID": 1,
"TITLE": "Updated Title",
"DESCRIPTION": "Updated description",
"FIELD_INFO": "additional_data"
}
Response
"success": true,
"data": []
}
File Management
Access and manage files in the shared storage system for data copying operations with advanced security.
/api/v1/files/list
Public APIList files and folders in the specified directory for data retrieval and copying.
Request Parameters
listAllFolders: "true" (optional)
Response
"allFolders": [
"folder1",
"folder2"
],
"folders": [
"subfolder1",
"subfolder2"
],
"files": [
"file1.pdf",
"file2.jpg"
]
}
Communication
Send emails and notifications using Zepto Mail integration for external communication with enterprise reliability.
/api/v1/communication/email/send
Public APISend contact form emails to company support email for external integrations.
Request Headers
Content-Type: application/json
Request Body
"contact-email": "[email protected]",
"contact-phone": "+1234567890",
"contact-full_name": "John Doe",
"contact-details": "Message content"
}
Response
"success": true,
"message": "Email sent successfully"
}
Testing
Test endpoints to verify API connectivity and functionality for external integrations.
/api/test
Public APISimple test endpoint to verify API connectivity for external systems.
Response
"success": true,
"data": "AppClust Master: Test API Call"
}
Error Handling
Common error responses and their meanings for public API integrations.
Authentication Errors
"success": false,
"message": "Invalid Access"
}
Validation Errors
"success": false,
"message": "Invalid session"
}
Database Errors
"success": false,
"message": "Duplicate entry.\nKey: NAME, Value: existing_name"
}
API Usage Guidelines
Best practices for using AppClust public APIs for data retrieval and copying operations.
Rate Limiting
Public APIs are subject to rate limiting. Please implement appropriate delays between requests to avoid hitting rate limits.
Data Retrieval
Use pagination parameters when retrieving large datasets to optimize performance and reduce server load.
Error Handling
Always implement proper error handling in your integrations. Check the success field in responses and handle errors gracefully.
Authentication
Some endpoints require API tokens. Contact AppClust support to obtain the necessary authentication credentials.
Authentication
Secure your API requests with proper authentication methods.
API Token Authentication
Most endpoints require authentication using API tokens in the Authorization header.
Header Format
Getting Your API Token
- Contact AppClust support team
- Provide your company details and use case
- Receive your unique API token
- Keep your token secure and never share it publicly
Rate Limits
Understand our rate limiting policies to ensure optimal API performance.
Rate Limit Details
Standard Plan
- 100 requests per minute
- 1,000 requests per hour
- 10,000 requests per day
Enterprise Plan
- 500 requests per minute
- 5,000 requests per hour
- 50,000 requests per day
Rate Limit Headers
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200
HTTP Status Codes
Standard HTTP status codes returned by our API endpoints.
Success Codes
201 Created - Resource created successfully
204 No Content - Request successful, no content returned
Error Codes
401 Unauthorized - Invalid or missing API token
403 Forbidden - Insufficient permissions
404 Not Found - Resource not found
429 Too Many Requests - Rate limit exceeded
500 Internal Server Error - Server error
Webhooks
Receive real-time notifications when data changes in your custom modules.
Webhook Events
Available Events
module.created
- New record createdmodule.updated
- Record updatedmodule.deleted
- Record deletedfile.uploaded
- New file uploaded
Webhook Payload
"event": "module.created",
"timestamp": "2024-03-20T10:00:00Z",
"data": {
"module": "users",
"record_id": 123
}
}
API Versioning
Our API versioning strategy ensures backward compatibility and stability.
Version Strategy
Current Version
v1 - Stable and production-ready
- All endpoints use /api/v1/ prefix
- Backward compatible changes only
- Long-term support
Deprecation Policy
We provide 12 months notice before deprecating endpoints
- Deprecation headers included
- Migration guides provided
- Gradual phase-out process