{"openapi":"3.1.0","info":{"title":"GoStream Public API","version":"1.0.0","description":"API pública do GoStream para player, conteúdos, bibliotecas, playlists, canais, playout, overlays dinâmicos, saídas, Analytics e Pause Ads. A API key é de uso exclusivo no backend."},"servers":[{"url":"https://api.stream.goinnovation.ai"}],"security":[{"XApiKey":[]},{"BearerApiKey":[]}],"tags":[{"name":"Player"},{"name":"Conteúdos"},{"name":"Bibliotecas"},{"name":"Playlists"},{"name":"Canais"},{"name":"Playout"},{"name":"Overlays Dinâmicos"},{"name":"Saídas"},{"name":"Analytics","description":"Métricas de audiência e distribuição limitadas à conta autenticada."},{"name":"Resources","description":"Recursos de playback elegíveis da conta."},{"name":"Creatives","description":"Upload original, metadados e mídia otimizada."},{"name":"Campaigns","description":"Campanhas, segmentação e frequência."},{"name":"Sessions","description":"Bootstrap curto para o SDK no navegador."},{"name":"Reports","description":"Métricas agregadas em JSON e CSV."}],"x-rate-limits":{"readPer10Minutes":600,"mutationPerHour":120,"uploadPerHour":30,"reportPerHour":120,"sessionPer10Minutes":6000},"x-analytics-rate-limit":{"requestsPerHour":120},"paths":{"/v1/player/credentials":{"post":{"tags":["Player"],"summary":"Emite URLs HLS e DASH temporárias","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content":{"get":{"tags":["Conteúdos"],"summary":"Lista conteúdos","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"get":{"tags":["Conteúdos"],"summary":"Obtém conteúdo, URLs e metadados","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Conteúdos"],"summary":"Apaga conteúdo","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/upload-libraries":{"get":{"tags":["Conteúdos"],"operationId":"listUploadLibraries","summary":"Lista bibliotecas disponíveis no upload","description":"Retorna somente bibliotecas editáveis da conta autenticada.","responses":{"200":{"description":"Catálogo de destinos elegíveis.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadLibraryCatalogResponse"}}}}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/encoding-profiles":{"get":{"tags":["Conteúdos"],"summary":"Lista perfis de encoding da conta","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/overlays":{"get":{"tags":["Conteúdos"],"summary":"Lista overlays disponíveis para encoding","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/uploads/initiate":{"post":{"tags":["Conteúdos"],"operationId":"initiateContentUpload","summary":"Inicia upload multipart","description":"Requer content.upload. libraryID, overlay e metadados JSON são opcionais.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentUploadInitiateInput"}}}},"responses":{"200":{"$ref":"#/components/responses/Success"},"201":{"$ref":"#/components/responses/Success"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/uploads/{uploadID}/parts/{partNumber}":{"parameters":[{"$ref":"#/components/parameters/contentID"},{"$ref":"#/components/parameters/uploadID"},{"$ref":"#/components/parameters/partNumber"}],"put":{"tags":["Conteúdos"],"summary":"Envia parte binária do upload","requestBody":{"$ref":"#/components/requestBodies/Binary"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/uploads/{uploadID}/complete":{"parameters":[{"$ref":"#/components/parameters/contentID"},{"$ref":"#/components/parameters/uploadID"}],"post":{"tags":["Conteúdos"],"summary":"Conclui upload e enfileira encoding","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/uploads/{uploadID}":{"parameters":[{"$ref":"#/components/parameters/contentID"},{"$ref":"#/components/parameters/uploadID"}],"delete":{"tags":["Conteúdos"],"summary":"Aborta upload multipart","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/reprocess":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"post":{"tags":["Conteúdos"],"summary":"Reprocessa conteúdo","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/reprocess-overlay":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"post":{"tags":["Conteúdos"],"summary":"Reprocessa conteúdo com outro overlay","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/auto-delete":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"patch":{"tags":["Conteúdos"],"summary":"Configura exclusão automática","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/playback-settings":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"patch":{"tags":["Conteúdos"],"summary":"Altera configurações de playback do conteúdo","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/playback-key/rotate":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"post":{"tags":["Conteúdos"],"summary":"Rotaciona a chave de playback do conteúdo","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/content/{contentID}/playback-token":{"parameters":[{"$ref":"#/components/parameters/contentID"}],"post":{"tags":["Conteúdos"],"summary":"Cria token e URLs de playback do conteúdo","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/libraries":{"get":{"tags":["Bibliotecas"],"summary":"Lista bibliotecas","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"post":{"tags":["Bibliotecas"],"summary":"Cria biblioteca","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/libraries/{libraryID}":{"parameters":[{"$ref":"#/components/parameters/libraryID"}],"get":{"tags":["Bibliotecas"],"summary":"Obtém biblioteca e itens","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"put":{"tags":["Bibliotecas"],"summary":"Altera biblioteca","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Bibliotecas"],"summary":"Apaga biblioteca","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/libraries/{libraryID}/items":{"parameters":[{"$ref":"#/components/parameters/libraryID"}],"put":{"tags":["Bibliotecas"],"summary":"Define conteúdos e ordem da biblioteca","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists":{"get":{"tags":["Playlists"],"summary":"Lista playlists","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"post":{"tags":["Playlists"],"summary":"Cria playlist","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"get":{"tags":["Playlists"],"summary":"Obtém playlist, itens e URLs","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"put":{"tags":["Playlists"],"summary":"Altera playlist","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Playlists"],"summary":"Apaga playlist","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/items":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"put":{"tags":["Playlists"],"summary":"Define conteúdos e ordem da playlist","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/loop-jump":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"post":{"tags":["Playlists"],"summary":"Pula a execução para um item","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/playback-settings":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"patch":{"tags":["Playlists"],"summary":"Altera configurações de playback da playlist","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/playback-key/rotate":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"post":{"tags":["Playlists"],"summary":"Rotaciona a chave de playback da playlist","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/playback-token":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"post":{"tags":["Playlists"],"summary":"Cria token e URLs de playback","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/playlists/{playlistID}/embed-html":{"parameters":[{"$ref":"#/components/parameters/playlistID"}],"get":{"tags":["Playlists"],"summary":"Obtém embed HTML","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels":{"get":{"tags":["Canais"],"summary":"Lista canais","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"post":{"tags":["Canais"],"summary":"Cria canal","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"get":{"tags":["Canais"],"summary":"Obtém canal e URLs","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"put":{"tags":["Canais"],"summary":"Altera canal","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Canais"],"summary":"Apaga canal","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/agenda":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"get":{"tags":["Canais"],"summary":"Lista agenda em uma janela de até oito dias","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"post":{"tags":["Canais"],"summary":"Agenda conteúdo, playlist, vivo ou marcador","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/agenda/{itemID}":{"parameters":[{"$ref":"#/components/parameters/channelID"},{"$ref":"#/components/parameters/itemID"}],"put":{"tags":["Canais"],"summary":"Altera item da agenda","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Canais"],"summary":"Remove item da agenda","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/agenda/{itemID}/move":{"parameters":[{"$ref":"#/components/parameters/channelID"},{"$ref":"#/components/parameters/itemID"}],"patch":{"tags":["Canais"],"summary":"Move item para outro horário","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/agenda/{itemID}/reorder":{"parameters":[{"$ref":"#/components/parameters/channelID"},{"$ref":"#/components/parameters/itemID"}],"patch":{"tags":["Canais"],"summary":"Insere item entre itens existentes","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/agenda/copy-day":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"post":{"tags":["Canais"],"summary":"Copia um dia da agenda","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playout":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"get":{"tags":["Playout"],"summary":"Obtém estado e programação operacional","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playout/commands":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"post":{"tags":["Playout"],"summary":"Executa cue, take, skip, hold, release ou inserção manual","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playout/markers/open":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"get":{"tags":["Playout"],"summary":"Consulta intervalo SCTE-35 aberto","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playout/markers":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"post":{"tags":["Playout"],"summary":"Insere ou agenda um par SCTE-35 OUT/IN","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playout/markers/{markerID}":{"parameters":[{"$ref":"#/components/parameters/channelID"},{"$ref":"#/components/parameters/markerID"}],"patch":{"tags":["Playout"],"summary":"Altera duração do intervalo SCTE-35","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Playout"],"summary":"Remove par SCTE-35","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/tapume":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"patch":{"tags":["Canais"],"summary":"Define conteúdo de tapume","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playback-settings":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"patch":{"tags":["Canais"],"summary":"Altera configurações de playback do canal","requestBody":{"$ref":"#/components/requestBodies/JSON"},"responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playback-key/rotate":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"post":{"tags":["Canais"],"summary":"Rotaciona a chave de playback do canal","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/channels/{channelID}/playback-token":{"parameters":[{"$ref":"#/components/parameters/channelID"}],"post":{"tags":["Canais"],"summary":"Cria token e URLs de playback","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/dynamic-overlays":{"get":{"tags":["Overlays Dinâmicos"],"summary":"Lista overlays dinâmicos","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/dynamic-overlays/{overlayID}":{"parameters":[{"$ref":"#/components/parameters/overlayID"}],"get":{"tags":["Overlays Dinâmicos"],"summary":"Obtém overlay e estado ativo","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/dynamic-overlays/{overlayID}/items":{"parameters":[{"$ref":"#/components/parameters/overlayID"}],"get":{"tags":["Overlays Dinâmicos"],"summary":"Lista overlays cadastrados","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/dynamic-overlays/{overlayID}/items/{itemID}/activate":{"parameters":[{"$ref":"#/components/parameters/overlayID"},{"$ref":"#/components/parameters/itemID"}],"post":{"tags":["Overlays Dinâmicos"],"summary":"Ativa overlay cadastrado","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/dynamic-overlays/{overlayID}/items/{itemID}/deactivate":{"parameters":[{"$ref":"#/components/parameters/overlayID"},{"$ref":"#/components/parameters/itemID"}],"post":{"tags":["Overlays Dinâmicos"],"summary":"Desativa overlay cadastrado","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/outputs":{"get":{"tags":["Saídas"],"summary":"Lista saídas e estado","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/outputs/{outputID}":{"parameters":[{"$ref":"#/components/parameters/outputID"}],"get":{"tags":["Saídas"],"summary":"Obtém saída","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/outputs/{outputID}/connection":{"parameters":[{"$ref":"#/components/parameters/outputID"}],"get":{"tags":["Saídas"],"summary":"Obtém URLs e dados de conexão","responses":{"200":{"$ref":"#/components/responses/Success"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/analytics/resources":{"get":{"tags":["Analytics"],"operationId":"listAnalyticsResources","summary":"Lista recursos disponíveis para filtros","description":"Requer analytics.view. Retorna conteúdos, playlists e canais da conta.","responses":{"200":{"description":"Catálogo de recursos.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/analytics/dashboard":{"get":{"tags":["Analytics"],"operationId":"getAnalyticsDashboard","summary":"Consulta métricas consolidadas","description":"Requer analytics.view. Sem período, consulta os últimos sete dias.","parameters":[{"name":"start","in":"query","schema":{"type":"integer"}},{"name":"end","in":"query","schema":{"type":"integer"}},{"name":"grain","in":"query","schema":{"type":"string","enum":["auto","hour","day","month"]}},{"name":"resourceType","in":"query","schema":{"type":"string","enum":["content","playlist","channel"]}},{"name":"resourceID","in":"query","schema":{"type":"string"}},{"name":"playerSource","in":"query","schema":{"type":"string"}},{"name":"domain","in":"query","schema":{"type":"string"}},{"name":"device","in":"query","schema":{"type":"string"}},{"name":"browser","in":"query","schema":{"type":"string"}},{"name":"operatingSystem","in":"query","schema":{"type":"string"}},{"name":"country","in":"query","schema":{"type":"string"}},{"name":"region","in":"query","schema":{"type":"string"}},{"name":"city","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Dashboard com resumo, séries e dimensões.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/analytics/export.csv":{"get":{"tags":["Analytics"],"operationId":"exportAnalyticsCSV","summary":"Exporta as métricas em CSV","description":"Requer analytics.view e aceita os mesmos filtros do dashboard.","parameters":[{"name":"start","in":"query","schema":{"type":"integer"}},{"name":"end","in":"query","schema":{"type":"integer"}},{"name":"grain","in":"query","schema":{"type":"string","enum":["auto","hour","day","month"]}},{"name":"resourceType","in":"query","schema":{"type":"string","enum":["content","playlist","channel"]}},{"name":"resourceID","in":"query","schema":{"type":"string"}},{"name":"playerSource","in":"query","schema":{"type":"string"}},{"name":"domain","in":"query","schema":{"type":"string"}},{"name":"device","in":"query","schema":{"type":"string"}},{"name":"browser","in":"query","schema":{"type":"string"}},{"name":"operatingSystem","in":"query","schema":{"type":"string"}},{"name":"country","in":"query","schema":{"type":"string"}},{"name":"region","in":"query","schema":{"type":"string"}},{"name":"city","in":"query","schema":{"type":"string"}},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Arquivo CSV UTF-8.","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/resources":{"get":{"tags":["Resources"],"operationId":"listPauseAdResources","summary":"Lista recursos elegíveis","description":"Requer content.view. Retorna somente conteúdos, playlists e canais da conta autenticada.","parameters":[{"$ref":"#/components/parameters/ResourceTypeFilter"},{"$ref":"#/components/parameters/StatusFilter"},{"$ref":"#/components/parameters/SearchFilter"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Página de recursos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourcePageResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/creatives":{"get":{"tags":["Creatives"],"operationId":"listPauseAdCreatives","summary":"Lista mídias","description":"Requer content.view. Usa paginação por cursor opaco.","parameters":[{"$ref":"#/components/parameters/StatusFilter"},{"$ref":"#/components/parameters/SearchFilter"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Página de mídias.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativePageResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Creatives"],"operationId":"createPauseAdCreative","summary":"Envia a mídia original","description":"Requer content.upload e Idempotency-Key. Aceita JPEG, PNG ou WebP original, 16:9, no mínimo 1280x720 e até 15 MiB. O GoStream gera WebP 1280x720.","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["original","name","altText","fitMode"],"properties":{"original":{"type":"string","format":"binary"},"name":{"type":"string","maxLength":120},"altText":{"type":"string","maxLength":240},"destinationURL":{"type":["string","null"],"format":"uri","description":"URL HTTPS opcional."},"fitMode":{"type":"string","enum":["contain","cover"]}}}}}},"responses":{"201":{"description":"Mídia criada. Location identifica o recurso; Idempotency-Replayed informa replay.","headers":{"Location":{"schema":{"type":"string"}},"Idempotency-Replayed":{"schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativeResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/creatives/{creativeID}":{"parameters":[{"$ref":"#/components/parameters/CreativeID"}],"get":{"tags":["Creatives"],"operationId":"getPauseAdCreative","summary":"Consulta uma mídia","description":"Requer content.view.","responses":{"200":{"description":"Mídia.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativeResponse"}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"patch":{"tags":["Creatives"],"operationId":"updatePauseAdCreative","summary":"Atualiza metadados","description":"Requer content.upload. Não substitui o arquivo original.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativePatch"}}}},"responses":{"200":{"description":"Mídia atualizada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativeResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Creatives"],"operationId":"archivePauseAdCreative","summary":"Arquiva uma mídia","description":"Requer content.upload. Falha se uma campanha ativa ainda usa a mídia.","responses":{"204":{"description":"Mídia arquivada."},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/pause-ads/creatives/{creativeID}/media":{"get":{"tags":["Creatives"],"operationId":"getPauseAdCreativeMedia","summary":"Obtém o WebP otimizado","description":"Requer content.view. A autorização continua baseada no registro da conta; o objeto não é público.","parameters":[{"$ref":"#/components/parameters/CreativeID"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"WebP 1280x720 imutável.","content":{"image/webp":{"schema":{"type":"string","format":"binary"}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/campaigns":{"get":{"tags":["Campaigns"],"operationId":"listPauseAdCampaigns","summary":"Lista campanhas","description":"Requer content.view.","parameters":[{"$ref":"#/components/parameters/StatusFilter"},{"$ref":"#/components/parameters/SearchFilter"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Página de campanhas.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPageResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Campaigns"],"operationId":"createPauseAdCampaign","summary":"Cria uma campanha","description":"Requer content.upload e Idempotency-Key. Criativos e alvos devem pertencer à conta.","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/AcceptLanguage"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignInput"}}}},"responses":{"201":{"description":"Campanha criada.","headers":{"Location":{"schema":{"type":"string"}},"Idempotency-Replayed":{"schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/campaigns/{campaignID}":{"parameters":[{"$ref":"#/components/parameters/CampaignID"}],"get":{"tags":["Campaigns"],"operationId":"getPauseAdCampaign","summary":"Consulta uma campanha","description":"Requer content.view.","responses":{"200":{"description":"Campanha.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"patch":{"tags":["Campaigns"],"operationId":"updatePauseAdCampaign","summary":"Atualiza uma campanha","description":"Requer content.upload. O corpo contém a representação completa editável.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignInput"}}}},"responses":{"200":{"description":"Campanha atualizada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]},"delete":{"tags":["Campaigns"],"operationId":"archivePauseAdCampaign","summary":"Arquiva uma campanha","description":"Requer content.upload.","responses":{"204":{"description":"Campanha arquivada."},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}},"/v1/pause-ads/reports":{"get":{"tags":["Reports"],"operationId":"getPauseAdReport","summary":"Consulta métricas","description":"Requer analytics.view. Retorna resumo, série temporal, campanhas e criativos da conta.","parameters":[{"$ref":"#/components/parameters/ReportStart"},{"$ref":"#/components/parameters/ReportEnd"},{"$ref":"#/components/parameters/ReportResourceType"},{"$ref":"#/components/parameters/ReportResourceID"},{"$ref":"#/components/parameters/ReportCampaignID"},{"$ref":"#/components/parameters/ReportCreativeID"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Relatório.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PauseAdReportResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/reports/export.csv":{"get":{"tags":["Reports"],"operationId":"exportPauseAdReportCSV","summary":"Exporta métricas em CSV","description":"Requer analytics.view. Aceita os mesmos filtros do relatório JSON e retorna UTF-8 com BOM e campos protegidos contra fórmulas.","parameters":[{"$ref":"#/components/parameters/ReportStart"},{"$ref":"#/components/parameters/ReportEnd"},{"$ref":"#/components/parameters/ReportResourceType"},{"$ref":"#/components/parameters/ReportResourceID"},{"$ref":"#/components/parameters/ReportCampaignID"},{"$ref":"#/components/parameters/ReportCreativeID"},{"$ref":"#/components/parameters/AcceptLanguage"}],"responses":{"200":{"description":"Arquivo CSV.","headers":{"Content-Disposition":{"schema":{"type":"string"}}},"content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/pause-ads/sessions":{"post":{"tags":["Sessions"],"operationId":"createPauseAdBrowserSession","summary":"Cria um bootstrap do navegador","description":"Requer settings.credentials. Use somente no backend. O token dura 15 minutos, é vinculado à origem HTTPS exata e nunca contém a API key.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrowserSessionInput"}}}},"responses":{"201":{"description":"Bootstrap curto para entregar ao navegador.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrowserSessionResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"parameters":[{"$ref":"#/components/parameters/AcceptLanguage"}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"GoStream API key"},"XApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Forma canônica. Envie somente pelo backend."},"BearerApiKey":{"type":"http","scheme":"bearer","bearerFormat":"GoStream API key","description":"Compatibilidade para integrações existentes; também somente no backend."}},"parameters":{"contentID":{"name":"contentID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"uploadID":{"name":"uploadID","in":"path","required":true,"schema":{"type":"string"}},"partNumber":{"name":"partNumber","in":"path","required":true,"schema":{"type":"integer","minimum":1}},"libraryID":{"name":"libraryID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"playlistID":{"name":"playlistID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"channelID":{"name":"channelID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"itemID":{"name":"itemID","in":"path","required":true,"schema":{"type":"string"}},"markerID":{"name":"markerID","in":"path","required":true,"schema":{"type":"string"}},"overlayID":{"name":"overlayID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"outputID":{"name":"outputID","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},"CreativeID":{"name":"creativeID","in":"path","required":true,"schema":{"type":"string"}},"CampaignID":{"name":"campaignID","in":"path","required":true,"schema":{"type":"string"}},"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"description":"De 8 a 128 caracteres ASCII. A resposta concluída é preservada por 24 horas.","schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9:_-]+$"}},"ResourceTypeFilter":{"name":"type","in":"query","schema":{"$ref":"#/components/schemas/ResourceType"}},"StatusFilter":{"name":"status","in":"query","schema":{"type":"string","maxLength":40}},"SearchFilter":{"name":"search","in":"query","schema":{"type":"string","maxLength":120}},"Limit":{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},"Cursor":{"name":"cursor","in":"query","description":"Cursor opaco devolvido em nextCursor. Não construa manualmente.","schema":{"type":"string"}},"ReportStart":{"name":"start","in":"query","required":true,"description":"Data ou instante ISO 8601.","schema":{"type":"string"}},"ReportEnd":{"name":"end","in":"query","required":true,"description":"Data ou instante ISO 8601; intervalo máximo de 89 dias.","schema":{"type":"string"}},"ReportResourceType":{"name":"resourceType","in":"query","schema":{"$ref":"#/components/schemas/ResourceType"}},"ReportResourceID":{"name":"resourceID","in":"query","schema":{"type":"string","format":"uuid"}},"ReportCampaignID":{"name":"campaignID","in":"query","schema":{"type":"string"}},"ReportCreativeID":{"name":"creativeID","in":"query","schema":{"type":"string"}},"AcceptLanguage":{"name":"Accept-Language","in":"header","required":false,"description":"Idioma opcional das mensagens e relatórios. Valores técnicos e códigos de erro não são traduzidos.","schema":{"type":"string","enum":["pt-BR","en","es"],"default":"pt-BR"}}},"schemas":{"JSONBody":{"type":"object","additionalProperties":true},"UploadLibrary":{"type":"object","required":["id","name","item_count"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"item_count":{"type":"integer","minimum":0}}},"UploadLibraryCatalogResponse":{"type":"object","required":["ok","libraries"],"properties":{"ok":{"const":true},"libraries":{"type":"array","items":{"$ref":"#/components/schemas/UploadLibrary"}}}},"ContentUploadInitiateInput":{"type":"object","additionalProperties":false,"required":["fileName","contentType","size","encodingProfileID"],"properties":{"fileName":{"type":"string","maxLength":180},"contentType":{"type":"string","maxLength":120},"size":{"type":"integer","minimum":1},"encodingProfileID":{"type":"string","format":"uuid"},"libraryID":{"type":"string","format":"uuid"},"overlayID":{"type":"string","format":"uuid"},"metadataFileName":{"type":"string"},"metadataJSON":{"type":"string"},"requestID":{"type":"string","format":"uuid"}}},"APIResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":true},"APIError":{"type":"object","properties":{"ok":{"const":false},"code":{"type":"string","examples":["INVALID_CURSOR","RATE_LIMITED"]},"message":{"type":"string"},"requestID":{"type":"string","description":"Identificador para suporte quando disponível."}},"required":["ok","message","code"]},"ResourceType":{"type":"string","enum":["content","playlist","channel"]},"PageInfo":{"type":"object","required":["hasMore","nextCursor"],"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"type":["string","null"]}}},"Resource":{"type":"object","required":["id","type","name","status","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"type":{"$ref":"#/components/schemas/ResourceType"},"name":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}}},"ResourcePageResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/PageInfo"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}}}}]}}}]},"Creative":{"type":"object","required":["id","name","status","sourceWidth","sourceHeight","optimizedWidth","optimizedHeight","mimeType","byteSize","optimizedByteSize","altText","fitMode","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string","enum":["PROCESSING","READY","FAILED","ARCHIVED"]},"originalFileName":{"type":"string"},"sha256":{"type":"string"},"sourceWidth":{"type":"integer"},"sourceHeight":{"type":"integer"},"optimizedWidth":{"const":1280},"optimizedHeight":{"const":720},"mimeType":{"type":"string"},"byteSize":{"type":"integer"},"optimizedByteSize":{"type":"integer"},"altText":{"type":"string"},"destinationURL":{"type":["string","null"],"format":"uri"},"fitMode":{"type":"string","enum":["contain","cover"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"archivedAt":{"type":["string","null"],"format":"date-time"}}},"CreativePatch":{"type":"object","minProperties":1,"properties":{"name":{"type":"string","maxLength":120},"altText":{"type":"string","maxLength":240},"destinationURL":{"type":["string","null"],"format":"uri"},"fitMode":{"type":"string","enum":["contain","cover"]}}},"CreativeResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Creative"}}}]},"CreativePageResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/PageInfo"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Creative"}}}}]}}}]},"CampaignCreative":{"type":"object","required":["creativeID","weight"],"properties":{"creativeID":{"type":"string","format":"uuid"},"weight":{"type":"integer","minimum":1}}},"CampaignTarget":{"type":"object","required":["resourceType","resourceID"],"properties":{"resourceType":{"$ref":"#/components/schemas/ResourceType"},"resourceID":{"type":"string","format":"uuid"}}},"CampaignInput":{"type":"object","required":["name","status","priority","startsAt","endsAt","timezone","minWatchSeconds","cooldownSeconds","sessionCap","closeAfterSeconds","creatives","targets"],"properties":{"name":{"type":"string","maxLength":120},"status":{"type":"string","enum":["DRAFT","ACTIVE","PAUSED","ENDED"]},"priority":{"type":"integer"},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"timezone":{"type":"string","examples":["America/Sao_Paulo"]},"minWatchSeconds":{"type":"integer","minimum":0},"cooldownSeconds":{"type":"integer","minimum":0},"sessionCap":{"type":"integer","minimum":1},"closeAfterSeconds":{"type":"integer","minimum":5,"maximum":60},"creatives":{"type":"array","items":{"$ref":"#/components/schemas/CampaignCreative"}},"targets":{"type":"array","items":{"$ref":"#/components/schemas/CampaignTarget"}}}},"Campaign":{"allOf":[{"$ref":"#/components/schemas/CampaignInput"},{"type":"object","required":["id","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"archivedAt":{"type":["string","null"],"format":"date-time"}}}]},"CampaignResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Campaign"}}}]},"CampaignPageResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/PageInfo"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Campaign"}}}}]}}}]},"PauseAdMetrics":{"type":"object","required":["impressions","uniqueSessions","clicks","clickThroughRate","averageVisibleDuration","manualCloses","autoCloses","resumes","noFills","errors"],"properties":{"impressions":{"type":"integer"},"uniqueSessions":{"type":"integer"},"clicks":{"type":"integer"},"clickThroughRate":{"type":"number"},"averageVisibleDuration":{"type":"number"},"manualCloses":{"type":"integer"},"autoCloses":{"type":"integer"},"resumes":{"type":"integer"},"noFills":{"type":"integer"},"errors":{"type":"integer"}}},"PauseAdReport":{"type":"object","required":["query","summary","series","campaigns","creatives"],"properties":{"query":{"type":"object","additionalProperties":true},"summary":{"$ref":"#/components/schemas/PauseAdMetrics"},"series":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PauseAdMetrics"},{"type":"object","properties":{"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"}}}]}},"campaigns":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PauseAdMetrics"},{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}]}},"creatives":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PauseAdMetrics"},{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}]}}}},"PauseAdReportResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PauseAdReport"}}}]},"BrowserSessionInput":{"type":"object","required":["resourceType","resourceID","embedDomain"],"properties":{"resourceType":{"$ref":"#/components/schemas/ResourceType"},"resourceID":{"type":"string","format":"uuid"},"embedDomain":{"type":"string","format":"uri","description":"Origem HTTPS exata, sem caminho, query, fragmento ou credenciais."}}},"BrowserSession":{"type":"object","required":["sessionToken","configURL","telemetryURL","sdkURL","expiresAt"],"properties":{"sessionToken":{"type":"string","description":"Bearer de bootstrap com validade de 15 minutos."},"configURL":{"type":"string","format":"uri"},"telemetryURL":{"type":"string","format":"uri"},"sdkURL":{"const":"https://docs.stream.goinnovation.ai/sdk/pause-ads-v1.js"},"expiresAt":{"type":"string","format":"date-time"}}},"BrowserSessionResponse":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BrowserSession"}}}]},"Success":{"type":"object","required":["ok"],"properties":{"ok":{"const":true}}}},"responses":{"Success":{"description":"Operação concluída.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIResponse"}}}},"Unauthorized":{"description":"API key ausente, inválida ou revogada.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"Forbidden":{"description":"Permissão ou domínio insuficiente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"BadRequest":{"description":"Entrada inválida.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"NotFound":{"description":"Recurso inexistente ou fora da conta.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"Conflict":{"description":"Conflito de estado ou idempotência.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"PayloadTooLarge":{"description":"Upload acima do limite.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"UnsupportedMediaType":{"description":"Tipo de corpo ou imagem não aceito.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"UnprocessableEntity":{"description":"Imagem não atende dimensões ou proporção.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"RateLimited":{"description":"Rate limit excedido.","headers":{"Retry-After":{"description":"Segundos até a próxima tentativa.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}},"requestBodies":{"JSON":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JSONBody"}}}},"Binary":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}}}