JsonBox API

REST API для хранения JSON без настройки базы данных

JsonBox API

Сохраняйте, получайте и обновляйте JSON-данные через HTTP. Пара ключей, понятные методы, готовая Postman-коллекция и веб-страницы на базе сохраненных данных.

store request
curl -X POST "https://jsonbox.ru/api.php?action=store" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"data":{"status":"ready","items":[1,2,3]}}'
200 OK {"success": true, "message": "Data stored successfully"}
351 аккаунтов за всё время
307 065 обработанных запросов
1024 KB данных на пользователя
1000 POST-запросов в день

Быстрый старт

Три запроса до рабочего хранилища

Регистрация возвращает полный ключ и read-only ключ. API начинает работать сразу, а email нужно подтвердить в течение 3 дней.

1

Зарегистрируйте email

POST /api.php?action=register
{"email":"user@example.com"}
2

Сохраните JSON

POST /api.php?action=store
Authorization: Bearer YOUR_KEY
{"data":{"name":"JsonBox"}}
3

Получите данные

GET /api.php?action=get
Authorization: Bearer YOUR_KEY

Ключи и авторизация

Для записи используйте полный ключ, для чтения можно read-only

В новых интеграциях передавайте ключ в заголовке Authorization: Bearer YOUR_KEY или X-API-Key: YOUR_KEY. Старый api_key в URL или JSON-body поддерживается для совместимости, но считается deprecated.

Полный ключ api_key

Нужен для записи, удаления, статистики, настроек и перегенерации ключей.

Read-only ключ api_key_read_only

Начинается с ro_. Подходит для чтения данных и публичных JsonBox Pages.

Email-подтверждение

Ключи выдаются сразу. Если email не подтвердить вовремя, аккаунт может быть заблокирован.

Документация API

Основные методы

Ниже перечислены пользовательские action’ы, которые есть в текущем API.

POST /api.php?action=register

Создает пользователя, возвращает api_key и api_key_read_only, отправляет письмо подтверждения.

POST /api.php?action=store

Сохраняет или обновляет JSON через поля data и data_update.

GET /api.php?action=get

Возвращает сохраненные данные. Работает с полным и read-only ключом.

GET /api.php?action=get_ip

Возвращает IP-адрес клиента. Работает с полным и read-only ключом.

DELETE /api.php?action=delete

Удаляет данные пользователя.

POST /api.php?action=regenerate_key

Создает новую пару API-ключей при компрометации старых.

GET /api.php?action=stats

Показывает статистику использования аккаунта.

GET /api.php?action=get_settings

Возвращает пользовательские настройки, включая web_display_enabled и web_theme_style.

POST /api.php?action=set_setting

Сохраняет одну настройку за запрос: setting_name и setting_value.

GET /api.php?action=activation_status

Показывает статус подтверждения email и блокировки аккаунта.

POST /api.php?action=activate

Служебное подтверждение email по token из письма.

POST /api.php?action=resend_activation

Повторно отправляет письмо подтверждения на зарегистрированный email.

JsonBox Pages

Публикуйте данные как простые веб-страницы

Pages используют read-only ключ api_key_read_only, начинающийся с ro_. Полный ключ для публичного просмотра не подходит.

  • страницы собираются из JSON-структуры pages или из legacy-формата page + items;
  • можно задать заголовок, подзаголовок, карточки, изображения и footer;
  • тема переключается настройкой web_theme_style или параметром theme=light|dark.
page URL
https://jsonbox.ru/page.php?key=ro_XXXXXX&page=news-tech
minimal data
{
  "data": {
    "pages": {
      "news-tech": {
        "title": "Новости технологий",
        "items": []
      }
    }
  }
}

Postman

Готовая коллекция для проверки API

В коллекции уже настроены сохранение, частичное обновление, получение и удаление данных, настройки, перегенерация ключа и JsonBox Pages. API-ключ указывается в переменной окружения.

Примеры кода

Готовые фрагменты для популярных языков

Все примеры используют рекомендуемый заголовок Authorization: Bearer.

cURL
curl -X POST "https://jsonbox.ru/api.php?action=store" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"data":{"message":"Hello from cURL!"}}'

curl "https://jsonbox.ru/api.php?action=get" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import requests

base_url = "https://jsonbox.ru"
api_key = "YOUR_API_KEY"

requests.post(
    f"{base_url}/api.php?action=store",
    json={"data": {"message": "Hello from Python!"}},
    headers={"Authorization": f"Bearer {api_key}"}
)

response = requests.get(
    f"{base_url}/api.php?action=get",
    headers={"Authorization": f"Bearer {api_key}"}
)
print(response.json()["data"])
PHP
<?php
$apiKey = 'YOUR_API_KEY';
$payload = json_encode([
    'data' => ['message' => 'Hello from PHP!']
]);

$context = stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => "Content-Type: application/json\r\nAuthorization: Bearer {$apiKey}",
        'content' => $payload
    ]
]);

file_get_contents('https://jsonbox.ru/api.php?action=store', false, $context);
?>
Node.js
const axios = require('axios');

const baseURL = 'https://jsonbox.ru';
const apiKey = 'YOUR_API_KEY';

await axios.post(`${baseURL}/api.php?action=store`, {
  data: { message: 'Hello from Node.js!' }
}, {
  headers: { Authorization: `Bearer ${apiKey}` }
});

const response = await axios.get(`${baseURL}/api.php?action=get`, {
  headers: { Authorization: `Bearer ${apiKey}` }
});
console.log(response.data.data);
JavaScript
const baseURL = 'https://jsonbox.ru';
const apiKey = 'YOUR_API_KEY';

await fetch(`${baseURL}/api.php?action=store`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${apiKey}`
  },
  body: JSON.stringify({
    data: { message: 'Hello from JavaScript!' }
  })
});

const response = await fetch(`${baseURL}/api.php?action=get`, {
  headers: { 'Authorization': `Bearer ${apiKey}` }
});
console.log((await response.json()).data);

Условия

Бесплатно для разумной нагрузки

Сервис подходит для прототипов, личных проектов, интеграционных тестов и небольших рабочих сценариев.

Лимиты

До 1024 KB данных на пользователя и 1000 POST-запросов в день на API-ключ.

Аккаунты

Неактивные аккаунты удаляются через 30 дней. Новые регистрации ограничены по IP, чтобы снижать мусорные аккаунты.

Запрещено

Нельзя использовать сервис для спама, вредоносного контента и незаконной деятельности.

Данные

Важные данные лучше регулярно сохранять у себя. Сервис бесплатный и рассчитан на разумную нагрузку.

Email

Регистрация требует корректный email: проверяются синтаксис, домен и базовые DNS-записи.

Доступность

Ориентир по доступности сервиса: 99.5% времени работы.