The Unified API Platform for Modern Developers
OneNodeAPI offers a complete ecosystem of reliable services — high-deliverability SMTP, real-time IGN verification, GPT-4 powered AI, instant UPI payments, and neural audio synthesis — all under one universal credential system.
Welcome to OneNodeAPI
This documentation will walk you through every available service. Each module uses the same Universal Node Credentials for authentication — making it incredibly easy to scale across services.
Client ID and Client Secret from your Dashboard to begin. These credentials are universal across SMTP, IGN, AI, Payment, and Song APIs.
Available Services
Pick a service to jump directly to its documentation. All services share the same authentication model.
Universal Node Credentials
One pair of keys unlocks every service. Keep your secret confidential — never expose it in client-side code.
403 Forbidden error.
SMTP Email API
OneNodeAPI provides reliable, secure infrastructure for sending high-deliverability emails. Our API uses an HMAC-SHA256 signature protocol to ensure that your credentials are never exposed during transit.
1Authentication Headers
Every API request must be authorized using three mandatory headers. The security is based on a dynamic signature that changes every second.
| Header | Format | Description |
|---|---|---|
X-Client-ID | String | Your API Client ID |
X-Timestamp | Unix Int | Current Unix timestamp in seconds |
X-Signature | SHA256 | HMAC hash of ID + Timestamp |
2The Signature Formula
Concatenate your Client ID and Timestamp, then hash it with HMAC-SHA256 using your Client Secret as the key.
$clientId = "your_id";
$clientSecret = "your_secret";
$timestamp = time();
$signature = hash_hmac('sha256', $clientId . $timestamp, $clientSecret);
import time, hmac, hashlib
client_id = "your_id"
secret = "your_secret"
ts = str(int(time.time()))
signature = hmac.new(secret.encode(), (client_id + ts).encode(), hashlib.sha256).hexdigest()
const crypto = require('crypto');
const clientId = "your_id";
const secret = "your_secret";
const ts = Math.floor(Date.now() / 1000).toString();
const signature = crypto.createHmac('sha256', secret).update(clientId + ts).digest('hex');
3Send Email
| Parameter | Type | Description |
|---|---|---|
to | String | The recipient's email address |
subject | String | The subject line (UTF-8 supported) |
body | String | Your email content (see plan differences) |
<style> blocks inside the head.
4Plan-Specific Content Handling
Your subscription tier determines how our relay processes your body content.
Basic / Starter Standardized
Free users have their HTML stripped. Only basic tags like <b> and <p> are kept. We append our minimalist footer to every email.
[Stripped Styles] Your Content --- powered by smtp.mested.com
Pro / Premium Full HTML
Paid users have total control. Send complex layouts, background images, and custom CSS without any external branding.
<div style="background:#000;"> <h1>Your Brand</h1> </div>
5Integration Examples
<?php
$payload = [
"to" => "user@example.com",
"subject" => "Test from OneNodeAPI",
"body" => "<h1>Success!</h1><p>Integration complete.</p>"
];
$ch = curl_init('https://onenodeapi.com/backend/api.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'X-Client-ID: ' . $clientId,
'X-Timestamp: ' . $timestamp,
'X-Signature: ' . $signature
]);
$response = curl_exec($ch);
echo $response;
?>
import requests, time, hmac, hashlib
client_id = "your_id"
secret = "your_secret"
ts = str(int(time.time()))
sig = hmac.new(secret.encode(), (client_id + ts).encode(), hashlib.sha256).hexdigest()
payload = {
"to": "user@example.com",
"subject": "Hello from Python",
"body": "API Test Successful"
}
headers = {
"X-Client-ID": client_id,
"X-Timestamp": ts,
"X-Signature": sig
}
r = requests.post("https://onenodeapi.com/backend/api.php", json=payload, headers=headers)
print(r.json())
const axios = require('axios');
const crypto = require('crypto');
const clientId = "your_id";
const secret = "your_secret";
const ts = Math.floor(Date.now() / 1000).toString();
const sig = crypto.createHmac('sha256', secret).update(clientId + ts).digest('hex');
axios.post('https://onenodeapi.com/backend/api.php', {
to: "user@example.com",
subject: "Hello from Node",
body: "<h1>Success</h1>"
}, {
headers: {
'X-Client-ID': clientId,
'X-Timestamp': ts,
'X-Signature': sig
}
}).then(r => console.log(r.data));
curl -X POST https://onenodeapi.com/backend/api.php \
-H "Content-Type: application/json" \
-H "X-Client-ID: your_id" \
-H "X-Timestamp: 1700000000" \
-H "X-Signature: hmac_signature_here" \
-d '{"to":"user@example.com","subject":"Hi","body":"<p>Hello</p>"}'
IGN Gateway Engine
Real-time player identity verification for Mobile Legends, Genshin Impact, and Honkai Star Rail. Our API handles complex data scraping to ensure your top-up flows are accurate.
1Authentication & Security
Every request to our nodes is validated through a two-tier security system: Credential Validation and IP Whitelisting.
2Verification Endpoint
| Parameter | Required | Description |
|---|---|---|
client_id | Yes | Your unique One Node Client ID |
client_secret | Yes | Your unique One Node Secret |
game | Yes | Game slug: ml, gi, hi |
id | Yes | The Player ID found in game profile |
zone | Partial | Server ID (Mandatory for Mobile Legends) |
3Response Codes
| HTTP Code | Status | Meaning |
|---|---|---|
| 200 | success | Player verified. ₹0.01 deducted from wallet. |
| 401 | error | Invalid Client ID or Secret |
| 402 | error | Insufficient wallet balance |
| 403 | error | IP Address not whitelisted |
| 404 | error | User ID not found in game database |
4Implementation Example
$ch = curl_init();
$params = [
'client_id' => 'YOUR_ID',
'client_secret' => 'YOUR_SECRET',
'game' => 'ml',
'id' => '1114917746',
'zone' => '13486'
];
curl_setopt($ch, CURLOPT_URL, "https://onenodeapi.com/ign-backend/gateway.php?" . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result['status'] === 'success') {
echo "Nickname: " . $result['nickname'];
echo "New Wallet: " . $result['wallet_balance'];
} else {
echo "Verification Failed: " . $result['message'];
}
curl_close($ch);
import requests
params = {
'client_id': 'YOUR_ID',
'client_secret': 'YOUR_SECRET',
'game': 'ml',
'id': '1114917746',
'zone': '13486'
}
r = requests.get("https://onenodeapi.com/ign-backend/gateway.php", params=params)
data = r.json()
if data['status'] == 'success':
print(f"Nickname: {data['nickname']}")
print(f"Wallet: {data['wallet_balance']}")
else:
print(f"Error: {data['message']}")
const axios = require('axios');
axios.get('https://onenodeapi.com/ign-backend/gateway.php', {
params: {
client_id: 'YOUR_ID',
client_secret: 'YOUR_SECRET',
game: 'ml',
id: '1114917746',
zone: '13486'
}
}).then(r => {
if (r.data.status === 'success') {
console.log(`Nickname: ${r.data.nickname}`);
}
});
curl "https://onenodeapi.com/ign-backend/gateway.php?client_id=YOUR_ID&client_secret=YOUR_SECRET&game=ml&id=1114917746&zone=13486"
GPT-4 AI Completion Gateway
Leverage our massive 120B parameter language model for reasoning, coding, and creative tasks. Simple token-based billing at ₹0.80 per 1k tokens.
1Secure Authentication
Our AI nodes use the Universal Node Credentials. These keys are shared across SMTP, IGN, and AI services.
2AI Completion Endpoint
| Parameter | Type | Description |
|---|---|---|
client_id | String | Your account Client ID |
client_secret | String | Your account Client Secret |
prompt | String | The instruction or question for the AI |
3Billing & Tokenomics
Rate Card Per Token
₹0.80 / per 1k tokens
Exchange Value Bulk
10,000 tokens / ₹8.00
4Implementation Example
$params = [
'client_id' => 'YOUR_CLIENT_ID',
'client_secret' => 'YOUR_CLIENT_SECRET',
'prompt' => 'Write a Python function to sort a list.'
];
$ch = curl_init("https://onenodeapi.com/ai-backend/gateway.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] === 'success') {
echo $result['response']; // AI Text
} else {
echo "Error: " . $result['message'];
}
import requests
data = {
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
'prompt': 'Write a Python function to sort a list.'
}
r = requests.post("https://onenodeapi.com/ai-backend/gateway.php", data=data)
result = r.json()
if result['status'] == 'success':
print(result['response'])
else:
print(f"Error: {result['message']}")
const axios = require('axios');
axios.post('https://onenodeapi.com/ai-backend/gateway.php',
new URLSearchParams({
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
prompt: 'Write a Python function to sort a list.'
})
).then(r => {
if (r.data.status === 'success') console.log(r.data.response);
});
curl -X POST https://onenodeapi.com/ai-backend/gateway.php \
-d "client_id=YOUR_ID" \
-d "client_secret=YOUR_SECRET" \
-d "prompt=Write a Python function to sort a list."
5Error Masking Policy
To prevent server fingerprinting and credential sniffing, our AI node masks internal exceptions. If a request fails due to an API timeout or internal logic crash, the gateway will return:
{ "status": "error", "message": "Unknown error occurred" }
Paytm Merchant Gateway
Integrate real-time UPI payments into your application. One Node PG allows you to accept funds directly into your bank account using the Paytm Business protocol.
1Authentication
The Merchant Gateway uses the same Universal Node Credentials as SMTP and IGN.
2Create Payment Order
| Parameter | Required | Description |
|---|---|---|
client_id | Yes | Your One Node Client ID |
client_secret | Yes | Your One Node Client Secret |
order_id | Yes | Unique ID from your website |
amount | Yes | Transaction value in INR |
redirect_url | Yes | URL to redirect customer after payment |
3Logic Implementation
$params = [
'client_id' => '2b31411551ec3053',
'client_secret' => 'YOUR_SECRET',
'order_id' => 'ORDER_101',
'amount' => '199.00',
'redirect_url' => 'https://yoursite.com/callback'
];
$ch = curl_init("https://onenodeapi.com/pg-backend/order-logic.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] === 'success') {
header("Location: " . $result['payment_url']);
} else {
echo "Gateway Error: " . $result['message'];
}
import requests
data = {
'client_id': '2b31411551ec3053',
'client_secret': 'YOUR_SECRET',
'order_id': 'ORDER_101',
'amount': '199.00',
'redirect_url': 'https://yoursite.com/callback'
}
r = requests.post("https://onenodeapi.com/pg-backend/order-logic.php", data=data)
result = r.json()
if result['status'] == 'success':
print("Redirect:", result['payment_url'])
const axios = require('axios');
axios.post('https://onenodeapi.com/pg-backend/order-logic.php',
new URLSearchParams({
client_id: '2b31411551ec3053',
client_secret: 'YOUR_SECRET',
order_id: 'ORDER_101',
amount: '199.00',
redirect_url: 'https://yoursite.com/callback'
})
).then(r => res.redirect(r.data.payment_url));
4Response Schema
{
"status": "success",
"order_token": "a1b2c3d4e5f6...",
"payment_url": "https://onenodeapi.com/checkout.php?token=a1b2...",
"quota_remaining": 29850
}
5Check Order Status
$params = [
'client_id' => 'YOUR_ID',
'client_secret' => 'YOUR_SECRET',
'order_id' => 'ORDER_101'
];
$url = "https://onenodeapi.com/pg-backend/status-check.php?" . http_build_query($params);
$res = json_decode(file_get_contents($url), true);
if ($res['status'] === 'success') {
$payment = $res['data']['payment_status'];
if ($payment === 'SUCCESS') {
echo "Order is paid! UTR: " . $res['data']['bank_utr'];
} else {
echo "Order is still pending.";
}
}
import requests
r = requests.get("https://onenodeapi.com/pg-backend/status-check.php", params={
'client_id': 'YOUR_ID',
'client_secret': 'YOUR_SECRET',
'order_id': 'ORDER_101'
})
res = r.json()
if res['status'] == 'success' and res['data']['payment_status'] == 'SUCCESS':
print("Paid! UTR:", res['data']['bank_utr'])
AI Song Synthesis
Generate professional-grade audio tracks from lyrics using the Mested-Sonic-V2 node. Complete with vocals, instrumentation, and arrangement.
1Credentials
2Initialize Generation
| Param | Required | Description |
|---|---|---|
title | No | Name of the track |
vibe | Yes | Style (e.g., "Sad Melodic Pop") |
lyrics | Yes | Text content (Max 20k chars) |
voice | No | male, female, or random |
3Implementation Example
$params = [
'client_id' => '2b31411551ec3053',
'client_secret' => 'YOUR_SECRET',
'action' => 'generate',
'title' => 'Neon Sunset',
'vibe' => '80s Synthwave',
'lyrics' => 'Driving down the highway, sky is turning gold...'
];
$ch = curl_init("https://onenodeapi.com/ai-songs-backend/api.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
if ($response['status'] === 'success') {
echo "Processing Request ID: " . $response['request_id'];
echo "Wait time: 5-24 Hours.";
}
import requests
data = {
'client_id': '2b31411551ec3053',
'client_secret': 'YOUR_SECRET',
'action': 'generate',
'title': 'Neon Sunset',
'vibe': '80s Synthwave',
'lyrics': 'Driving down the highway, sky is turning gold...'
}
r = requests.post("https://onenodeapi.com/ai-songs-backend/api.php", data=data)
print(r.json())
const axios = require('axios');
axios.post('https://onenodeapi.com/ai-songs-backend/api.php',
new URLSearchParams({
client_id: '2b31411551ec3053',
client_secret: 'YOUR_SECRET',
action: 'generate',
title: 'Neon Sunset',
vibe: '80s Synthwave',
lyrics: 'Driving down the highway...'
})
).then(r => console.log('Request ID:', r.data.request_id));
Universal Error Codes
Standard HTTP status codes returned by our gateway. Always check the JSON status field for service-level validation.
| Status | Error Message | How to Fix |
|---|---|---|
| 400 | Incomplete payload | Ensure required fields are sent |
| 401 | Invalid Signature / Credentials | Check your Secret and Timestamp UTC |
| 402 | Insufficient balance | Top up your wallet from dashboard |
| 403 | IP not whitelisted | Add server IP in Dashboard → API Access |
| 404 | Resource not found | Verify the ID or endpoint URL |
| 429 | Daily limit reached | Upgrade plan or wait for quota reset |
Cross-Language SDK Examples
Quick boilerplate to authenticate and ping any OneNodeAPI endpoint, available in PHP, Python, Node.js, Go, Ruby and Java.
<?php
class OneNodeAPI {
private $id, $secret;
public function __construct($id, $secret) {
$this->id = $id; $this->secret = $secret;
}
public function call($endpoint, $params = []) {
$params['client_id'] = $this->id;
$params['client_secret'] = $this->secret;
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
return json_decode(curl_exec($ch), true);
}
}
$api = new OneNodeAPI('YOUR_ID', 'YOUR_SECRET');
$res = $api->call('https://onenodeapi.com/ai-backend/gateway.php', [
'prompt' => 'Hello AI!'
]);
print_r($res);
import requests
class OneNodeAPI:
def __init__(self, client_id, secret):
self.id = client_id
self.secret = secret
def call(self, endpoint, params=None):
params = params or {}
params['client_id'] = self.id
params['client_secret'] = self.secret
return requests.post(endpoint, data=params).json()
api = OneNodeAPI('YOUR_ID', 'YOUR_SECRET')
result = api.call('https://onenodeapi.com/ai-backend/gateway.php',
{'prompt': 'Hello AI!'})
print(result)
const axios = require('axios');
class OneNodeAPI {
constructor(id, secret) {
this.id = id;
this.secret = secret;
}
async call(endpoint, params = {}) {
params.client_id = this.id;
params.client_secret = this.secret;
const { data } = await axios.post(endpoint, new URLSearchParams(params));
return data;
}
}
const api = new OneNodeAPI('YOUR_ID', 'YOUR_SECRET');
api.call('https://onenodeapi.com/ai-backend/gateway.php', {
prompt: 'Hello AI!'
}).then(console.log);
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
func call(endpoint string, params map[string]string) ([]byte, error) {
params["client_id"] = "YOUR_ID"
params["client_secret"] = "YOUR_SECRET"
form := url.Values{}
for k, v := range params { form.Add(k, v) }
res, err := http.Post(endpoint, "application/x-www-form-urlencoded",
strings.NewReader(form.Encode()))
if err != nil { return nil, err }
defer res.Body.Close()
return ioutil.ReadAll(res.Body)
}
func main() {
body, _ := call("https://onenodeapi.com/ai-backend/gateway.php",
map[string]string{"prompt": "Hello AI!"})
fmt.Println(string(body))
}
require 'net/http'
require 'json'
class OneNodeAPI
def initialize(id, secret)
@id = id; @secret = secret
end
def call(endpoint, params = {})
params['client_id'] = @id
params['client_secret'] = @secret
uri = URI(endpoint)
res = Net::HTTP.post_form(uri, params)
JSON.parse(res.body)
end
end
api = OneNodeAPI.new('YOUR_ID', 'YOUR_SECRET')
puts api.call('https://onenodeapi.com/ai-backend/gateway.php',
{ 'prompt' => 'Hello AI!' })
import java.net.*;
import java.net.http.*;
import java.util.*;
public class OneNodeAPI {
public static void main(String[] args) throws Exception {
var params = "client_id=YOUR_ID"
+ "&client_secret=YOUR_SECRET"
+ "&prompt=" + URLEncoder.encode("Hello AI!", "UTF-8");
var client = HttpClient.newHttpClient();
var req = HttpRequest.newBuilder()
.uri(URI.create("https://onenodeapi.com/ai-backend/gateway.php"))
.header("Content-Type", "application/x-www-form-urlencoded")
.POST(HttpRequest.BodyPublishers.ofString(params))
.build();
var res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
}
}
Need a Helping Hand?
Our technical node is available around the clock. Reach out via email and we'll get back within a few hours.
📧 Technical Support 24/7
For UTR sync, redirect hooks, signature errors and node downtime.
support@onenodeapi.com💼 Business & Sales Mon–Sat
For higher limits, custom enterprise plans, and partnership requests.
info@onenodeapi.com