{"openapi":"3.1.0","info":{"title":"API CNT — integração","version":"1.0","description":"Integra o sistema da sua empresa com o Workspace do CNT Legendas: clientes e glossários, perfis de regras, produção da equipe e licenças, com webhooks. Não processa vídeo nem áudio: isso continua no computador de quem usa o programa."},"servers":[{"url":"https://legendas.cntoficial.com.br/api/v1"}],"security":[{"chave":[]}],"components":{"securitySchemes":{"chave":{"type":"http","scheme":"bearer","description":"Chave criada na área do cliente → API (planos de equipe): cnt_xxxxxxxx_…"}},"schemas":{"Cliente":{"type":"object","properties":{"nome":{"type":"string","readOnly":true},"cliente_final":{"type":"string"},"instrucoes":{"type":"string","description":"Instruções de tradução do cliente"},"contexto":{"type":"string"},"perfil":{"type":"string","description":"Chave do perfil de regras"},"idioma_origem":{"type":"string","example":"en"},"idioma_destino":{"type":"string","example":"pt-BR"},"formato":{"type":"string","enum":["","srt","vtt","ttml","ass"]},"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}},"atualizado_em":{"type":"string","format":"date-time","readOnly":true}}},"Erro":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}},"paths":{"/clientes":{"get":{"summary":"Listar os clientes do Workspace","responses":{"200":{"description":"Clientes","content":{"application/json":{"schema":{"type":"object","properties":{"clientes":{"type":"array","items":{"type":"object","properties":{"nome":{"type":"string","readOnly":true},"cliente_final":{"type":"string"},"instrucoes":{"type":"string","description":"Instruções de tradução do cliente"},"contexto":{"type":"string"},"perfil":{"type":"string","description":"Chave do perfil de regras"},"idioma_origem":{"type":"string","example":"en"},"idioma_destino":{"type":"string","example":"pt-BR"},"formato":{"type":"string","enum":["","srt","vtt","ttml","ass"]},"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}},"atualizado_em":{"type":"string","format":"date-time","readOnly":true}}}}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/clientes/{nome}":{"get":{"summary":"Um cliente","parameters":[{"name":"nome","in":"path","required":true,"schema":{"type":"string"},"description":"Nome do cliente (sem diferenciar maiúsculas)"}],"responses":{"200":{"description":"Cliente","content":{"application/json":{"schema":{"type":"object","properties":{"cliente":{"type":"object","properties":{"nome":{"type":"string","readOnly":true},"cliente_final":{"type":"string"},"instrucoes":{"type":"string","description":"Instruções de tradução do cliente"},"contexto":{"type":"string"},"perfil":{"type":"string","description":"Chave do perfil de regras"},"idioma_origem":{"type":"string","example":"en"},"idioma_destino":{"type":"string","example":"pt-BR"},"formato":{"type":"string","enum":["","srt","vtt","ttml","ass"]},"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}},"atualizado_em":{"type":"string","format":"date-time","readOnly":true}}}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"404":{"description":"Não encontrado","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}},"put":{"summary":"Criar ou substituir um cliente (a equipe recebe na próxima sincronização do programa)","parameters":[{"name":"nome","in":"path","required":true,"schema":{"type":"string"},"description":"Nome do cliente (sem diferenciar maiúsculas)"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"nome":{"type":"string","readOnly":true},"cliente_final":{"type":"string"},"instrucoes":{"type":"string","description":"Instruções de tradução do cliente"},"contexto":{"type":"string"},"perfil":{"type":"string","description":"Chave do perfil de regras"},"idioma_origem":{"type":"string","example":"en"},"idioma_destino":{"type":"string","example":"pt-BR"},"formato":{"type":"string","enum":["","srt","vtt","ttml","ass"]},"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}},"atualizado_em":{"type":"string","format":"date-time","readOnly":true}}}}}},"responses":{"200":{"description":"Cliente salvo","content":{"application/json":{"schema":{"type":"object","properties":{"cliente":{"type":"object","properties":{"nome":{"type":"string","readOnly":true},"cliente_final":{"type":"string"},"instrucoes":{"type":"string","description":"Instruções de tradução do cliente"},"contexto":{"type":"string"},"perfil":{"type":"string","description":"Chave do perfil de regras"},"idioma_origem":{"type":"string","example":"en"},"idioma_destino":{"type":"string","example":"pt-BR"},"formato":{"type":"string","enum":["","srt","vtt","ttml","ass"]},"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}},"atualizado_em":{"type":"string","format":"date-time","readOnly":true}}}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}},"delete":{"summary":"Tirar do Workspace (quem já tem no computador continua com ele)","parameters":[{"name":"nome","in":"path","required":true,"schema":{"type":"string"},"description":"Nome do cliente (sem diferenciar maiúsculas)"}],"responses":{"200":{"description":"Removido","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/clientes/{nome}/glossario":{"get":{"summary":"Glossário do cliente","parameters":[{"name":"nome","in":"path","required":true,"schema":{"type":"string"},"description":"Nome do cliente (sem diferenciar maiúsculas)"}],"responses":{"200":{"description":"Glossário","content":{"application/json":{"schema":{"type":"object","properties":{"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}},"put":{"summary":"Substituir o glossário do cliente","parameters":[{"name":"nome","in":"path","required":true,"schema":{"type":"string"},"description":"Nome do cliente (sem diferenciar maiúsculas)"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Glossário salvo","content":{"application/json":{"schema":{"type":"object","properties":{"glossario":{"type":"array","items":{"type":"object","required":["termo"],"properties":{"termo":{"type":"string"},"traducao":{"type":"string"},"obs":{"type":"string"}}}}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/perfis":{"get":{"summary":"Perfis de regras da equipe","responses":{"200":{"description":"Perfis","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}},"post":{"summary":"Publicar um perfil (mesmo nome substitui)","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["nome","dados"],"properties":{"nome":{"type":"string"},"dados":{"type":"object","description":"O perfil no formato de exportar perfil do programa"},"padrao":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Publicado","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/perfis/{id}":{"delete":{"summary":"Tirar um perfil da equipe","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Removido","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/producao":{"get":{"summary":"Produção da equipe (episódios, legendas, minutos de vídeo, horas) por mês, cliente e pessoa","parameters":[{"name":"meses","in":"query","schema":{"type":"integer","minimum":1,"maximum":24,"default":12}}],"responses":{"200":{"description":"Produção","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/licencas":{"get":{"summary":"Licenças da conta e os computadores de cada uma","responses":{"200":{"description":"Licenças","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/licencas/{publico}/computadores/{id}/liberar":{"post":{"summary":"Liberar a vaga de um computador","parameters":[{"name":"publico","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Liberado","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/webhooks":{"get":{"summary":"Webhooks cadastrados","responses":{"200":{"description":"Webhooks","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}},"post":{"summary":"Cadastrar um webhook (o segredo aparece só na resposta)","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"},"eventos":{"type":"array","items":{"type":"string","enum":["producao.atualizada","cliente.alterado","licenca.renovada"]}}}}}}},"responses":{"200":{"description":"Cadastrado","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"segredo":{"type":"string"}}}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/webhooks/{id}":{"delete":{"summary":"Remover um webhook","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Removido","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}},"/webhooks/{id}/testar":{"post":{"summary":"Mandar um aviso de teste","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Status da entrega","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Chave inválida, revogada ou vencida","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"403":{"description":"Sem permissão","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}},"429":{"description":"Limite por minuto","content":{"application/json":{"schema":{"type":"object","properties":{"erro":{"type":"string"},"codigo":{"type":"string","example":"ER-RS-403"}}}}}}}}}}}