API Documentation
Two endpoints. One API key. Use it from any language that can make an HTTP request.
Authentication
Every request needs your API key, passed as the apikey query parameter.
Find yours on the dashboard after you
register. Keys look like otp1_abc123xyz.
Endpoints
https://api2.webnotronics.com/publish.php?apikey=KEY&text=YOUR_TEXTStores text (replacing any previous value) and returns JSON. Max 10000 characters. Remember to URL-encode the text.
https://api2.webnotronics.com/read.php?apikey=KEYReturns the latest stored text with its update time.
Responses
Publish success
{ "status": "success", "message": "Text saved" }
Read success
{ "status": "success", "text": "Hello World", "updated": "2026-07-09 10:15:00" }
Error
{ "status": "error", "message": "Invalid API key" }
Error HTTP codes: 400 missing param · 401 invalid key · 403 disabled key · 413 text too long.
Code examples
Replace otp1_abc123xyz with your own API key.
# Publish curl "https://api2.webnotronics.com/publish.php?apikey=otp1_abc123xyz&text=Hello%20World" # Read curl "https://api2.webnotronics.com/read.php?apikey=otp1_abc123xyz"
const KEY = "otp1_abc123xyz";
const BASE = "https://api2.webnotronics.com";
// Publish
await fetch(`${BASE}/publish.php?apikey=${KEY}&text=${encodeURIComponent("Hello World")}`);
// Read
const res = await fetch(`${BASE}/read.php?apikey=${KEY}`);
const data = await res.json();
console.log(data.text, data.updated);
import requests, urllib.parse
KEY = "otp1_abc123xyz"
BASE = "https://api2.webnotronics.com"
# Publish
requests.get(f"{BASE}/publish.php",
params={"apikey": KEY, "text": "Hello World"})
# Read
data = requests.get(f"{BASE}/read.php",
params={"apikey": KEY}).json()
print(data["text"], data["updated"])
<?php
$key = "otp1_abc123xyz";
$base = "https://api2.webnotronics.com";
// Publish
file_get_contents("$base/publish.php?apikey=$key&text=" . urlencode("Hello World"));
// Read
$data = json_decode(file_get_contents("$base/read.php?apikey=$key"), true);
echo $data["text"], " ", $data["updated"];
// Node 18+ (built-in fetch)
const KEY = "otp1_abc123xyz";
const BASE = "https://api2.webnotronics.com";
await fetch(`${BASE}/publish.php?apikey=${KEY}&text=${encodeURIComponent("Hello World")}`);
const res = await fetch(`${BASE}/read.php?apikey=${KEY}`);
console.log(await res.json());
import java.net.http.*;
import java.net.URI;
var client = HttpClient.newHttpClient();
String key = "otp1_abc123xyz", base = "https://api2.webnotronics.com";
// Publish
client.send(HttpRequest.newBuilder(
URI.create(base + "/publish.php?apikey=" + key +
"&text=" + java.net.URLEncoder.encode("Hello World", "UTF-8"))
).build(), HttpResponse.BodyHandlers.ofString());
// Read
var res = client.send(HttpRequest.newBuilder(
URI.create(base + "/read.php?apikey=" + key)).build(),
HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
package main
import ("io"; "net/http"; "net/url"; "fmt")
func main() {
key, base := "otp1_abc123xyz", "https://api2.webnotronics.com"
// Publish
http.Get(base + "/publish.php?apikey=" + key +
"&text=" + url.QueryEscape("Hello World"))
// Read
res, _ := http.Get(base + "/read.php?apikey=" + key)
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
require "net/http"; require "json"; require "cgi"
key = "otp1_abc123xyz"
base = "https://api2.webnotronics.com"
# Publish
Net::HTTP.get(URI("#{base}/publish.php?apikey=#{key}&text=#{CGI.escape('Hello World')}"))
# Read
data = JSON.parse(Net::HTTP.get(URI("#{base}/read.php?apikey=#{key}")))
puts data["text"], data["updated"]
using System.Net.Http;
var http = new HttpClient();
string key = "otp1_abc123xyz", baseUrl = "https://api2.webnotronics.com";
// Publish
await http.GetAsync($"{baseUrl}/publish.php?apikey={key}&text={Uri.EscapeDataString("Hello World")}");
// Read
string json = await http.GetStringAsync($"{baseUrl}/read.php?apikey={key}");
Console.WriteLine(json);
#!/usr/bin/env bash KEY="otp1_abc123xyz" BASE="https://api2.webnotronics.com" # Publish curl -s "$BASE/publish.php?apikey=$KEY&text=Hello%20World" # Read latest text (needs jq) curl -s "$BASE/read.php?apikey=$KEY" | jq -r '.text'
Notes & limits
Each account stores one text value — publishing overwrites the previous one.
Maximum length is 10000 characters. Always URL-encode the
text parameter (spaces become %20, etc.). The service is
free; keep your API key private, since anyone holding it can read and overwrite your text.