API de Fidget Colapsável do Creative Lab
Transforme uma fotografia num brinquedo fidget colapsável imprimível de uma só vez numa única tarefa. A silhueta do sujeito transforma-se em anéis concêntricos aninhados que colapsam na horizontal e voltam a esticar-se. O brinquedo é impresso de uma só peça, sem montagem.
POST /openapi/creative-lab/fidget-collapsible/v1
Ao contrário dos outros endpoints do Creative Lab, este não tem fases separadas de protótipo e de construção. Não existem imagens candidatas entre as quais escolher, pelo que uma única tarefa transforma a fotografia num modelo 3D.
O pedido também não tem definições de geometria. A aplicação web permite definir o tamanho, o número de camadas, a largura do espaço, a espessura de parede, a profundidade de extrusão e o abaulamento. Todas as tarefas da API utilizam os mesmos valores predefinidos para estes parâmetros.
Criar uma tarefa de Fidget Colapsável
Gera um modelo de fidget colapsável a partir de uma fotografia. Para os campos da tarefa, consulte O objeto da tarefa Fidget Colapsável.
Cada tarefa custa 6 créditos e requer um plano pago.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1 \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
Response
{
"result": "018a210d-8ba4-705c-b111-1f1776f7f578"
}
Parâmetros
- Name
- image_url
- Type
- string
- Obrigatório
- Description
A fotografia a transformar num fidget colapsável, como um URL público ou um data URI (
data:image/jpeg;base64,<your base64-encoded image data>).A imagem deve ser um ficheiro JPG, JPEG, PNG ou WebP de, no máximo, 20 MB.
A silhueta do sujeito torna-se nos anéis, pelo que um sujeito com um contorno único e fechado funciona melhor. Um fundo com muitos elementos, vários sujeitos separados, ou formas muito finas podem deixar área insuficiente para as paredes aninhadas. Nesse caso, a tarefa falha.
- Name
- name
- Type
- string
- Description
Um nome para a tarefa, com até 100 carateres. É devolvido no campo
nameda tarefa, e a Meshy não o grava no modelo. Um nome mais longo devolve400.
Retorna
O campo result contém o ID da nova tarefa. Obtenha a tarefa ou transmita-a em streaming até que status seja SUCCEEDED. Depois, transfira o ficheiro STL imprimível a partir de model_urls.stl. Para pré-visualizar primeiro o modelo, transfira o ficheiro GLB a partir de model_urls.glb quando estiver presente.
Modos de falha
- Name
400 - Bad Request- Description
O pedido não pode ser executado. Por exemplo:
image_urlestá em falta.- A imagem não é um ficheiro JPG, JPEG, PNG ou WebP.
- A imagem é demasiado pequena, excede os 20 MB, ou excede o número máximo de píxeis.
- A Meshy não consegue transferir a imagem, por exemplo porque o URL devolve
404ou expira o tempo de espera. - O data URI não é um base64 válido.
- A imagem foi assinalada como NSFW.
A mensagem de erro indica qual o problema encontrado. Corrija o pedido e envie-o novamente.
- Name
401 - Unauthorized- Description
A chave de API está em falta ou é inválida. Verifique o cabeçalho
Authorization.
- Name
402 - Payment Required- Description
Aplica-se uma das seguintes situações:
- A conta não tem créditos suficientes.
- A chave de API, o espaço de trabalho ou o membro atingiu o limite de créditos.
- A conta está num plano gratuito.
Verifique os seus créditos e plano, e tente novamente.
- Name
403 - Forbidden- Description
A sua equipa tem a Filtragem de IP ativada, e a Meshy assinalou a imagem por propriedade intelectual de terceiros. Envie uma imagem sobre a qual tem os direitos de utilização.
- Name
429 - Too Many Requests- Description
Um dos seguintes limites foi atingido:
- Enviou mais pedidos do que o seu limite de taxa permite. Aguarde alguns segundos e tente novamente. Consulte Limites de taxa.
- Há demasiadas tarefas suas em fila de espera ou em execução. Aguarde que algumas terminem e tente novamente.
- Num plano ilimitado sem créditos restantes, atingiu o número de tarefas que podem ser executadas sem créditos. Aguarde que uma tarefa termine, ou adicione créditos.
- Name
500 - Internal Server Error- Description
A Meshy encontrou um erro de servidor, por exemplo porque não conseguiu executar a verificação de propriedade intelectual na imagem. A Meshy não cria a tarefa, e reembolsa quaisquer créditos que tenha cobrado. Tente o pedido novamente.
Obter uma tarefa Collapsible Fidget
Devolve uma tarefa Collapsible Fidget. Apenas são devolvidas tarefas criadas com este endpoint. Uma tarefa de outro endpoint do Creative Lab, ou uma criada na aplicação web, devolve 404.
Para os campos, consulte O objeto da tarefa Collapsible Fidget.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parâmetros
- Name
- id
- Type
- path
- Description
O ID da tarefa da resposta de criação.
Devoluções
O objeto da tarefa Collapsible Fidget.
Modos de falha
- Name
400 - Bad Request- Description
idnão é um ID de tarefa válido. Envie o IDresultda resposta de criação.
- Name
403 - Forbidden- Description
A sua equipa tem a opção IP Filtering ativada, e a Meshy sinalizou a imagem da tarefa por propriedade intelectual de terceiros. As equipas no plano Enterprise não recebem este erro. Crie uma tarefa a partir de uma imagem cujos direitos de utilização possui.
- Name
404 - Not Found- Description
Nenhuma tarefa Collapsible Fidget com este ID pertence à sua conta, ou a tarefa não foi criada com este endpoint. Verifique o ID.
- Name
500 - Internal Server Error- Description
A Meshy não conseguiu executar a verificação de propriedade intelectual. Repita o pedido.
Eliminar uma tarefa Collapsible Fidget
Cancela uma tarefa Collapsible Fidget. Cancelar uma tarefa PENDING reembolsa os seus créditos. Uma tarefa IN_PROGRESS é cancelada sem reembolso, porque um worker já a iniciou. Uma tarefa com um estado final (SUCCEEDED, FAILED ou CANCELED) não pode ser cancelada.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 204 No Content on success (empty body).
Parâmetros do caminho
- Name
- id
- Type
- path
- Description
O ID da tarefa a cancelar.
Devolve
204 No Content com um corpo vazio.
Modos de falha
- Name
400 - Bad Request- Description
Aplica-se uma das seguintes situações:
idnão é um ID de tarefa válido. Envie o IDresultda resposta de criação.- A tarefa já tem um estado final (
SUCCEEDED,FAILEDouCANCELED), pelo que não pode ser cancelada.
- Name
404 - Not Found- Description
Nenhuma tarefa Collapsible Fidget com este ID pertence à sua conta, ou a tarefa não foi criada com este endpoint. Verifique o ID.
Transmitir em stream a tarefa de Collapsible Fidget
Transmite as atualizações de uma tarefa de Collapsible Fidget como Server-Sent Events (SSE). Se a tarefa não existir ou não tiver sido criada através deste endpoint, o stream envia um evento error com status_code: 404 e fecha.
Request
curl -N https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1/018a210d-8ba4-705c-b111-1f1776f7f578/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example (task not found, or not created through this endpoint)
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress.
// Every frame is the full task object; fields not yet populated are null / empty.
// The following PENDING frame is shortened to the fields that change.
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
Parâmetros
- Name
- id
- Type
- path
- Description
O ID da tarefa proveniente da resposta de criação.
Devolve
Um stream de objetos de tarefa de Collapsible Fidget. Cada evento contém o objeto de tarefa completo, tal como devolvido por Obter uma tarefa de Collapsible Fidget. Enquanto a tarefa está PENDING ou IN_PROGRESS, os seus campos de output continuam vazios (null, [], ou {}), e finished_at é null.
Se a Filtragem por IP bloquear o resultado da tarefa, o stream envia um evento error em seu lugar, com o status_code que um pedido get devolveria.
Listar tarefas de Fidget Colapsável
Devolve as suas tarefas de Fidget Colapsável, uma página de cada vez. Apenas são incluídas as tarefas criadas com este endpoint.
Request
curl https://api.meshy.ai/openapi/creative-lab/fidget-collapsible/v1?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
]
Parâmetros de consulta
- Name
- page_num
- Type
- integer
- predefinição 1
- Description
A página a devolver, de
1a255.0devolve a primeira página. Um valor fora do intervalo0a255devolve400.
- Name
- page_size
- Type
- integer
- predefinição 10
- Description
Número de tarefas por página, até
100. Um valor de101a255devolve 100 tarefas, e0utiliza o valor predefinido. Um valor fora do intervalo0a255devolve400.
- Name
- sort_by
- Type
- string
- predefinição -created_at
- Description
A ordem de ordenação.
Valores disponíveis:
-created_at: mais recentes primeiro+created_at: mais antigas primeiro
Devolve
Um array de objetos de tarefa de Fidget Colapsável.
O objeto de tarefa Collapsible Fidget
Uma tarefa Collapsible Fidget transforma uma fotografia num modelo de fidget colapsável pronto a imprimir. É uma tarefa de estágio único, pelo que não existe uma tarefa de protótipo a partir da qual encadear. A resposta não inclui a silhueta que a Meshy cria ao longo do processo.
Propriedades
Example Collapsible Fidget Task Object
{
"id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"type": "creative-lab-fidget-collapsible",
"name": "",
"status": "SUCCEEDED",
"progress": 100,
"created_at": 1729123456000,
"started_at": 1729123460000,
"finished_at": 1729123512000,
"expires_at": 1729382712000,
"preceding_tasks": 0,
"task_error": null,
"consumed_credits": 6,
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/018a210d-8ba4-705c-b111-1f1776f7f578/output/model.stl?Expires=***"
}
}
- Name
- id
- Type
- string
- Description
O ID da tarefa. Não dependa do seu formato.
- Name
- type
- Type
- string
- Description
O tipo de tarefa, sempre
creative-lab-fidget-collapsible.
- Name
- name
- Type
- string
- Description
O
nameque enviou ao criar a tarefa, ou""se não tiver enviado nenhum.
- Name
- status
- Type
- string
- Description
O estado da tarefa.
Valores disponíveis:
PENDING: a aguardar na filaIN_PROGRESS: a gerar o resultadoSUCCEEDED: final, com o resultadoFAILED: final, com o motivo emtask_errorCANCELED: final, sem resultado
- Name
- progress
- Type
- integer
- Description
Percentagem do trabalho concluído, de
0a100. É0até a tarefa começar e100quando é bem-sucedida.
- Name
- created_at
- Type
- timestamp
- Description
Momento em que a tarefa foi criada, em milissegundos Unix.
- Name
- started_at
- Type
- timestamp
- Description
Momento em que um worker iniciou a tarefa, em milissegundos Unix.
nullaté isso acontecer.
- Name
- finished_at
- Type
- timestamp
- Description
Momento em que a tarefa atingiu um estado final, em milissegundos Unix.
nullaté isso acontecer.
- Name
- expires_at
- Type
- timestamp
- Description
Momento em que o resultado da tarefa expira, em milissegundos Unix. É 3 dias após
finished_at, ou 3 dias apóscreated_ataté a tarefa terminar. Para contas Enterprise, que mantêm os resultados da API indefinidamente, é cerca de 100 anos depois. Consulte Retenção de recursos.
- Name
- preceding_tasks
- Type
- integer
- Description
A posição da tarefa na fila enquanto está
PENDING.1significa que é a próxima a começar.0depois de a tarefa sair da fila, e sempre0em resultados de listagem.
- Name
- task_error
- Type
- object
- Description
O motivo pelo qual a tarefa falhou.
nulla menos questatussejaFAILED. Consulte Erros.
- Name
- consumed_credits
- Type
- integer
- Description
Número de créditos cobrados pela tarefa, após qualquer reembolso. Um pedido que devolve um erro não é cobrado. Uma tarefa falhada é
0, porque a Meshy a reembolsa. Cancelar só reembolsa uma tarefa enquanto esta estiverPENDING. Se a Meshy não conseguir ler a cobrança, uma resposta de obtenção ou de stream omite o campo, e um pedido de listagem devolve500. Nesse caso, repita o pedido.
- Name
- model_urls
- Type
- object
- Description
URLs de transferência para o modelo 3D, vazio até a tarefa ser bem-sucedida. Uma tarefa bem-sucedida tem sempre
stl, e só temglbse a Meshy tiver processado a pré-visualização.- Name
stl- Type
- string
- Description
URL de transferência para o ficheiro STL, que é o ficheiro a imprimir. Pode abri-lo diretamente num software de corte.
- Name
glb- Type
- string
- Description
URL de transferência para um ficheiro GLB para pré-visualizar o modelo num visualizador 3D. As suas cores servem apenas para a pré-visualização. O ficheiro STL não tem cor, pelo que o fidget impresso adquire a sua cor do filamento.
Se a Meshy não conseguir processar a pré-visualização,
model_urlsnão tem a chaveglb, por isso verifique se a chave existe antes de a ler. Uma tarefaSUCCEEDEDtem semprestl.