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
Endpoint: /api/v1/modules/{moduleName}/list
# 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"
// Install: npm install axios

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'
});
# Install: pip install requests

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'
  }
)
// Using cURL

$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);
Endpoint: /api/v1/modules/{moduleName}/list
// 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)
Endpoint: /api/v1/modules/{moduleName}/list
// 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)
Endpoint: /api/v1/modules/{moduleName}/list
// 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)
Endpoint: /api/v1/modules/{moduleName}/list
// 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
curl -X POST https://sites.appclust.com/api/v1/modules/YOUR_MODULE/list \
  -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.

POST
/api/v1/modules/{moduleName}/list
Public API

Get list of items from a specific custom module for data retrieval and copying operations.

Request Headers
Authorization: Bearer [API Token]
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
}
POST
/api/v1/modules/{moduleName}/saveToDB
Public API

Save or update data in a custom module for external data synchronization.

Request Headers
Authorization: Bearer [API Token]
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.

ANY
/api/v1/files/list
Public API

List files and folders in the specified directory for data retrieval and copying.

Request Parameters
folder: "path/to/directory" (optional)
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.

POST
/api/v1/communication/email/send
Public API

Send contact form emails to company support email for external integrations.

Request Headers
Authorization: Bearer [API Token]
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.

ANY
/api/test
Public API

Simple 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
Authorization: Bearer YOUR_API_TOKEN
Getting Your API Token
  1. Contact AppClust support team
  2. Provide your company details and use case
  3. Receive your unique API token
  4. 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-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200

HTTP Status Codes

Standard HTTP status codes returned by our API endpoints.

Success Codes
200 OK - Request successful
201 Created - Resource created successfully
204 No Content - Request successful, no content returned
Error Codes
400 Bad Request - Invalid request parameters
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 created
  • module.updated - Record updated
  • module.deleted - Record deleted
  • file.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