

Gerar Slides de Aula Programaticamente a partir de um Currículo (2026)
Para gerar slides de aula programaticamente, exporte seu currículo como uma linha por aula (unidade, título, objetivos, vocabulário, série, idioma), depois faça um script chamar o endpoint POST /api/v1/slides/generate do 2Slides Fast PPT uma vez por linha com um tema educacional obtido via GET /api/v1/themes/search e responseLanguage definido por turma. Cada deck de 12 slides é um PPTX editável que custa 120 créditos, cerca de $0,30, e retorna em cerca de 30 segundos. Para salas invertidas, create-pdf-slides mais generate-narration produzem videoaulas curtas. Feito para desenvolvedores edtech, designers instrucionais e equipes de currículo distrital.
Principais pontos
- Um deck de aula Fast PPT custa 10 créditos por slide, então um deck de 12 slides custa 120 créditos, cerca de $0,30 na tarifa de $5 por 2.000 créditos.
- Um departamento com 40 aulas de 12 slides cada usa 4.800 créditos, aproximadamente $12, e submete em cerca de 7 minutos no limite de 6 requisições por minuto.
responseLanguageaceita o nome do idioma como "Spanish" ou "Vietnamese", cobrindo mais de 20 idiomas de saída para programas bilíngues a partir das mesmas linhas do currículo.- A saída Fast PPT é um PPTX nativo e editável, para que os professores possam adaptar cada slide antes da aula. Decks Fast PPT não podem ser narrados.
- Para salas invertidas, uma videoaula narrada de 8 slides custa 2.490 créditos (810 para 2K slides mais 1.680 para narração), cerca de $5 a $6,25.
Para quem é isto
Designers instrucionais, engenheiros edtech e criadores de cursos que mantêm o currículo em formato estruturado (uma planilha Google Sheets, CSV de LMS, banco de dados de curso) e precisam de um deck rascunho para cada aula, não apenas algumas. Equipes distritais que executam programas bilíngues, onde uma aula deve existir em inglês e espanhol ou vietnamita, aproveitam ao máximo o campo de idioma por linha.
Pule esta receita se você tem cinco aulas e um professor com uma tarde livre; a ferramenta focada em professores cobre o caminho via web-app.
Fluxo de trabalho em resumo
| Passo | Ferramenta | O que acontece | Endpoint 2Slides / créditos |
|---|---|---|---|
| 1 | Exportação do Sheets ou LMS | Uma linha por aula e idioma: unidade, título, série, objetivos, vocabulário, contagem de slides | nenhum |
| 2 | curl ou navegador | Busca temas educacionais e de sala de aula, armazena um themeId por faixa de série | GET /api/v1/themes/search, grátis |
| 3 | Python ou Node | Monta um prompt estruturado a partir dos campos da linha, define responseLanguage por turma | nenhum |
| 4 | Python ou Make | Uma chamada generate por linha com mode: "async", no máximo 6 por minuto | POST /api/v1/slides/generate, 10 créditos por página |
| 5 | Script | Consulta a cada 5 a 10 s até success, baixa o PPTX para Drive ou LMS | GET /api/v1/jobs/{id}, grátis |
| 6 | Professor | Revisar, editar e aprovar o PPTX antes de chegar aos alunos | nenhum |
| 7 (opcional) | Script mais workspace | Sala invertida: slides com design de imagem, narração com voz única, exportação MP4 | create-pdf-slides 10 + 100 por página a 2K, generate-narration 210 por página |
Passo 1: Normalizar a exportação do currículo
Achate a exportação do LMS ou guia de ritmo em uma linha por aula por idioma. Se uma aula for ministrada em dois idiomas, duplique a linha e altere apenas a coluna language. Mantenha campos com múltiplos valores (objetivos, vocabulário) separados por pipe para que o construtor de prompt possa transformá-los em bullets.
unit,lesson_title,grade,objectives,vocabulary,language,slide_count
Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",English,12
Ecosystems,Food Webs and Energy Flow,7,"Explain how energy moves between trophic levels|Identify producers, consumers and decomposers in a local ecosystem","producer|consumer|decomposer|trophic level",Spanish,12
Fractions,Comparing Fractions with Unlike Denominators,4,"Compare two fractions using common denominators|Justify comparisons with a visual model","numerator|denominator|equivalent fraction|benchmark fraction",Vietnamese,10Adicione três colunas de controle que o script preencherá depois: job_id, download_url e status. A coluna status controla o fluxo de revisão descrito abaixo.
Passo 2: Encontrar um themeId adequado para educação
O themeId decide a aparência do deck Fast PPT. Busque entre os mais de 1.500 templates com termos de sala de aula, depois mantenha um ou dois IDs por faixa de série: um estilo desenhado à mão ou doodle para o ensino fundamental, algo mais limpo para o ensino médio.
curl "https://2slides.com/api/v1/themes/search?query=education&limit=10" \
-H "Authorization: Bearer $SLIDES_API_KEY"
# Também vale tentar: query=classroom, query=doodle, query=science, query=studyCada resultado inclui um themeId e metadados. Armazene os IDs como variáveis de ambiente (EDU_THEME_ELEMENTARY, EDU_THEME_SECONDARY) em vez de na planilha. O endpoint de busca é gratuito, mas compartilha o limite de 6 requisições por minuto, então execute-o uma vez na configuração, não uma vez por aula.

themes/search.
Passo 3: Construir o prompt e definir o idioma para slides multilíngues
O prompt é onde a qualidade do currículo vira qualidade do deck. Dê ao modelo a série, os objetivos em bullets, o vocabulário a definir e uma estrutura fixa de slides. Mantenha userInput abaixo de algumas centenas de palavras; os objetivos e vocabulário são a entrada, não o plano completo da unidade.
Depois defina responseLanguage a partir da linha. Ele aceita o nome do idioma, então "Spanish" e "Vietnamese" funcionam, mas "es" e "vi" não. Escreva o prompt em inglês e deixe o deck sair em espanhol; um template serve para todo o programa.
Create a 12-slide lesson deck for grade 7.
Unit: Ecosystems
Lesson: Food Webs and Energy Flow
Learning objectives:
- Explain how energy moves between trophic levels
- Identify producers, consumers and decomposers in a local ecosystem
Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level
Structure: title slide, objectives, warm-up question, 5 content slides with one idea each,
vocabulary slide, quick check with 3 questions, summary.
Use short sentences suitable for the grade level.
generate na documentação da API 2Slides, incluindo os mais de 20 valores que responseLanguage aceita por nome.
Passo 4: Gerar slides de aula programaticamente com Fast PPT
Este é o passo que permite a uma pequena equipe criar apresentações em lote. O generate do Fast PPT usa sync por padrão e retorna um downloadUrl numa chamada, bom para um deck único. Para lote, defina mode: "async", colete os valores jobId e consulte. Cada deck leva cerca de 30 segundos, e a chave permite 6 requisições por minuto, então espaçe as submissões em 10 segundos.
curl -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Create a 12-slide lesson deck for grade 7. Unit: Ecosystems. Lesson: Food Webs and Energy Flow. Learning objectives: explain how energy moves between trophic levels; identify producers, consumers and decomposers in a local ecosystem. Key vocabulary to define with one example each: producer, consumer, decomposer, trophic level. Structure: title, objectives, warm-up question, 5 content slides, vocabulary, 3-question quick check, summary.",
"themeId": "'"$EDU_THEME_SECONDARY"'",
"responseLanguage": "Spanish",
"mode": "async"
}'
# -> {"jobId":"..."} então consulte GET https://2slides.com/api/v1/jobs/{jobId}O loop completo em Python: leia o CSV, submeta cada linha com intervalo de 10 segundos, consulte cada job a cada 8 segundos e salve o PPTX com nome que inclui unidade, série e idioma para que duas séries com o mesmo título de aula não sobrescrevam.
import csv, os, time, requests
API = "https://2slides.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SLIDES_API_KEY']}"}
THEMES = {
"elementary": os.environ["EDU_THEME_ELEMENTARY"],
"secondary": os.environ["EDU_THEME_SECONDARY"],
}
def theme_for(grade: str) -> str:
return THEMES["elementary"] if int(grade) <= 5 else THEMES["secondary"]
def build_prompt(row: dict) -> str:
objectives = "\n".join(f"- {o.strip()}" for o in row["objectives"].split("|"))
vocab = ", ".join(v.strip() for v in row["vocabulary"].split("|"))
return (
f"Create a {row['slide_count']}-slide lesson deck for grade {row['grade']}.\n"
f"Unit: {row['unit']}\nLesson: {row['lesson_title']}\n"
f"Learning objectives:\n{objectives}\n"
f"Key vocabulary to define with one example each: {vocab}\n"
"Structure: title slide, objectives, warm-up question, content slides with one "
"idea each, vocabulary slide, quick check with 3 questions, summary. "
"Use short sentences suitable for the grade level."
)
def submit(row: dict) -> str:
r = requests.post(f"{API}/slides/generate", headers=HEADERS, timeout=60, json={
"userInput": build_prompt(row),
"themeId": theme_for(row["grade"]),
"responseLanguage": row["language"] or "English",
"mode": "async",
})
r.raise_for_status()
return r.json()["jobId"]
def wait(job_id: str) -> dict:
while True:
job = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json()
if job["status"] in ("success", "failed"):
return job
time.sleep(8) # consulta a cada 5-10 s; endpoint jobs permite 10 req/min
with open("curriculum.csv", newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f))
queued = []
for row in rows:
queued.append((row, submit(row)))
time.sleep(10) # 6 submissões por minuto, nunca mais
os.makedirs("decks", exist_ok=True)
for row, job_id in queued:
job = wait(job_id)
if job["status"] != "success":
print("FAILED", row["lesson_title"], row["language"], job_id)
continue
pptx = requests.get(job["downloadUrl"], timeout=120).content
name = f"{row['unit']}_G{row['grade']}_{row['lesson_title']}_{row['language']}.pptx"
with open(os.path.join("decks", name.replace(" ", "_")), "wb") as out:
out.write(pptx)
print("saved", name)Escreva job_id, download_url e status = "draft" de volta na planilha conforme cada deck chega.

generate produz o mesmo PPTX editável a partir dos mesmos templates, uma chamada por aula.
Passo 5: Variante para sala invertida: videoaulas narradas curtas
Para uma sala invertida, o artefato que os alunos veem em casa é um vídeo, então mude o pipeline. Jobs Fast PPT não podem ser narrados. Use create-pdf-slides para slides com design de imagem 16:9 a 2K, depois generate-narration com um único locutor, e então exporte o vídeo. Mantenha as aulas curtas: 6 a 8 slides com cerca de 45 segundos de narração cada é um vídeo de 5 a 6 minutos.
# 1) slides com design de imagem (async por padrão)
curl -X POST https://2slides.com/api/v1/slides/create-pdf-slides \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "8-slide mini-lecture for grade 7 on food webs and energy flow. One idea per slide, written to be read aloud in about 45 seconds per slide. Cover: what a food web is, producers, consumers, decomposers, trophic levels, the 10 percent energy rule, one local example, a 2-question check.",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 8,
"contentDetail": "standard",
"responseLanguage": "English",
"mode": "async"
}'
# consulte GET /api/v1/jobs/{jobId} até status = success (10 + 8 x 100 = 810 créditos)
# 2) narração com voz única nesse job (8 x 210 = 1.680 créditos)
curl -X POST https://2slides.com/api/v1/slides/generate-narration \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "JOB_ID_FROM_STEP_1",
"mode": "single",
"speakerName": "Teacher",
"voice": "Leda",
"contentMode": "standard",
"includeIntro": true
}'
# consulte novamente até sucesso
# 3) PNG + WAV por página, grátis
curl -X POST https://2slides.com/api/v1/slides/download-slides-pages-voices \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jobId": "JOB_ID_FROM_STEP_1"}' -o lecture-assets.zipDuas opções para o MP4: abra o job no workspace 2Slides e use Exportar, depois Gerar Vídeo, que renderiza um MP4 H.264 a 1920×1080 no navegador por 20 créditos por página; ou una os pares PNG e WAV do ZIP com FFmpeg para upload totalmente scriptado no LMS. O post sobre shorts educacionais sem rosto mostra a versão 9:16 para clipes de revisão.
Passo 6: Alternativas sem código e com agentes
Automação currículo para PowerPoint no Make
Se ninguém na equipe de currículo quiser rodar um job Python, o mesmo loop cabe num cenário Make (n8n e Zapier funcionam igual):
- Gatilho: observar linhas novas ou atualizadas na planilha Google Sheets do currículo, ou um gatilho Webhook disparado pelo LMS.
- Transformação: um passo de texto ou variável monta
userInputa partir dos campos da linha usando o template do Passo 3. - Requisição HTTP:
POST https://2slides.com/api/v1/slides/generatecommode: "async", cabeçalhoAuthorization: Bearerarmazenado como segredo do cenário, eresponseLanguagemapeado da linha. - Espera: um passo Delay ou Sleep de 30 a 45 segundos.
- Requisição HTTP:
GET https://2slides.com/api/v1/jobs/{jobId}; sestatusainda não forsuccessoufailed, repete a espera. - Entrega: envia o PPTX para uma pasta Drive por série, depois escreve
download_urlestatus = "draft"de volta na linha. - Controle: uma linha por execução, pelo menos 10 segundos entre submissões, para que uma colagem de 40 linhas nunca ultrapasse 6 requisições por minuto.
Pergunte a um agente em vez disso
Professores que trabalham no Claude Code, Codex ou Cursor podem pular o script e o cenário. Instale a 2Slides Agent Skill ou adicione o servidor MCP hospedado (claude mcp add --transport http 2slides "https://2slides.com/api/mcp?apikey=YOUR_KEY"), cole a tabela do currículo e peça um deck por linha. O agente chama as mesmas ferramentas themes_search, slides_generate e jobs_get com a mesma chave e créditos; veja a página Agent Skills.

Acessibilidade e revisão: rascunhos de IA, professores aprovam
Trate cada deck gerado como um rascunho. A coluna status passa de draft para reviewed para approved com as iniciais do revisor, e nada chega aos alunos até estar approved. Isso é uma política, não um recurso, e é por isso que o PPTX editável importa mais que um PDF mais bonito para uso em sala.
Checklist de revisão por deck:
- Conteúdo: todo objetivo da linha aparece e está correto para o padrão; sem fatos ou datas inventadas; as perguntas do quick-check são respondíveis a partir dos slides.
- Nível de leitura: comprimento das frases e vocabulário condizem com a série. Slides da série 4 com frases da série 9 são o ajuste mais comum.
- Decks traduzidos: um professor bilíngue revisa o deck em espanhol ou vietnamita por seus próprios méritos, pois exemplos precisam de adequação cultural além da tradução correta.
- Acessibilidade: adicione texto alternativo às imagens, verifique contraste do texto contra o fundo do template, mantenha o texto legível do fundo da sala, e nunca transmita significado só pela cor. As diretrizes WCAG são a referência que a maioria dos distritos já cita.
- Videoaulas: o ZIP de
download-slides-pages-voicesdá um WAV por slide, então uma transcrição por qualquer ferramenta de fala para texto e legendas no MP4 levam minutos.
Orce cerca de 10 minutos de revisão por deck: aproximadamente 7 horas para 40 aulas, contra zero horas gastas construindo decks do zero.
Quanto custa para um departamento
Créditos são pay-as-you-go: $5 compra 2.000 créditos ($0,0025 cada) e $80 compra 40.000 ($0,002 cada). Contas novas ganham 500 créditos grátis, suficientes para 4 decks teste de 12 slides.
| Volume | Pipeline | Créditos | USD |
|---|---|---|---|
| 40 aulas × 12 slides (um departamento, um semestre) | Fast PPT generate | 480 páginas × 10 = 4.800 | ≈ $12,00 na tarifa do pacote de $5 |
| 500 aulas × 12 slides (distrito ou marketplace de cursos, por mês) | Fast PPT generate | 6.000 páginas × 10 = 60.000 | ≈ $120 no pacote de $80 |
| 40 videoaulas invertidas × 8 slides, 2K mais narração | create-pdf-slides 40 × 810, generate-narration 40 × 1.680 | 32.400 + 67.200 = 99.600 | ≈ $199 a $249 |
| Exportação MP4 opcional para essas 40 videoaulas no workspace | 320 páginas × 20 | 6.400 | ≈ $13 a $16 |
Tempo é outro orçamento. A 6 submissões por minuto, 40 aulas submetem em cerca de 7 minutos e 500 em cerca de 84 minutos, cada deck terminando cerca de 30 segundos após a submissão.
Fast PPT ou slides com design de imagem para este caso?
- Fast PPT (
generate) quando professores precisam editar no PowerPoint ou Google Slides e o volume é alto: 120 créditos para deck de 12 slides, entregue em cerca de 30 segundos. create-pdf-slidesquando o deck é o artefato final para o aluno (videoaula, embed no LMS) ou precisa de estilo visual específico: 1.010 créditos para 10 páginas a 2K, mais 210 por página para narração.create-like-thisquando o distrito tem um slide com marca que todo deck deve seguir; passe sua URL pública comoreferenceImageUrl, mesmo custo decreate-pdf-slides.- Nunca misture por acidente: narração e exportação MP4 existem só para jobs
create-pdf-slidesecreate-like-this, não para Fast PPT.
Armadilhas comuns
- HTTP 429 durante colagem em lote: a chave permite 6 requisições por minuto, então mantenha um único submitter com intervalo de 10 segundos. Não espalhe submissões por threads ou ramos de cenário que compartilham a chave.
- Chave API na planilha ou Apps Script compartilhado: mantenha no servidor ou na loja de segredos da ferramenta de automação. Professores recebem decks, nunca chaves.
- Narrar um job Fast PPT: o endpoint de narração rejeita. Refaça a aula com
create-pdf-slidesprimeiro. - Passar código de idioma:
responseLanguage: "es"não é"Spanish". Valide a coluna idioma contra os nomes suportados. create-pdf-slidespadrão épage: 1: defina a contagem explicitamente (8 para mini-aula) ou usepage: 0para deixar o modelo escolher. Uma aula de uma página é surpresa comum na primeira execução.- Colar o plano inteiro da unidade como
userInput: documentos longos de padrões produzem decks dispersos. Reduza cada aula a objetivos, vocabulário e estrutura de slides primeiro.
Perguntas Frequentes
Posso gerar slides de aula programaticamente sem escrever código?
Sim. No Make, n8n ou Zapier, um gatilho Sheets alimenta um passo HTTP Request que chama POST /api/v1/slides/generate com mode: "async", seguido de um passo de espera e uma segunda requisição HTTP para GET /api/v1/jobs/{id}. Professores também podem pular ferramentas de automação e pedir a um agente de IA com a skill 2Slides ou servidor MCP para construir os decks a partir de uma tabela de currículo colada. Todo caminho usa a mesma chave API e os mesmos créditos.
Como faço slides multilíngues a partir de um currículo?
Duplique cada linha de aula uma vez por idioma e defina a coluna idioma para um nome como "Spanish" ou "Vietnamese". O script passa esse valor como responseLanguage, então objetivos e vocabulário idênticos produzem um deck em inglês e outro em espanhol a partir do mesmo template de prompt. 2Slides suporta mais de 20 idiomas de saída. Peça a um professor bilíngue para revisar cada deck traduzido, pois exemplos de vocabulário precisam de adequação cultural além da tradução correta.
Existe uma API alternativa para plano de aula para slides com IA além do 2Slides?
Sim, várias ferramentas de apresentação têm APIs. A API da Gamma oferece automação similar, mas requer plano Pro para chaves API, enquanto as chaves 2Slides funcionam em qualquer conta, inclusive grátis com 500 créditos. SlideSpeak e Canva Connect também expõem APIs. 2Slides é nosso produto, então compare nos pontos que importam para educação: saída PPTX editável, idioma por requisição e preço por slide.
Quantos slides um deck de aula gerado deve ter?
Para uma aula de 45 a 50 minutos, 10 a 14 slides é um padrão viável: título, objetivos, aquecimento, 4 a 6 slides de conteúdo com uma ideia cada, slide de vocabulário, quick check e resumo. A 10 créditos por slide, um deck de 12 slides custa 120 créditos. Declare a contagem em userInput para que cada deck do lote tenha tamanho, tempo de revisão e custo previsíveis.
Professores podem editar os decks gerados no PowerPoint ou Google Slides?
Sim. O endpoint generate do Fast PPT retorna um PPTX nativo construído a partir de um template desenhado, então caixas de texto, formas e imagens são editáveis no PowerPoint, Keynote ou Google Slides após importação. Por isso esta receita trata a saída da API como rascunho: o professor abre o arquivo, ajusta exemplos para seus alunos e salva a versão aprovada. A saída create-pdf-slides é um PDF mais imagens das páginas e não é editável em texto.
Próximos passos
Agora você tem o layout da planilha, template de prompt, loop Python e política de revisão necessários para gerar slides de aula programaticamente para um departamento inteiro, em todos os idiomas que o programa ensina.
- Obtenha uma chave API em 2slides.com/api. O cadastro inclui 500 créditos grátis, suficientes para rodar quatro aulas teste de 12 slides antes de comprar.
- Leia o post do hub, Casos de uso da API de apresentação por equipe, para ver como equipes de vendas, RH e marketing rodam o mesmo loop em suas próprias planilhas.
- Continue com a receita batch para decks de vocabulário para uma variante com prompt menor, e o guia de videoaulas antes de gravar sua primeira aula invertida.
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free