2Slides Logo
Руководство по API 2slides - Полное руководство по генерации презентаций с помощью AI
2Slides Team
14 min read

Руководство по 2slides API - Полное руководство по AI-генерации презентаций

Добро пожаловать в полное руководство по 2slides API! Это руководство проведет вас через все, что нужно знать для интеграции AI-генерации презентаций в ваши приложения.

Обзор

2slides API позволяет программно генерировать профессиональные презентации с использованием AI. С поддержкой множества типов презентаций, включая временные шкалы, дорожные карты, интеллект-карты и многое другое, вы можете создавать потрясающие слайды из простого текстового ввода.

Ключевые возможности

  • AI-генерация: Автоматическое создание профессиональных презентаций из текста
  • Множество типов шаблонов: Поддержка временных шкал, дорожных карт, интеллект-карт, питч-деков, инфографики и многого другого
  • Многоязычная поддержка: Генерация контента на нескольких языках
  • Богатая библиотека шаблонов: Доступ к сотням профессионально разработанных шаблонов
  • Пользовательские шаблоны: Загрузка и использование собственных шаблонов слайдов
  • Поиск шаблонов: Поиск шаблонов по названию, ключевым словам и тегам
  • Варианты загрузки: Получение презентаций в формате PowerPoint (.pptx)
  • Отслеживание статуса в реальном времени: Мониторинг прогресса генерации через endpoints статуса заданий

Рекомендуемые типы презентаций

Image

Все шаблоны презентаций доступны здесь: 2slides Templates. В частности, есть некоторые рекомендуемые типы презентаций, которые очень хорошо работают для конкретных целей и сценариев.

  1. Слайды с временной шкалой - Идеально подходят для временных графиков проектов и исторических событий
  2. Слайды дорожной карты - Идеальны для дорожных карт продуктов и планирования проектов
  3. Слайды интеллект-карт - Отлично подходят для построения концепций и структуры знаний

Начало работы

Базовый URL

Все API-запросы должны выполняться по адресу:

https://2slides.com

Требования

  1. Настройка аккаунта: Создайте учетную запись на 2slides.com
  2. API-ключ: Сгенерируйте API-ключ на странице управления API
  3. Кредиты: Убедитесь, что у вас достаточно кредитов для генерации слайдов (10 кредитов за страницу слайда)

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

  1. Получите свой API-ключ на странице управления API
  2. Найдите тему используя эндпоинт поиска тем, или просмотрите шаблоны, чтобы получить идентификатор темы слайда
  3. Сгенерируйте слайды с вашим контентом и выбранным идентификатором темы. Поддерживается как синхронный вызов с возвратом результирующих слайдов, так и асинхронный вызов с возвратом идентификатора задания. При использовании синхронного вызова следующие шаги 4 и 5 не требуются
  4. Проверяйте статус задания до завершения, будет предоставлен URL для скачивания сгенерированных слайдов
  5. Скачайте вашу презентацию используя предоставленный URL для скачивания

Аутентификация

Image

Все API-эндпоинты требуют аутентификации с использованием API-ключа. Вы можете управлять своими API-ключами через интерфейс управления API.

Формат API-ключа

API-ключи имеют следующий формат:

sk-2slides-{64-символьная-шестнадцатеричная-строка}

Методы аутентификации

Заголовок Authorization

Authorization: Bearer sk-2slides-your-api-key-here

Управление API-ключами

  • Максимальное количество ключей: Каждый пользователь может создать до 10 API-ключей
  • Именование ключей: Давайте своим ключам описательные имена для легкой идентификации
  • Безопасность: Храните свои API-ключи в безопасности и никогда не публикуйте их открыто
  • Ротация: Регулярно обновляйте свои API-ключи для повышения безопасности

⚠️ Важное уведомление о безопасности: Платформа 2slides НЕ хранит ваши API-ключи в открытом виде по соображениям безопасности. После генерации вы должны немедленно скопировать и надежно сохранить свой API-ключ. Если вы потеряете свой API-ключ, вам потребуется сгенерировать новый, так как восстановить оригинальный невозможно.

API Endpoints

1. Генерация слайдов (Fast PPT)

Создание слайдов (Fast PPT) из текстового ввода с использованием определенной темы.

Endpoint:

POST /api/v1/slides/generate

Headers:

Authorization: Bearer sk-2slides-your-api-key-here Content-Type: application/json

Request Body:

{ "userInput": "Содержимое вашей презентации здесь...", "themeId": "theme-uuid-here", "responseLanguage": "Auto" }

Параметры:

  • userInput
    (обязательный): Контент, для которого вы хотите создать слайды
  • themeId
    (обязательный): ID темы для генерации слайдов. Это может быть:
    • Публичные темы из галереи шаблонов
    • Ваши собственные загруженные темы (доступные через вашу учетную запись)
  • responseLanguage
    (опциональный): Язык для создаваемых слайдов. Используйте "Auto" для автоматического определения
  • mode
    (опциональный): Синхронный (sync) или асинхронный (async) вызов, "sync" по умолчанию

Доступные языки:

  • Auto
    - Автоматическое определение языка из ввода (по умолчанию)
  • English
    - English
  • Simplified Chinese
    - 简体中文
  • Traditional Chinese
    - 繁體中文
  • Spanish
    - Español
  • Arabic
    - العربية
  • Portuguese
    - Português
  • Indonesian
    - Bahasa Indonesia
  • Japanese
    - 日本語
  • Russian
    - Русский
  • Hindi
    - हिंदी
  • French
    - Français
  • German
    - Deutsch
  • Vietnamese
    - Tiếng Việt
  • Turkish
    - Türkçe
  • Polish
    - Polski
  • Italian
    - Italiano
  • Korean
    - 한국어

Ответ в режиме async:

{ "success": true, "data": { "jobId": "job-uuid-here", "status": "processing", "message": "Генерация слайдов начата. Используйте jobId для проверки статуса.", "credits": { "current": 150, "required": 30 } } }

Ответ в режиме sync:

{ "success": true, "data": { "jobId": "1pFqIww3JjquQ1T3Ysmw1", "status": "success", "message": "Слайды успешно созданы", "downloadUrl": "https://presigned-url-here", "createdAt": 1760347015388, "updatedAt": 1760347048261, "duration": 32694, "slidePageCount": 9 } }

2. Проверка статуса задачи (Fast PPT)

Проверка статуса задачи генерации слайдов (Fast PPT) и получение результатов после завершения.

Endpoint:

GET /api/v1/jobs/{jobId}

Headers:

Authorization: Bearer sk-2slides-your-api-key-here

Примеры ответов:

Обработка:

{ "success": true, "data": { "jobId": "job-uuid-here", "status": "processing", "message": "Генерация слайдов в процессе", "createdAt": 1703123456789, "updatedAt": 1703123460000 } }

Успешно:

{ "success": true, "data": { "jobId": "job-uuid-here", "status": "success", "message": "Слайды успешно созданы", "downloadUrl": "https://presigned-url-here", "createdAt": 1703123456789, "updatedAt": 1703123500000, "duration": 33211, "slidePageCount": 3 } }

Ошибка:

{ "success": true, "data": { "jobId": "job-uuid-here", "status": "failed", "message": "Не удалось создать слайды", "errorMessage": "Недостаточно кредитов для генерации", "createdAt": 1703123456789, "updatedAt": 1703123460000 } }

3. Создать слайды как эти (Nano Banana Pro)

Генерация слайдов (Nano Banana Pro) на основе референсного изображения. Этот endpoint использует синхронный режим и автоматически генерирует PDF после завершения всех слайдов.

Endpoint:

POST /api/v1/slides/create-like-this

Headers:

Authorization: Bearer sk-2slides-your-api-key-here Content-Type: application/json

Request Body:

{ "userInput": "Содержимое вашей презентации здесь...", "referenceImageUrl": "https://example.com/reference-image.jpg", "responseLanguage": "Auto", "aspectRatio": "16:9", "resolution": "2K", "page": 1 }

Параметры:

  • userInput
    (обязательный): Контент, для которого вы хотите создать слайды
  • referenceImageUrl
    (обязательный): URL референсного изображения для следования стилю дизайна. Поддерживает:
    • HTTP/HTTPS URL-адреса
    • Base64 data URL (data:image/...)
  • responseLanguage
    (опциональный): Язык для создаваемых слайдов. Используйте "Auto" для автоматического определения (по умолчанию: "Auto")
  • aspectRatio
    (опциональный): Соотношение сторон для слайдов. Формат: "ширина:высота" (по умолчанию: "16:9")
  • resolution
    (опциональный): Разрешение изображений слайдов. Варианты: "1K", "2K", "4K" (по умолчанию: "2K")
  • page
    (опциональный): Количество слайдов для генерации. Используйте 0 для автоопределения. Укажите число (>=1, макс: 100), чтобы принудительно создать такое количество слайдов. По умолчанию: 1.
  • contentDetail
    (опциональный): Уровень детализации содержимого слайдов. Варианты: "concise" (краткий, фокус на ключевых словах) или "standard" (всеобъемлющий, детальный). По умолчанию: "concise".

Ответ:

{ "success": true, "data": { "jobId": "job-uuid-here", "status": "success", "message": "Успешно создано 5 слайдов", "downloadUrl": "https://presigned-url-to-pdf.pdf", "jobUrl": "https://2slides.com/workspace?jobId=job-uuid-here", "createdAt": 1703123456789, "updatedAt": 1703123500000, "slidePageCount": 5, "successCount": 5, "failedCount": 0 } }

Значения статуса:

  • success
    : Все слайды успешно созданы, PDF доступен
  • partial
    : Некоторые слайды не удалось создать
  • failed
    : Не удалось создать все слайды

Примечание: Этот endpoint работает в синхронном режиме и дождется создания всех слайдов перед возвратом ответа.

4. Поиск тем (Fast PPT)

Поиск доступных тем слайдов (Fast PPT) по ключевому слову. Включает как публичные темы, так и ваши собственные загруженные темы.

Endpoint:

GET /api/v1/themes/search

Headers:

Authorization: Bearer sk-2slides-your-api-key-here

Параметры запроса:

  • query
    (обязательный): Ключевое слово для поиска в названии темы, описании и тегах
  • limit
    (опциональный): Максимальное количество результатов (1-100, по умолчанию 20)

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

GET /api/v1/themes/search?query=timeline&limit=10

Ответ:

{ "success": true, "data": { "total": 25, "themes": [ { "id": "theme-uuid-1", "name": "Modern Timeline", "description": "Чистый и современный шаблон таймлайна для проектных презентаций", "tags": "timeline, modern, project, clean", "themeURL": "https://2slides.com/templates/st-1759917935785-nx0z6ae54" }, { "id": "theme-uuid-2", "name": "Business Roadmap", "description": "Профессиональный шаблон дорожной карты для бизнес-планирования", "tags": "roadmap, business, planning, professional", "themeURL": "https://2slides.com/templates/st-1755509077270-sftfm616s" } ] } }

Ограничение частоты запросов

API реализует ограничение частоты запросов для обеспечения справедливого использования и стабильности системы. Разные endpoints имеют разные лимиты:

EndpointВременное окноМакс. запросовОписание
/api/v1/slides/generate
1 минута6 запросовОсновной endpoint генерации
/api/v1/slides/create-like-this
1 минута6 запросовСоздание слайдов из эталонного изображения
/api/v1/jobs
1 минута10 запросовПроверка статуса задачи
/api/v1/themes/search
1 минута30 запросовПоиск тем

Заголовки ограничения частоты запросов

При превышении лимитов API возвращает ответ

429 Too Many Requests
с этими заголовками:

HTTP/1.1 429 Too Many Requests X-RateLimit-Limit: 6 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1703123600 Retry-After: 45

Обработка ограничений частоты запросов

Вам необходимо тщательно обрабатывать лимиты частоты вызовов API, вот пример на Javascript.

async function makeApiRequest(url, options) { try { const response = await fetch(url, options); if (response.status === 429) { const retryAfter = response.headers.get('Retry-After'); console.log(`Превышен лимит запросов. Повторите попытку через ${retryAfter} секунд`); await new Promise(resolve => setTimeout(resolve, retryAfter * 1000)); return makeApiRequest(url, options); // Повторная попытка } return response; } catch (error) { console.error('Ошибка API-запроса:', error); throw error; } }

Система кредитов

2Slides использует систему кредитов для генерации слайдов. Каждая страница слайда стоит 10 кредитов.

Правила кредитов

  • Новые пользователи: Получают 880 бесплатных кредитов при регистрации
  • Стоимость: 10 кредитов за страницу слайда (Fast PPT), 100 кредитов за страницу 1K/2K Nano Banana Pro, 200 кредитов за страницу 4K Nano Banana Pro
  • Минимум: Пользователям необходимо минимум 10 кредитов для начала генерации
  • Списание: Кредиты списываются только после успешной генерации
  • Возврат: Кредиты возвращаются при неудачной генерации

Проверка кредитов

Вы можете проверить баланс кредитов через панель управления аккаунтом или изучив информацию о кредитах в ответах API.

Покупка кредитов

Дополнительные кредиты можно приобрести через страницу тарифов различными способами оплаты.

Примеры

Полный пример рабочего процесса

Вот полный пример генерации слайдов с использованием API 2slides на Javascript и Python:

const API_KEY = 'sk-2slides-your-api-key-here'; const BASE_URL = 'https://2slides.com'; async function generateSlides() { try { // Шаг 1: Поиск темы const themeResponse = await fetch( `${BASE_URL}/api/v1/themes/search?query=timeline&limit=5`, { headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' } } ); const themeData = await themeResponse.json(); const themeId = themeData.data.themes[0].id; // Шаг 2: Генерация слайдов const generateResponse = await fetch( `${BASE_URL}/api/v1/slides/generate`, { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ userInput: "Create a timeline for our product development: Q1 - Research and planning, Q2 - MVP development, Q3 - Beta testing, Q4 - Public launch", themeId: themeId, responseLanguage: "English", mode: "async" }) } ); const generateData = await generateResponse.json(); const jobId = generateData.data.jobId; // Шаг 3: Опрос статуса выполнения let jobStatus; do { await new Promise(resolve => setTimeout(resolve, 2000)); // Ожидание 2 секунды const statusResponse = await fetch( `${BASE_URL}/api/v1/jobs/${jobId}`, { headers: { 'Authorization': `Bearer ${API_KEY}` } } ); jobStatus = await statusResponse.json(); console.log(`Статус: ${jobStatus.data.status}`); } while (jobStatus.data.status === 'processing' || jobStatus.data.status === 'pending'); // Шаг 4: Обработка результата if (jobStatus.data.status === 'success') { console.log('Слайды успешно сгенерированы!'); console.log('URL для скачивания:', jobStatus.data.downloadUrl); console.log('Количество сгенерированных страниц:', jobStatus.data.slidePageCount); // Скачивание файла const downloadResponse = await fetch(jobStatus.data.downloadUrl); const blob = await downloadResponse.blob(); // Создание ссылки для скачивания const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'presentation.pptx'; a.click(); window.URL.revokeObjectURL(url); } else { console.error('Ошибка генерации:', jobStatus.data.errorMessage); } } catch (error) { console.error('Ошибка:', error); } } // Запуск примера generateSlides();

Пример на Python

import requests import time import json API_KEY = 'sk-2slides-your-api-key-here' BASE_URL = 'https://2slides.com' def generate_slides(): headers = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } try: # Шаг 1: Поиск темы theme_response = requests.get( f'{BASE_URL}/api/v1/themes/search', params={'query': 'roadmap', 'limit': 5}, headers=headers ) theme_data = theme_response.json() theme_id = theme_data['data']['themes'][0]['id'] # Шаг 2: Генерация слайдов generate_payload = { 'userInput': 'Create a product roadmap for our mobile app: Phase 1 - Core features, Phase 2 - Advanced features, Phase 3 - AI integration', 'themeId': theme_id, 'responseLanguage': 'English', 'mode': 'async' } generate_response = requests.post( f'{BASE_URL}/api/v1/slides/generate', headers=headers, json=generate_payload ) generate_data = generate_response.json() job_id = generate_data['data']['jobId'] # Шаг 3: Опрос статуса выполнения while True: time.sleep(2) # Ожидание 2 секунды status_response = requests.get( f'{BASE_URL}/api/v1/jobs/{job_id}', headers=headers ) status_data = status_response.json() status = status_data['data']['status'] print(f'Статус: {status}') if status in ['success', 'failed']: break # Шаг 4: Обработка результата if status == 'success': print('Слайды успешно сгенерированы!') print(f'URL для скачивания: {status_data["data"]["downloadUrl"]}') print(f'Количество сгенерированных страниц: {status_data["data"]["slidePageCount"]}') # Скачивание файла download_response = requests.get(status_data['data']['downloadUrl']) with open('presentation.pptx', 'wb') as f: f.write(download_response.content) print('Файл скачан как presentation.pptx') else: print(f'Ошибка генерации: {status_data["data"]["errorMessage"]}') except Exception as error: print(f'Ошибка: {error}') # Запуск примера generate_slides()

Примеры cURL

Поиск тем:

curl -X GET "https://2slides.com/api/v1/themes/search?query=timeline&limit=5" \ -H "Authorization: Bearer sk-2slides-your-api-key-here" \ -H "Content-Type: application/json"

Генерация слайдов:

curl -X POST "https://2slides.com/api/v1/slides/generate" \ -H "Authorization: Bearer sk-2slides-your-api-key-here" \ -H "Content-Type: application/json" \ -d '{ "userInput": "Create a timeline for our project milestones", "themeId": "theme-uuid-here", "responseLanguage": "English", "mode": "async" }'

Проверка статуса задачи:

curl -X GET "https://2slides.com/api/v1/jobs/job-uuid-here" \ -H "Authorization: Bearer sk-2slides-your-api-key-here"

Обработка ошибок

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

Распространенные ответы с ошибками

400 Bad Request:

{ "success": false, "error": "userInput is required and must be a non-empty string" }

401 Unauthorized:

{ "success": false, "error": "Authentication required" }

403 Forbidden:

{ "success": false, "error": "Access denied" }

404 Not Found:

{ "success": false, "error": "Theme not found" }

429 Too Many Requests:

{ "success": false, "error": "Rate limit exceeded" }

500 Internal Server Error:

{ "success": false, "error": "Internal server error" }

Лучшие практики обработки ошибок

async function handleApiRequest(url, options) { try { const response = await fetch(url, options); const data = await response.json(); if (!response.ok) { switch (response.status) { case 400: throw new Error(`Неверный запрос: ${data.error}`); case 401: throw new Error('Ошибка аутентификации. Пожалуйста, проверьте ваш API-ключ.'); case 403: throw new Error('Доступ запрещен. У вас может не быть прав для этого ресурса.'); case 404: throw new Error('Ресурс не найден.'); case 429: throw new Error('Превышен лимит запросов. Пожалуйста, повторите попытку позже.'); case 500: throw new Error('Ошибка сервера. Пожалуйста, повторите попытку позже.'); default: throw new Error(`Ошибка API: ${data.error || 'Неизвестная ошибка'}`); } } return data; } catch (error) { if (error.name === 'TypeError' && error.message.includes('fetch')) { throw new Error('Ошибка сети. Пожалуйста, проверьте ваше интернет-соединение.'); } throw error; } }

Лучшие практики

1. Безопасность API-ключей

  • Никогда не раскрывайте API-ключи в клиентском коде или публичных репозиториях
  • Используйте переменные окружения для безопасного хранения API-ключей
  • Регулярно обновляйте ключи для повышения безопасности
  • Отслеживайте использование ключей через панель управления API
  • Храните ключи безопасно: Помните, что 2Slides не хранит ваши API-ключи, поэтому вы должны хранить их в безопасности
  • Создавайте резервные копии ключей: Храните API-ключи в безопасном менеджере паролей или зашифрованном хранилище

2. Эффективное использование API

  • Кэшируйте результаты поиска тем, чтобы избежать повторных запросов
  • Реализуйте правильные интервалы опроса для проверки статуса задачи (2-5 секунд)
  • Корректно обрабатывайте ограничения частоты запросов с экспоненциальной задержкой
  • Группируйте операции когда возможно, чтобы сократить количество вызовов API

3. Обработка ошибок

  • Всегда проверяйте коды статуса ответа
  • Реализуйте логику повторных попыток для временных сбоев
  • Логируйте ошибки должным образом для отладки
  • Предоставляйте понятные сообщения об ошибках для пользователей

4. Оптимизация производительности

  • Используйте подходящие интервалы опроса, чтобы избежать лишних запросов
  • Реализуйте таймауты запросов, чтобы предотвратить зависание запросов
  • Кэшируйте часто используемые данные, такие как информация о темах
  • Отслеживайте использование кредитов, чтобы избежать неожиданных расходов

5. Рекомендации по контенту

  • Предоставляйте четкие, структурированные данные для лучшей генерации слайдов
  • Используйте подходящие темы для вашего типа контента
  • Указывайте язык при необходимости для международного контента
  • Делайте контент кратким для оптимального размещения на слайдах

Поддержка и ресурсы

Документация и ресурсы

Получение помощи

  • Песочница API: Тестируйте ваши вызовы API прямо в браузере на 2slides.com/api
  • Панель управления аккаунтом: Управляйте использованием кредитов на 2slides.com/account
  • Поддержка: Свяжитесь со службой поддержки через главный сайт

Сообщество и обновления

  • Обновления функций: Будьте в курсе новых функций и улучшений
  • Библиотека шаблонов: Регулярное добавление новых профессиональных шаблонов
  • Улучшения API: Постоянные улучшения производительности и функций API

Заключение

API 2Slides предоставляет мощный и гибкий способ программной генерации профессиональных презентаций. Благодаря обширному набору функций, надежной обработке ошибок и обширной библиотеке шаблонов вы можете интегрировать генерацию слайдов на базе AI в любое приложение или рабочий процесс.

Начните создавать потрясающие презентации уже сегодня с API 2Slides! Посетите 2slides.com/api, чтобы получить свой API-ключ и начать создавать.

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free