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

Начните с создания вашего API key

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

Create your API key

Четыре шага до вашей первой 3D модели, используя Meshy REST API.


1Получите ваш API key

Создайте API key в настройках вашего аккаунта — вы не сможете его снова просмотреть после этого экрана, поэтому сохраните его в безопасном месте. Каждый запрос аутентифицируется с использованием токена Bearer в заголовке Authorization — смотрите аутентификация.

Откройте Настройки API из меню API, затем создайте ваш ключ


2Создайте первый запрос Изображение в 3D

Экспортируйте ваш ключ, затем создайте вашу первую задачу с Изображение в 3D. Работа с текстовым prompt'ом или несколькими фото? Смотрите Текст в 3D или Мульти-изображение в 3D.

Экспортируйте ваш ключ

export MESHY_API_KEY="<your-api-key>"

Каждый пример ниже использует это фото — замените своим image_url, чтобы попробовать что-то другое.

Пример фото кота, использованное в качестве входного параметра Изображение в 3D в этом руководстве
Пример ввода

Запрос

POST
/openapi/v1/image-to-3d
curl https://api.meshy.ai/openapi/v1/image-to-3d \
  -X POST \
  -H "Authorization: Bearer ${MESHY_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://docs.meshy.ai/images/api/quick-start/source-photo.webp"
  }'

3Проверьте статус задачи

Запросы сразу возвращают ID задачи. Опросите тот же эндпоинт, пока status не станет равен SUCCEEDED — замените <task_id> ниже на ID, полученный во втором шаге.

Запрос

GET
/openapi/v1/image-to-3d/:id
curl https://api.meshy.ai/openapi/v1/image-to-3d/<task_id> \
  -H "Authorization: Bearer ${MESHY_API_KEY}"

Response — SUCCEEDED

{
  "id": "018a210d-8ba4-705c-b111-1f1776f7f578",
  "status": "SUCCEEDED",
  "progress": 100,
  "model_urls": {
    "glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
    "fbx": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.fbx?Expires=***"
  },
  "thumbnail_url": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/preview.png?Expires=***",
  "task_error": {
    "message": ""
  }
}

4Загрузите вашу модель

Заберите модель из model_urls в ответе выше. Каждый формат (GLB, FBX, OBJ, USDZ, STL) имеет подписанный, ограниченный по времени URL — или пропустите командную строку и вставьте URL прямо в адресную строку браузера, чтобы скачать её.

Загрузка

model_urls.glb
curl -L "<model_urls.glb из ответа выше>" -o model.glb
Результирующая 3D модель, сгенерированная из примерного фото кота
Ваш результат

Соберите всё вместе

Предпочитаете один скрипт, который делает всё — создаёт, опрашивает, загружает?

Полный скрипт

import axios from 'axios';
import fs from 'fs';

const headers = { Authorization: `Bearer ${process.env.MESHY_API_KEY}` };
const imageUrl = 'https://docs.meshy.ai/images/api/quick-start/source-photo.webp';

// 1. Создайте задачу
const { data: created } = await axios.post(
  'https://api.meshy.ai/openapi/v1/image-to-3d',
  { image_url: imageUrl },
  { headers },
);
const taskId = created.result;

// 2. Опрос до завершения
let task;
while (true) {
  const { data } = await axios.get(`https://api.meshy.ai/openapi/v1/image-to-3d/${taskId}`, { headers });
  task = data;
  if (task.status === 'SUCCEEDED' || task.status === 'FAILED') break;
  await new Promise((resolve) => setTimeout(resolve, 5000));
}

// 3. Загрузите результат
const { data: model } = await axios.get(task.model_urls.glb, { responseType: 'arraybuffer' });
fs.writeFileSync('model.glb', model);
console.log('Saved model.glb');

Исследуйте общие рабочие процессы


Следующие шаги

  • Предпочитаете пользовательский интерфейс? Попробуйте API Playground — настройте запрос, запустите его и скопируйте сгенерированный код.
  • Посмотрите полное API справочник для каждого эндпоинта.
  • Проверьте Цены, Лимиты скорости, и Ошибки перед переходом к производству.
  • Следите за журнал изменений за обновлениями и исправлениями ошибок.
  • Есть замечания или проблемы? Присоединяйтесь к нашему Discord сообществу — мы будем рады услышать вас!