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

Интегрируйте мощный AI для обработки изображений в свои приложения. Простая интеграция, прозрачные цены.

Введение

FreeNude API предоставляет доступ к современным нейросетевым технологиям для обработки изображений. Интегрируйте AI-трансформации в свои приложения за несколько минут.

Base URL

https://freenude.io/api/v1

Возможности

6 стилей

Nude, Business, Bikini, Lingerie, Sport, BDSM

Настройка параметров

Размер груди: AUTO, S, M, L

Быстрая обработка

Результат за 1-3 секунды

Прозрачные цены

$0.15 за генерацию

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

  1. 1 Зарегистрируйтесь и получите API ключ
  2. 2 Пополните баланс в личном кабинете
  3. 3 Отправьте первый запрос

Авторизация

Все запросы к API требуют авторизации через API ключ в заголовке X-Api-Key.

HTTP Header
X-Api-Key: fnd_your_32_character_api_key_here

Безопасность

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

Получение API ключа

После регистрации ключ доступен в личном кабинете. Формат: fnd_ + 32 символа.

Проверка баланса

GET /api/v1/balance

Получение информации о текущем балансе и расчёт доступных генераций.

Пример запроса

cURL
curl -X GET https://freenude.io/api/v1/balance \
  -H "X-Api-Key: fnd_your_api_key_here"

Ответ (200 OK)

JSON
{
  "ok": true,
  "balance": 25.50,
  "currency": "USD",
  "pricePerGeneration": 0.15,
  "estimatedGenerations": 170
}

Поля ответа

Поле Тип Описание
ok boolean Статус выполнения запроса
balance number Текущий баланс в USD
currency string Валюта баланса (всегда "USD")
pricePerGeneration number Стоимость одной генерации в USD
estimatedGenerations number Количество доступных генераций

Обработка изображения

POST /api/v1/process

Отправка изображения для обработки с применением выбранного стиля.

Параметры (multipart/form-data)

file File Обязательный

Файл изображения. Форматы: JPG, PNG, WebP, GIF. Макс. размер: 3MB.

style String Обязательный

Стиль обработки. Допустимые значения:

Nude Business Bikini Lingerie Sport BDSM
breast_size String Опциональный

Размер груди. По умолчанию: AUTO

AUTO S M L

Пример запроса

cURL
curl -X POST https://freenude.io/api/v1/process \
  -H "X-Api-Key: fnd_your_api_key_here" \
  -F "file=@/path/to/image.jpg" \
  -F "style=Nude" \
  -F "breast_size=M"

Ответ (200 OK)

JSON
{
  "ok": true,
  "image_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
  "style": "Nude",
  "breast_size": "M",
  "cost": 0.05,
  "balance": 24.95,
  "processing_time_ms": 1230
}

Важно знать

Изображения возвращаются в формате base64 (data URI). Декодируйте и сохраняйте результаты на своей стороне. Стоимость генерации может быть изменена в настройках системы.

Коды ошибок

API использует стандартные HTTP коды статуса и возвращает детальную информацию об ошибках.

Формат ошибки

{
  "ok": false,
  "error": "ERROR_CODE",
  "message": "Описание ошибки"
}

Список ошибок

HTTP Код Описание
401 UNAUTHORIZED Неверный или отсутствующий API ключ
403 ACCOUNT_INACTIVE Аккаунт заблокирован или неактивен
402 INSUFFICIENT_BALANCE Недостаточно средств на балансе
400 INVALID_STYLE Неверный стиль обработки
400 FILE_REQUIRED Файл не был загружен
413 FILE_TOO_LARGE Размер файла превышает 3MB
429 RATE_LIMIT_EXCEEDED Превышен лимит запросов
500 INTERNAL_ERROR Внутренняя ошибка сервера

Примеры кода

JavaScript (Node.js)

JavaScript
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

async function processImage() {
  const form = new FormData();
  form.append('file', fs.createReadStream('./image.jpg'));
  form.append('style', 'Nude');
  form.append('breast_size', 'M');

  try {
    const response = await axios.post(
      'https://freenude.io/api/v1/process',
      form,
      {
        headers: {
          'X-Api-Key': process.env.FREENUDE_API_KEY,
          ...form.getHeaders()
        }
      }
    );
    
    console.log('Image (base64):', response.data.image_base64);
    console.log('Balance:', response.data.balance);
    console.log('Cost:', response.data.cost);
  } catch (error) {
    console.error('Error:', error.response?.data);
  }
}

processImage();

Python

Python
import requests
import os

def process_image():
    url = 'https://freenude.io/api/v1/process'
    headers = {'X-Api-Key': os.getenv('FREENUDE_API_KEY')}
    
    files = {'file': open('image.jpg', 'rb')}
    data = {
        'style': 'Nude',
        'breast_size': 'M'
    }
    
    response = requests.post(
        url,
        headers=headers,
        files=files,
        data=data
    )
    
    if response.status_code == 200:
        result = response.json()
        print(f"Image (base64): {result['image_base64'][:50]}...")
        print(f"Balance: ${result['balance']}")
        print(f"Cost: ${result['cost']}")
    else:
        print(f"Error: {response.json()}")

process_image()

PHP

PHP
<?php
$apiKey = getenv('FREENUDE_API_KEY');
$url = 'https://freenude.io/api/v1/process';

$file = new CURLFile('image.jpg', 'image/jpeg');
$postData = [
    'file' => $file,
    'style' => 'nude',
    'breast_size' => 'M'
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-Api-Key: $apiKey"
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($httpCode === 200) {
    $result = json_decode($response, true);
    echo "URL: " . $result['imageUrl'] . "\n";
    echo "Balance: $" . $result['remainingBalance'];
} else {
    echo "Error: $response";
}
?>

Лимиты и ограничения

Макс. размер файла

3 MB

Форматы

JPG, PNG, WebP, GIF

Стоимость

$0.05 / генерация

Формат ответа

Base64 (data URI)

Мониторинг использования

Отслеживайте статистику и баланс в личном кабинете