{"id":48604,"date":"2025-03-07T17:54:01","date_gmt":"2025-03-07T22:54:01","guid":{"rendered":"https:\/\/bitcoincounterflow.com\/?page_id=48604"},"modified":"2025-10-13T12:24:09","modified_gmt":"2025-10-13T16:24:09","slug":"api","status":"publish","type":"page","link":"https:\/\/bitcoincounterflow.com\/pt\/api\/","title":{"rendered":"API"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"48604\" class=\"elementor elementor-48604\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a75bfc8 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"a75bfc8\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-587fd3c elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"587fd3c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Bitcoin CounterFlow API Access<\/title>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600&display=swap\" rel=\"stylesheet\">\r\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/themes\/prism-dark.min.css\" rel=\"stylesheet\" \/>\r\n    <style>\r\n        .ct-container-full {\r\n            padding: 0;\r\n        }\r\n            \r\n        body {\r\n            background: #0a0a0a;\r\n            color: #ffffff;\r\n            font-family: 'Inter', sans-serif;\r\n            margin: 0;\r\n            padding: 0;\r\n        }\r\n\r\n        .api-key-container {\r\n            background: #080808;\r\n            display: flex;\r\n            gap: 30px;\r\n            width: 100%;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        h2 {\r\n            font-weight: 500;\r\n            font-size: 26px;\r\n            margin-bottom: 25px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        h3 {\r\n            font-weight: 500;\r\n            font-size: 22px;\r\n            margin-bottom: 20px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .api-key-left {\r\n            flex: 1;\r\n            min-width: 350px;\r\n            background: #101010;\r\n            padding: 30px;\r\n            max-width: 482px;\r\n        }\r\n        \r\n        .api-key-left p {\r\n            font-size: 15px;\r\n        }\r\n\r\n        .api-key-input-container {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n            margin-top: 20px;\r\n        }\r\n\r\n        .api-key-input {\r\n            flex: 1;\r\n            padding: 12px;\r\n            background: #222222;\r\n            border: 1px solid #444444;\r\n            color: #ffffff;\r\n            border-radius: 4px;\r\n            font-size: 14px;\r\n            text-align: center;\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .api-key-buttons {\r\n            display: flex;\r\n            gap: 12px;\r\n            justify-content: center;\r\n            margin-top: 20px;\r\n        }\r\n\r\n        button#toggleApiKey {\r\n            padding: 8px 10px;\r\n            font-size: 14px;\r\n            color: #ffffff;\r\n            background: #222222;\r\n            border: 1px solid #444444;\r\n            cursor: pointer;\r\n            border-radius: 4px;\r\n            transition: background 0.3s ease;\r\n        }\r\n\r\n        .api-key-buttons button {\r\n            flex: 1;\r\n            padding: 12px;\r\n            font-size: 14px;\r\n            color: #ffffff;\r\n            background: #222222;\r\n            border: 1px solid #444444;\r\n            cursor: pointer;\r\n            border-radius: 4px;\r\n            transition: background 0.3s ease;\r\n        }\r\n\r\n        .api-key-buttons button:hover {\r\n            background: #333333;\r\n        }\r\n\r\n        .hidden-key {\r\n            letter-spacing: 2px;\r\n        }\r\n\r\n        .error-message {\r\n            color: #ff5555;\r\n            margin-top: 15px;\r\n            font-size: 13px;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .api-container {\r\n            background: #080808;\r\n            border-radius: 8px;\r\n            padding: 30px;\r\n            flex: 2;\r\n            max-width: 1000px;\r\n        }\r\n        \r\n        .api-container {\r\n         font-size: 14px   \r\n        }    \r\n\r\n        .api-container h1 {\r\n            font-size: 30px;\r\n            margin-bottom: 25px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .api-container span {\r\n            display: block;\r\n            margin: 15px 0;\r\n            font-size: 14px;\r\n            line-height: 1.7;\r\n            color: #cccccc;\r\n        }\r\n\r\n        code {\r\n            background: #1a1a1a;\r\n            border: 1px solid #333333;\r\n            color: #cccccc;\r\n            padding: 4px 8px;\r\n            border-radius: 4px;\r\n            font-size: 13px;\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .api-links {\r\n            list-style: none;\r\n            padding: 0;\r\n            margin: 25px 0;\r\n        }\r\n\r\n        .api-links li {\r\n            margin: 12px 0;\r\n            font-size: 14px;\r\n            color: #cccccc;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        .api-links .category {\r\n            font-weight: 600;\r\n            font-size: 16px;\r\n            margin: 25px 0 15px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .api-links a {\r\n            color: #aaaaaa;\r\n            text-decoration: none;\r\n            transition: color 0.3s ease;\r\n        }\r\n\r\n        .api-links a:hover {\r\n            color: #ffffff;\r\n            text-decoration: underline;\r\n        }\r\n\r\n        .note {\r\n            margin-top: 25px;\r\n            font-size: 13px;\r\n            color: #999999;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        .api-test-form {\r\n            margin-top: 25px;\r\n            padding: 20px;\r\n            background: #101010;\r\n            border-radius: 8px;\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            gap: 12px;\r\n            align-items: center;\r\n        }\r\n\r\n        .api-test-form label {\r\n            font-size: 13px;\r\n            color: #cccccc;\r\n            margin-right: 10px;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .api-test-form input,\r\n        .api-test-form select {\r\n            padding: 10px;\r\n            background: #222222;\r\n            border: 1px solid #444444;\r\n            color: #ffffff;\r\n            border-radius: 4px;\r\n            font-size: 13px;\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .api-test-form input[type=\"number\"] {\r\n            width: 80px;\r\n        }\r\n\r\n        .api-test-form select {\r\n            width: 160px;\r\n        }\r\n\r\n        .api-test-form option {\r\n            color: #ffffff;\r\n        }\r\n\r\n        .api-test-form button {\r\n            padding: 10px 18px;\r\n            font-size: 13px;\r\n            color: #ffffff;\r\n            background: #222222;\r\n            border: 1px solid #444444;\r\n            cursor: pointer;\r\n            border-radius: 4px;\r\n            transition: background 0.3s ease;\r\n        }\r\n\r\n        .api-test-form button:hover {\r\n            background: #333333;\r\n        }\r\n\r\n        .api-test-form button:disabled {\r\n            background: #444444;\r\n            cursor: not-allowed;\r\n        }\r\n\r\n        .api-test-response {\r\n            margin-top: 20px;\r\n            padding: 15px;\r\n            background: #1a1a1a;\r\n            border: 1px solid #333333;\r\n            border-radius: 4px;\r\n            max-height: 350px;\r\n            overflow-y: auto;\r\n            font-family: 'Inter', sans-serif;\r\n            font-size: 13px;\r\n            color: #cccccc;\r\n        }\r\n\r\n        .api-test-error {\r\n            color: #ff5555;\r\n            font-size: 13px;\r\n            margin-top: 15px;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .api-test-response-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .api-test-response-header span {\r\n            font-size: 13px;\r\n            color: #ffffff;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .api-test-response-header button {\r\n            padding: 6px 12px;\r\n            font-size: 12px;\r\n        }\r\n\r\n        .exclusive-banner {\r\n            background: #222222;\r\n            color: #ffffff;\r\n            padding: 12px;\r\n            border-radius: 4px;\r\n            margin-bottom: 25px;\r\n            font-size: 14px;\r\n            text-align: center;\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .endpoint-details {\r\n            margin-top: 25px;\r\n            padding: 20px;\r\n            background: #101010;\r\n            border-radius: 8px;\r\n        }\r\n\r\n        .endpoint-details h4 {\r\n            font-size: 16px;\r\n            margin-bottom: 15px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .endpoint-details pre {\r\n            background: #1a1a1a;\r\n            border: 1px solid #333333;\r\n            padding: 15px;\r\n            border-radius: 4px;\r\n            font-size: 13px;\r\n            color: #cccccc;\r\n            overflow-x: auto;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        .request-history {\r\n            margin-top: 25px;\r\n            padding: 20px;\r\n            background: #101010;\r\n            border-radius: 8px;\r\n        }\r\n\r\n        .request-history h4 {\r\n            font-size: 16px;\r\n            margin-bottom: 15px;\r\n            color: #ffffff;\r\n            line-height: 1.5;\r\n        }\r\n\r\n        .request-history ul {\r\n            list-style: none;\r\n            padding: 0;\r\n        }\r\n\r\n        .request-history li {\r\n            margin: 10px 0;\r\n            font-size: 13px;\r\n            color: #cccccc;\r\n            line-height: 1.7;\r\n        }\r\n\r\n        .sc-dtOqdk {\r\n            position: relative;\r\n            display: flex;\r\n            align-items: center;\r\n            width: 100%;\r\n            margin-bottom: 15px;\r\n            margin-top: 25px;\r\n        }\r\n\r\n        .sc-hPGoDJ {\r\n            width: 100%;\r\n            padding: 10px 35px 10px 12px;\r\n            border: 1px solid #444444;\r\n            border-radius: 4px;\r\n            background: #222222;\r\n            color: #ffffff;\r\n            font-size: 14px;\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        .sc-kBpWFy {\r\n            position: absolute;\r\n            right: 12px;\r\n            width: 20px;\r\n            height: 20px;\r\n            fill: #ffffff;\r\n        }\r\n\r\n        .search-results {\r\n            width: 100%;\r\n            max-width: 320px;\r\n            padding: 10px;\r\n            border: 1px solid #444444;\r\n            border-radius: 4px;\r\n            background: #222222;\r\n            color: #ffffff;\r\n            font-size: 14px;\r\n            margin-top: 8px;\r\n            font-family: 'Inter', sans-serif;\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .api-key-container {\r\n                flex-direction: column;\r\n                padding: 20px;\r\n            }\r\n\r\n            .api-key-left {\r\n                min-width: 100%;\r\n                padding: 20px;\r\n            }\r\n\r\n            .api-container {\r\n                padding: 20px;\r\n            }\r\n\r\n            .api-links li {\r\n                font-size: 13px;\r\n                line-height: 1.6;\r\n            }\r\n\r\n            .api-links .category {\r\n                font-size: 15px;\r\n            }\r\n\r\n            .api-container h1 {\r\n                font-size: 26px;\r\n            }\r\n\r\n            .api-container span {\r\n                font-size: 13px;\r\n                line-height: 1.6;\r\n            }\r\n\r\n            .api-test-form {\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n            }\r\n\r\n            .api-test-form input,\r\n            .api-test-form select {\r\n                width: 100%;\r\n            }\r\n\r\n            .api-test-form button {\r\n                width: 100%;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n\r\n\r\n<body>\r\n    <div class=\"api-key-container\">\r\n        <div class=\"api-key-left\">\r\n            <div class=\"exclusive-banner\">\r\n                <strong>Exclusivo Nakamoto Pro:<\/strong> Acesso completo \u00e0 API e aos dados premium do BitcoinCounterFlow\r\n            <\/div>\r\n            <div class=\"hidden-from-subscriber\">\r\n                <h3>Gerenciar Sua Chave API<\/h3>\r\n                <p>Gere ou exclua sua chave API para acessar os endpoints de dados.<\/p>\r\n                <div class=\"api-key-input-container\">\r\n                    <input type=\"text\" id=\"apiKeyInput\" class=\"api-key-input hidden-key\" value=\"************\" readonly>\r\n                    <button id=\"toggleApiKey\" onclick=\"toggleApiKey()\">\ud83d\udc41<\/button>\r\n                <\/div>\r\n                <div class=\"api-key-buttons\">\r\n                    <button id=\"generateApiKeyButton\" onclick=\"generateApiKey()\">Gerar Nova Chave<\/button>\r\n                    <button id=\"deleteApiKeyButton\" onclick=\"deleteApiKey()\">Excluir Chave<\/button>\r\n                <\/div>\r\n                <div id=\"errorMessage\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n            <\/div>\r\n            <div role=\"search\" class=\"sc-dtOqdk cqdCbT\" style=\"display:none;\">\r\n                <svg class=\"sc-kBpWFy dFxKpJ search-icon\" version=\"1.1\" viewBox=\"0 0 1000 1000\" x=\"0px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" y=\"0px\">\r\n                    <path d=\"M968.2,849.4L667.3,549c83.9-136.5,66.7-317.4-51.7-435.6C477.1-25,252.5-25,113.9,113.4c-138.5,138.3-138.5,362.6,0,501C219.2,730.1,413.2,743,547.6,666.5l301.9,301.4c43.6,43.6,76.9,14.9,104.2-12.4C981,928.3,1011.8,893,968.2,849.4z M524.5,522c-88.9,88.7-233,88.7-321.8,0c-88.9-88.7-88.9-232.6,0-321.3c88.9-88.7,233-88.7,321.8,0C613.4,289.4,613.4,433.3,524.5,522z\"><\/path>\r\n                <\/svg>\r\n                <input placeholder=\"Pesquisar...\" aria-label=\"Pesquisar\" type=\"text\" class=\"sc-hPGoDJ cqNDQc search-input\" value=\"\">\r\n            <\/div>\r\n            <select class=\"search-results\" id=\"searchResults\" style=\"display: none;\">\r\n                <option value=\"\">Selecione um resultado...<\/option>\r\n            <\/select>\r\n            <div id=\"searchError\" class=\"error-message\" style=\"display: none;\"><\/div>\r\n            <ul class=\"api-links\">\r\n                <li class=\"category\">Dados de Mercado<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/m2-global\" target=\"_blank\" rel=\"noreferrer\">Crescimento Global M2<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/open-interest\" target=\"_blank\" rel=\"noreferrer\">Interesse Aberto<\/a> <span>(Suporta <code>days<\/code> e <code>interval<\/code>)<\/span><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-dominance\" target=\"_blank\" rel=\"noreferrer\">Domin\u00e2ncia do Bitcoin<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/volume\" target=\"_blank\" rel=\"noreferrer\">Volume de Futuros das Exchanges (Mais Recente)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/liquidation-heatmap\" target=\"_blank\" rel=\"noreferrer\">N\u00edveis do Mapa de Liquida\u00e7\u00e3o<\/a> <span class=\"new-tag\" style=\"background: #333333; color: #ffffff; padding: 2px 6px; border-radius: 3px; font-size: 12px; margin-left: 5px;\">NOVO<\/span> <span>(Suporta <code>period<\/code>)<\/span><\/li>\r\n                <li class=\"category\">Taxas de Financiamento<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/list-global-funding-rate\" target=\"_blank\" rel=\"noreferrer\">Taxa de Financiamento - Dados Completos<\/a> <span>(Suporta <code>days<\/code> e <code>interval<\/code>)<\/span><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-stats\" target=\"_blank\" rel=\"noreferrer\">Taxa de Financiamento - Dados Di\u00e1rios<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/last-global-funding-rate\" target=\"_blank\" rel=\"noreferrer\">Taxa de Financiamento - Valor Mais Recente por Minuto<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/exchanges-funding-rate\" target=\"_blank\" rel=\"noreferrer\">Taxa de Financiamento - Mais Recente por Exchange<\/a><\/li>\r\n                <li class=\"category\">Indicadores de Sentimento<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/google-trends\" target=\"_blank\" rel=\"noreferrer\">Google Trends - Ciclo Atual<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/google-trends-10y\" target=\"_blank\" rel=\"noreferrer\">Google Trends - 10 Anos<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/nupl\" target=\"_blank\" rel=\"noreferrer\">Lucro\/Preju\u00edzo N\u00e3o Realizado L\u00edquido (NUPL)<\/a><\/li>\r\n                <li class=\"category\">Dados de Pre\u00e7o<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-usdt\" target=\"_blank\" rel=\"noreferrer\">BTC\/USDT<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-eur\" target=\"_blank\" rel=\"noreferrer\">BTC\/EUR<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-brl\" target=\"_blank\" rel=\"noreferrer\">BTC\/BRL<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-ibov\" target=\"_blank\" rel=\"noreferrer\">BTC\/BRL vs. IBOV<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-spx\" target=\"_blank\" rel=\"noreferrer\">BTC vs. S&P 500<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/btc-gold\" target=\"_blank\" rel=\"noreferrer\">BTC vs. Ouro<\/a><\/li>\r\n                <li class=\"category\">M\u00e9tricas de Desempenho<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">M\u00e1xima Hist\u00f3rica (ATH)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">Queda da M\u00e1xima Hist\u00f3rica (%)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">Data da M\u00e1xima Hist\u00f3rica<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">Varia\u00e7\u00e3o de Pre\u00e7o - 24h (%)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">Varia\u00e7\u00e3o de Pre\u00e7o - 7d (%)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-performance\" target=\"_blank\" rel=\"noreferrer\">Varia\u00e7\u00e3o de Pre\u00e7o - 1M (%)<\/a><\/li>\r\n                <li class=\"category\">Dados de Investimento<\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/dca-calculator\" target=\"_blank\" rel=\"noreferrer\">Calculadora de DCA (Todos os \u00cdndices)<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/etf-data\" target=\"_blank\" rel=\"noreferrer\">Dados de ETFs de Bitcoin<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/bitcoin-treasuries\" target=\"_blank\" rel=\"noreferrer\">Tesourarias de Bitcoin<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/strategy-history\" target=\"_blank\" rel=\"noreferrer\">Pre\u00e7o e Volume OHLC da MicroStrategy<\/a><\/li>\r\n                <li><a href=\"https:\/\/api.bitcoincounterflow.com\/api\/microstrategy-treasuries\" target=\"_blank\" rel=\"noreferrer\">Tesourarias da MicroStrategy<\/a><\/li>\r\n            <\/ul>\r\n            <p class=\"note\"><strong>Nota:<\/strong> Nossa API \u00e9 continuamente aprimorada para fornecer acesso robusto aos dados. A documenta\u00e7\u00e3o abrangente ser\u00e1 lan\u00e7ada em breve para facilitar a integra\u00e7\u00e3o.<\/p>\r\n        <\/div>\r\n        <div class=\"api-container\">\r\n            <h2>API de Dados Bitcoin CounterFlow<\/h2>\r\n            <p>\r\n                Suporte da API: satoshi@bitcoincounterflow.com<br>\r\n                Endpoint Raiz da API: <code>https:\/\/api.bitcoincounterflow.com\/<\/code>\r\n            <\/p>\r\n            <p>\r\n                A API de Dados Bitcoin CounterFlow fornece acesso ao hist\u00f3rico de pre\u00e7os, taxas de financiamento, interesse aberto, dados de liquida\u00e7\u00e3o e outras m\u00e9tricas macro do Bitcoin. Projetada para traders, analistas e desenvolvedores que necessitam de dados avan\u00e7ados.\r\n            <\/p>\r\n            <h2>Instru\u00e7\u00f5es de Uso da API<\/h2>\r\n            <span>Assinantes Nakamoto Pro t\u00eam acesso exclusivo a todos os endpoints da API. Adicione sua chave API \u00e0 URL usando o par\u00e2metro <code>apikey<\/code>. Explore exemplos e ferramentas abaixo para come\u00e7ar.<\/span>\r\n            \r\n            <br><span><strong>Uso B\u00e1sico:<\/strong> Adicione sua chave API a qualquer endpoint. Exemplo para Crescimento Global M2:<\/span>\r\n            <code>https:\/\/api.bitcoincounterflow.com\/api\/m2-global?apikey=SUA_CHAVE_API<\/code>\r\n            <br><br><span><strong>Filtragem de Dados:<\/strong> Os endpoints <code>open-interest<\/code>, <code>funding-rate<\/code> e <code>liquidation-heatmap<\/code> suportam par\u00e2metros para filtragem e agrega\u00e7\u00e3o:<\/span>\r\n            \r\n            <span>Intervalos Suportados (open-interest, funding-rate): <code>15m<\/code>, <code>30m<\/code>, <code>1h<\/code>, <code>2h<\/code>, <code>4h<\/code>, <code>1d<\/code>, <code>1w<\/code>, <code>1mo<\/code> (30 dias).<\/span>\r\n            <span>Per\u00edodos Suportados (liquidation-heatmap): <code>12h<\/code>, <code>24h<\/code>, <code>48h<\/code>, <code>3day<\/code>, <code>1week<\/code>, <code>2week<\/code>, <code>1month<\/code>, <code>2month<\/code>, <code>3month<\/code>, <code>6month<\/code>.<\/span>\r\n            <br><span><strong>Exemplo com Par\u00e2metros Combinados:<\/strong><\/span>\r\n            <code>https:\/\/api.bitcoincounterflow.com\/api\/liquidation-heatmap?period=1month&apikey=SUA_CHAVE_API<\/code>\r\n            <div class=\"api-test-form\">\r\n                <label for=\"testEndpoint\">Endpoint:<\/label>\r\n                <select id=\"testEndpoint\" onchange=\"updateTestForm()\">\r\n                    <option value=\"m2-global\">Crescimento Global M2<\/option>\r\n                    <option value=\"open-interest\">Interesse Aberto<\/option>\r\n                    <option value=\"bitcoin-dominance\">Domin\u00e2ncia do Bitcoin<\/option>\r\n                    <option value=\"volume\">Volume de Futuros das Exchanges<\/option>\r\n                    <option value=\"liquidation-heatmap\">Mapa de Liquida\u00e7\u00e3o<\/option>\r\n                    <option value=\"list-global-funding-rate\" selected>Taxa de Financiamento - Dados Completos<\/option>\r\n                    <option value=\"bitcoin-stats\">Taxa de Financiamento - Dados Di\u00e1rios<\/option>\r\n                    <option value=\"last-global-funding-rate\">Taxa de Financiamento - Valor Mais Recente<\/option>\r\n                    <option value=\"exchanges-funding-rate\">Taxa de Financiamento - Mais Recente por Exchange<\/option>\r\n                    <option value=\"google-trends\">Google Trends - Ciclo Atual<\/option>\r\n                    <option value=\"google-trends-10y\">Google Trends - 10 Anos<\/option>\r\n                    <option value=\"nupl\">NUPL<\/option>\r\n                    <option value=\"btc-usdt\">BTC\/USDT<\/option>\r\n                    <option value=\"btc-eur\">BTC\/EUR<\/option>\r\n                    <option value=\"btc-brl\">BTC\/BRL<\/option>\r\n                    <option value=\"btc-ibov\">BTC\/BRL vs. IBOV<\/option>\r\n                    <option value=\"btc-spx\">BTC vs. S&P 500<\/option>\r\n                    <option value=\"btc-gold\">BTC vs. Ouro<\/option>\r\n                    <option value=\"bitcoin-performance\">Desempenho do Bitcoin<\/option>\r\n                    <option value=\"dca-calculator\">Calculadora de DCA<\/option>\r\n                    <option value=\"etf-data\">Dados de ETFs de Bitcoin<\/option>\r\n                    <option value=\"bitcoin-treasuries\">Tesourarias de Bitcoin<\/option>\r\n                    <option value=\"microstrategy-ohlc\">OHLC da MicroStrategy<\/option>\r\n                    <option value=\"microstrategy-treasuries\">Tesourarias da MicroStrategy<\/option>\r\n                <\/select>\r\n                <label for=\"testApiKey\">Chave API:<\/label>\r\n                <input type=\"text\" id=\"testApiKey\" placeholder=\"Gere uma chave API\" required>\r\n                <label for=\"testDays\" id=\"testDaysLabel\">Dias:<\/label>\r\n                <input type=\"number\" id=\"testDays\" value=\"30\" min=\"1\">\r\n                <label for=\"testInterval\" id=\"testIntervalLabel\">Intervalo:<\/label>\r\n                <select id=\"testInterval\">\r\n                    <option value=\"15m\">15m<\/option>\r\n                    <option value=\"30m\">30m<\/option>\r\n                    <option value=\"1h\">1h<\/option>\r\n                    <option value=\"2h\">2h<\/option>\r\n                    <option value=\"4h\">4h<\/option>\r\n                    <option value=\"1d\" selected>1d<\/option>\r\n                    <option value=\"1w\">1w<\/option>\r\n                    <option value=\"1mo\">1mo<\/option>\r\n                <\/select>\r\n                <label for=\"testPeriod\" id=\"testPeriodLabel\" style=\"display: none;\">Per\u00edodo:<\/label>\r\n                <select id=\"testPeriod\" style=\"display: none;\">\r\n                    <option value=\"12h\">12h<\/option>\r\n                    <option value=\"24h\">24h<\/option>\r\n                    <option value=\"48h\">48h<\/option>\r\n                    <option value=\"3day\">3 dias<\/option>\r\n                    <option value=\"1week\">1 semana<\/option>\r\n                    <option value=\"2week\">2 semanas<\/option>\r\n                    <option value=\"1month\" selected>1 m\u00eas<\/option>\r\n                    <option value=\"2month\">2 meses<\/option>\r\n                    <option value=\"3month\">3 meses<\/option>\r\n                    <option value=\"6month\">6 meses<\/option>\r\n                    <option value=\"1year\">1 ano<\/option>\r\n                <\/select>\r\n                <button id=\"testApiButton\" onclick=\"testApi()\">Testar API<\/button>\r\n                <button id=\"downloadCsvButton\" onclick=\"downloadResponse('csv')\" style=\"display: none;\">Baixar CSV<\/button>\r\n                <button id=\"downloadJsonButton\" onclick=\"downloadResponse('json')\" style=\"display: none;\">Baixar JSON<\/button>\r\n            <\/div>\r\n            <div class=\"api-test-response\" id=\"apiTestResponse\" style=\"display: none;\">\r\n                <div class=\"api-test-response-header\">\r\n                    <span id=\"responseSummary\"><\/span>\r\n                    <button onclick=\"copyResponse()\">Copiar Resposta<\/button>\r\n                <\/div>\r\n                <pre id=\"responseContent\"><\/pre>\r\n            <\/div>\r\n            <div id=\"apiTestError\" class=\"api-test-error\" style=\"display: none;\"><\/div>\r\n            <div class=\"request-history\">\r\n                <h4>Hist\u00f3rico de Requisi\u00e7\u00f5es<\/h4>\r\n                <ul id=\"requestHistory\"><\/ul>\r\n            <\/div>\r\n            <div class=\"endpoint-details\">\r\n                <h4>Detalhes dos Endpoints<\/h4>\r\n                <p><strong>Crescimento Global M2 (\/api\/m2-global):<\/strong> Retorna dados hist\u00f3ricos de oferta M2, crescimento ano a ano e pre\u00e7o do Bitcoin em cada ponto.<\/p>\r\n                <pre>[{\r\n    \"date\": \"2013-05-20T00:00:00.000Z\",\r\n    \"btcPrice\": 117.8186364699,\r\n    \"yoyGrowth\": 5.5654014717,\r\n    \"m2Supply\": 59166686473105\r\n}]<\/pre>\r\n                <p><strong>Interesse Aberto (\/api\/open-interest):<\/strong> Dados hist\u00f3ricos de interesse aberto para futuros de Bitcoin, incluindo pre\u00e7o do BTC. Suporta par\u00e2metros <code>days<\/code> e <code>interval<\/code>.<\/p>\r\n                <pre>[{\r\n    \"timestamp\": \"2024-10-30T08:00:00.000Z\",\r\n    \"openInterest\": 89828.522,\r\n    \"price\": 72475.88\r\n}]<\/pre>\r\n                <p><strong>Taxa de Financiamento - Dados Completos (\/api\/list-global-funding-rate):<\/strong> Taxa de financiamento global agregada de grandes exchanges. Suporta par\u00e2metros <code>days<\/code> e <code>interval<\/code>.<\/p>\r\n                <pre>[{\r\n    \"timestamp\": \"2025-06-08T23:18:41.856Z\",\r\n    \"globalFundingRate\": -0.0027\r\n}]<\/pre>\r\n                <p><strong>Mapa de Liquida\u00e7\u00e3o (\/api\/liquidation-heatmap):<\/strong> Retorna faixas de pre\u00e7o e valores de liquidez, ordenados por faixa de pre\u00e7o. Suporta par\u00e2metro <code>period<\/code>.<\/p>\r\n                <pre>[{\r\n    \"priceRange\": 50000,\r\n    \"liquidity\": 1234567.89\r\n}, {\r\n    \"priceRange\": 50200,\r\n    \"liquidity\": 987654.32\r\n}]<\/pre>\r\n                <p><strong>Limites de Requisi\u00e7\u00e3o:<\/strong> 200 requisi\u00e7\u00f5es por hora por chave API, 100 por IP. Erros comuns: <code>401 N\u00e3o Autorizado<\/code> (chave inv\u00e1lida), <code>429 Muitas Requisi\u00e7\u00f5es<\/code> (limite de taxa excedido).<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.6.0\/jquery.min.js\"><\/script>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/prism.min.js\"><\/script>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-json.min.js\"><\/script>\r\n    <script>\r\n        let isApiKeyVisible = false;\r\n        let lastResponse = null;\r\n\r\n        function toggleApiKey() {\r\n            const apiKeyInput = document.getElementById('apiKeyInput');\r\n            if (!apiKeyInput.dataset.key) {\r\n                apiKeyInput.value = \"Nenhuma chave\";\r\n                return;\r\n            }\r\n            if (isApiKeyVisible) {\r\n                apiKeyInput.value = \"************\";\r\n                apiKeyInput.classList.add(\"hidden-key\");\r\n            } else {\r\n                apiKeyInput.value = apiKeyInput.dataset.key;\r\n                apiKeyInput.classList.remove(\"hidden-key\");\r\n            }\r\n            isApiKeyVisible = !isApiKeyVisible;\r\n        }\r\n\r\n        function loadApiKey() {\r\n            const apiKeyInput = document.getElementById('apiKeyInput');\r\n            const toggleButton = document.getElementById('toggleApiKey');\r\n            const testApiKeyInput = document.getElementById('testApiKey');\r\n\r\n            apiKeyInput.style.transition = \"opacity 0.5s ease\";\r\n            apiKeyInput.style.opacity = 0;\r\n\r\n            jQuery.ajax({\r\n                url: ajaxurl,\r\n                type: 'POST',\r\n                data: { action: 'get_api_key' },\r\n                success: function(response) {\r\n                    if (response.success && response.data.api_key) {\r\n                        apiKeyInput.dataset.key = response.data.api_key;\r\n                        apiKeyInput.value = \"************\";\r\n                        testApiKeyInput.value = response.data.api_key;\r\n                        toggleButton.disabled = false;\r\n                    } else {\r\n                        apiKeyInput.dataset.key = \"\";\r\n                        apiKeyInput.value = \"Nenhuma chave API\";\r\n                        testApiKeyInput.placeholder = \"Gere uma chave API primeiro\";\r\n                    }\r\n                    apiKeyInput.style.opacity = 1;\r\n                    updateTestForm();\r\n                }\r\n            });\r\n        }\r\n\r\n        function generateApiKey() {\r\n            const loggedIn = document.body.classList.contains('logged-in');\r\n            if (!loggedIn) {\r\n                document.getElementById('errorMessage').innerText = 'Voc\u00ea deve estar logado para gerar uma chave API.';\r\n                document.getElementById('errorMessage').style.display = 'block';\r\n                return;\r\n            }\r\n\r\n            document.getElementById('errorMessage').style.display = 'none';\r\n\r\n            jQuery.ajax({\r\n                url: ajaxurl,\r\n                type: 'POST',\r\n                data: { action: 'generate_api_key' },\r\n                success: function(response) {\r\n                    if (response.success) {\r\n                        document.getElementById('apiKeyInput').dataset.key = response.data.api_key;\r\n                        document.getElementById('testApiKey').value = response.data.api_key;\r\n                        toggleApiKey();\r\n                    } else {\r\n                        document.getElementById('errorMessage').innerText = 'Erro ao gerar a chave API.';\r\n                        document.getElementById('errorMessage').style.display = 'block';\r\n                    }\r\n                },\r\n                error: function() {\r\n                    document.getElementById('errorMessage').innerText = 'Erro de comunica\u00e7\u00e3o com o servidor.';\r\n                    document.getElementById('errorMessage').style.display = 'block';\r\n                }\r\n            });\r\n        }\r\n\r\n        function deleteApiKey() {\r\n            const loggedIn = document.body.classList.contains('logged-in');\r\n            const apiKeyInput = document.getElementById('apiKeyInput');\r\n            const errorDiv = document.getElementById('errorMessage');\r\n            const toggleButton = document.getElementById('toggleApiKey');\r\n\r\n            if (!loggedIn) {\r\n                errorDiv.innerText = 'Voc\u00ea deve estar logado para excluir a chave API.';\r\n                errorDiv.style.display = 'block';\r\n                return;\r\n            }\r\n\r\n            if (!apiKeyInput.dataset.key) {\r\n                errorDiv.innerText = 'Nenhuma chave API ativa para excluir.';\r\n                errorDiv.style.display = 'block';\r\n                return;\r\n            }\r\n\r\n            if (typeof ajaxurl === 'undefined' || typeof ajax_object === 'undefined' || !ajax_object.nonce) {\r\n                errorDiv.innerText = 'Erro: Configura\u00e7\u00e3o AJAX inv\u00e1lida. Contate o administrador.';\r\n                errorDiv.style.display = 'block';\r\n                console.error('ajaxurl ou nonce n\u00e3o definido.');\r\n                return;\r\n            }\r\n\r\n            errorDiv.style.display = 'none';\r\n\r\n            jQuery.ajax({\r\n                url: ajaxurl,\r\n                type: 'POST',\r\n                data: {\r\n                    action: 'delete_api_key',\r\n                    nonce: ajax_object.nonce\r\n                },\r\n                success: function(response) {\r\n                    if (response.success) {\r\n                        apiKeyInput.value = 'Nenhuma chave API';\r\n                        apiKeyInput.dataset.key = '';\r\n                        document.getElementById('testApiKey').value = '';\r\n                        toggleButton.disabled = true;\r\n                        loadApiKey();\r\n                    } else {\r\n                        const errorMessage = response.data?.message || 'Erro ao excluir a chave API.';\r\n                        errorDiv.innerText = errorMessage;\r\n                        errorDiv.style.display = 'block';\r\n                        console.error('Erro na resposta do servidor:', response);\r\n                    }\r\n                },\r\n                error: function(jqXHR, textStatus, errorThrown) {\r\n                    const statusCode = jqXHR.status || 'Desconhecido';\r\n                    const responseText = jqXHR.responseText || 'Sem resposta do servidor';\r\n                    let errorMessage = `Erro de comunica\u00e7\u00e3o com o servidor: ${textStatus} (C\u00f3digo ${statusCode})`;\r\n                    try {\r\n                        const responseJson = JSON.parse(responseText);\r\n                        if (responseJson.data && responseJson.data.message) {\r\n                            errorMessage += ` - ${responseJson.data.message}`;\r\n                        }\r\n                    } catch (e) {}\r\n                    errorDiv.innerText = errorMessage;\r\n                    errorDiv.style.display = 'block';\r\n                    console.error('Erro AJAX:', {\r\n                        status: statusCode,\r\n                        statusText: textStatus,\r\n                        errorThrown: errorThrown,\r\n                        responseText: responseText\r\n                    });\r\n                },\r\n                complete: function() {\r\n                    loadApiKey();\r\n                }\r\n            });\r\n        }\r\n\r\n        function updateTestForm() {\r\n            const endpoint = document.getElementById('testEndpoint').value;\r\n            const testDaysLabel = document.getElementById('testDaysLabel');\r\n            const testDays = document.getElementById('testDays');\r\n            const testIntervalLabel = document.getElementById('testIntervalLabel');\r\n            const testInterval = document.getElementById('testInterval');\r\n            const testPeriodLabel = document.getElementById('testPeriodLabel');\r\n            const testPeriod = document.getElementById('testPeriod');\r\n            const supportsFilters = ['open-interest', 'list-global-funding-rate'].includes(endpoint);\r\n            const supportsPeriod = endpoint === 'liquidation-heatmap';\r\n\r\n            testDaysLabel.style.display = supportsFilters ? 'inline' : 'none';\r\n            testDays.style.display = supportsFilters ? 'inline' : 'none';\r\n            testIntervalLabel.style.display = supportsFilters ? 'inline' : 'none';\r\n            testInterval.style.display = supportsFilters ? 'inline' : 'none';\r\n            testPeriodLabel.style.display = supportsPeriod ? 'inline' : 'none';\r\n            testPeriod.style.display = supportsPeriod ? 'inline' : 'none';\r\n        }\r\n\r\n        async function testApi() {\r\n            const endpoint = document.getElementById('testEndpoint').value;\r\n            const apiKey = document.getElementById('testApiKey').value;\r\n            const days = document.getElementById('testDays').value;\r\n            const interval = document.getElementById('testInterval').value;\r\n            const period = document.getElementById('testPeriod').value;\r\n            const testButton = document.getElementById('testApiButton');\r\n            const responseDiv = document.getElementById('apiTestResponse');\r\n            const responseContent = document.getElementById('responseContent');\r\n            const responseSummary = document.getElementById('responseSummary');\r\n            const errorDiv = document.getElementById('apiTestError');\r\n            const downloadCsvButton = document.getElementById('downloadCsvButton');\r\n            const downloadJsonButton = document.getElementById('downloadJsonButton');\r\n\r\n            if (!apiKey) {\r\n                errorDiv.textContent = 'Por favor, forne\u00e7a uma chave API v\u00e1lida.';\r\n                errorDiv.style.display = 'block';\r\n                responseDiv.style.display = 'none';\r\n                return;\r\n            }\r\n\r\n            testButton.disabled = true;\r\n            testButton.textContent = 'Testando...';\r\n            responseDiv.style.display = 'none';\r\n            errorDiv.style.display = 'none';\r\n\r\n            let url = `https:\/\/api.bitcoincounterflow.com\/api\/${endpoint}?apikey=${encodeURIComponent(apiKey)}`;\r\n            if (['open-interest', 'list-global-funding-rate'].includes(endpoint)) {\r\n                url += `&days=${days}&interval=${interval}`;\r\n            } else if (endpoint === 'liquidation-heatmap') {\r\n                url += `&period=${period}`;\r\n            }\r\n\r\n            try {\r\n                const response = await fetch(url);\r\n                if (!response.ok) {\r\n                    throw new Error(`HTTP ${response.status}: ${response.statusText}`);\r\n                }\r\n                const data = await response.json();\r\n                lastResponse = data;\r\n                responseContent.textContent = JSON.stringify(data, null, 2);\r\n                responseSummary.textContent = Array.isArray(data) ? `Recebidos ${data.length} registros` : 'Recebido 1 registro';\r\n                responseDiv.style.display = 'block';\r\n                downloadCsvButton.style.display = 'inline-block';\r\n                downloadJsonButton.style.display = 'inline-block';\r\n                Prism.highlightElement(responseContent);\r\n                addToRequestHistory(endpoint, days, interval, period, response.status);\r\n            } catch (error) {\r\n                errorDiv.textContent = `Erro: ${error.message}`;\r\n                errorDiv.style.display = 'block';\r\n                lastResponse = null;\r\n                downloadCsvButton.style.display = 'none';\r\n                downloadJsonButton.style.display = 'none';\r\n            } finally {\r\n                testButton.disabled = false;\r\n                testButton.textContent = 'Testar API';\r\n            }\r\n        }\r\n\r\n        function copyResponse() {\r\n            const responseContent = document.getElementById('responseContent').textContent;\r\n            navigator.clipboard.writeText(responseContent).then(() => {\r\n                alert('Resposta copiada para a \u00e1rea de transfer\u00eancia!');\r\n            });\r\n        }\r\n\r\n        function downloadResponse(format) {\r\n            if (!lastResponse) return;\r\n\r\n            const filename = `resposta_api_${new Date().toISOString()}.${format}`;\r\n            let content, contentType;\r\n\r\n            if (format === 'csv' && Array.isArray(lastResponse)) {\r\n                const headers = Object.keys(lastResponse[0]).join(',');\r\n                const rows = lastResponse.map(row => Object.values(row).join(',')).join('\\n');\r\n                content = `${headers}\\n${rows}`;\r\n                contentType = 'text\/csv';\r\n            } else {\r\n                content = JSON.stringify(lastResponse, null, 2);\r\n                contentType = 'application\/json';\r\n            }\r\n\r\n            const blob = new Blob([content], { type: contentType });\r\n            const url = URL.createObjectURL(blob);\r\n            const a = document.createElement('a');\r\n            a.href = url;\r\n            a.download = filename;\r\n            a.click();\r\n            URL.revokeObjectURL(url);\r\n        }\r\n\r\n        function addToRequestHistory(endpoint, days, interval, period, status) {\r\n            const historyList = document.getElementById('requestHistory');\r\n            const timestamp = new Date().toLocaleString('pt-BR');\r\n            let params = '';\r\n            if (['open-interest', 'list-global-funding-rate'].includes(endpoint)) {\r\n                params = `, dias=${days}, intervalo=${interval}`;\r\n            } else if (endpoint === 'liquidation-heatmap') {\r\n                params = `, per\u00edodo=${period}`;\r\n            }\r\n            const li = document.createElement('li');\r\n            li.textContent = `${timestamp} - ${endpoint} (Status: ${status}${params})`;\r\n            historyList.prepend(li);\r\n            if (historyList.children.length > 10) {\r\n                historyList.removeChild(historyList.lastChild);\r\n            }\r\n            localStorage.setItem('apiRequestHistory', historyList.innerHTML);\r\n        }\r\n\r\n        document.addEventListener('DOMContentLoaded', function() {\r\n            const searchInput = document.querySelector('.search-input');\r\n            const searchResults = document.getElementById('searchResults');\r\n            const errorDiv = document.getElementById('searchError');\r\n\r\n            function performSearch() {\r\n                const query = searchInput.value.trim().toLowerCase();\r\n                errorDiv.style.display = 'none';\r\n                searchResults.style.display = 'none';\r\n                searchResults.innerHTML = '<option value=\"\">Selecione um resultado...<\/option>';\r\n\r\n                if (!query) {\r\n                    return;\r\n                }\r\n\r\n                const sections = document.querySelectorAll('[id]');\r\n                let resultsFound = false;\r\n\r\n                sections.forEach(section => {\r\n                    const textContent = section.textContent.toLowerCase();\r\n                    if (textContent.includes(query)) {\r\n                        const titleElement = section.querySelector('h2, h3, h4') || section;\r\n                        const title = titleElement.textContent.substring(0, 50) + (titleElement.textContent.length > 50 ? '...' : '');\r\n                        const option = document.createElement('option');\r\n                        option.value = `#${section.id}`;\r\n                        option.textContent = title;\r\n                        searchResults.appendChild(option);\r\n                        resultsFound = true;\r\n                    }\r\n                });\r\n\r\n                if (resultsFound) {\r\n                    searchResults.style.display = 'block';\r\n                } else {\r\n                    errorDiv.textContent = 'Nenhum resultado encontrado para sua pesquisa.';\r\n                    errorDiv.style.display = 'block';\r\n                }\r\n            }\r\n\r\n            searchInput.addEventListener('input', performSearch);\r\n            searchResults.addEventListener('change', function() {\r\n                const selectedValue = this.value;\r\n                if (selectedValue) {\r\n                    window.location.href = selectedValue;\r\n                }\r\n            });\r\n\r\n            loadApiKey();\r\n            const historyList = document.getElementById('requestHistory');\r\n            const savedHistory = localStorage.getItem('apiRequestHistory');\r\n            if (savedHistory) {\r\n                historyList.innerHTML = savedHistory;\r\n            }\r\n        });\r\n    <\/script>\r\n<\/body>\r\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Bitcoin CounterFlow API Access Exclusivo Nakamoto Pro: Acesso completo \u00e0 API e aos dados premium do BitcoinCounterFlow Gerenciar Sua Chave API Gere ou exclua sua chave API para acessar os endpoints de dados. \ud83d\udc41 Gerar Nova Chave Excluir Chave Selecione um resultado&#8230; Dados de Mercado Crescimento Global M2 Interesse Aberto (Suporta days e interval) Domin\u00e2ncia do Bitcoin Volume de Futuros das Exchanges (Mais Recente) N\u00edveis do Mapa de Liquida\u00e7\u00e3o NOVO (Suporta period) Taxas de Financiamento Taxa de Financiamento &#8211; Dados Completos (Suporta days e interval) Taxa de Financiamento &#8211; Dados Di\u00e1rios Taxa de Financiamento &#8211; Valor Mais Recente por Minuto Taxa de Financiamento &#8211; Mais Recente por Exchange Indicadores de Sentimento Google Trends &#8211; Ciclo Atual Google Trends &#8211; 10 Anos Lucro\/Preju\u00edzo N\u00e3o Realizado L\u00edquido (NUPL) Dados de Pre\u00e7o BTC\/USDT BTC\/EUR BTC\/BRL BTC\/BRL vs. IBOV BTC vs. S&#038;P 500 BTC vs. Ouro M\u00e9tricas de Desempenho M\u00e1xima Hist\u00f3rica (ATH) Queda da M\u00e1xima Hist\u00f3rica (%) Data da M\u00e1xima Hist\u00f3rica Varia\u00e7\u00e3o de Pre\u00e7o &#8211; 24h (%) Varia\u00e7\u00e3o de Pre\u00e7o &#8211; 7d (%) Varia\u00e7\u00e3o de Pre\u00e7o &#8211; 1M (%) Dados de Investimento Calculadora de DCA (Todos os \u00cdndices) Dados de ETFs de Bitcoin Tesourarias de Bitcoin Pre\u00e7o e Volume OHLC da MicroStrategy Tesourarias da MicroStrategy Nota: Nossa API \u00e9 continuamente aprimorada para fornecer acesso robusto aos dados. A documenta\u00e7\u00e3o abrangente ser\u00e1 lan\u00e7ada em breve para facilitar a integra\u00e7\u00e3o. API de Dados Bitcoin CounterFlow Suporte da API: satoshi@bitcoincounterflow.com Endpoint Raiz da API: https:\/\/api.bitcoincounterflow.com\/ A API de Dados Bitcoin CounterFlow fornece acesso ao hist\u00f3rico de pre\u00e7os, taxas de financiamento, interesse aberto, dados de liquida\u00e7\u00e3o e outras m\u00e9tricas macro do Bitcoin. Projetada para traders, analistas e desenvolvedores que necessitam de dados avan\u00e7ados. Instru\u00e7\u00f5es de Uso da API Assinantes Nakamoto Pro t\u00eam acesso exclusivo a todos os endpoints da API. Adicione sua chave API \u00e0 URL usando o par\u00e2metro apikey. Explore exemplos e ferramentas abaixo para come\u00e7ar. Uso B\u00e1sico: Adicione sua chave API a qualquer endpoint. Exemplo para Crescimento Global M2: https:\/\/api.bitcoincounterflow.com\/api\/m2-global?apikey=SUA_CHAVE_API Filtragem de Dados: Os endpoints open-interest, funding-rate e liquidation-heatmap suportam par\u00e2metros para filtragem e agrega\u00e7\u00e3o: Intervalos Suportados (open-interest, funding-rate): 15m, 30m, 1h, 2h, 4h, 1d, 1w, 1mo (30 dias). Per\u00edodos Suportados (liquidation-heatmap): 12h, 24h, 48h, 3day, 1week, 2week, 1month, 2month, 3month, 6month. Exemplo com Par\u00e2metros Combinados: https:\/\/api.bitcoincounterflow.com\/api\/liquidation-heatmap?period=1month&#038;apikey=SUA_CHAVE_API Endpoint: Crescimento Global M2Interesse AbertoDomin\u00e2ncia do BitcoinVolume de Futuros das ExchangesMapa de Liquida\u00e7\u00e3oTaxa de Financiamento &#8211; Dados CompletosTaxa de Financiamento &#8211; Dados Di\u00e1riosTaxa de Financiamento &#8211; Valor Mais RecenteTaxa de Financiamento &#8211; Mais Recente por ExchangeGoogle Trends &#8211; Ciclo AtualGoogle Trends &#8211; 10 AnosNUPLBTC\/USDTBTC\/EURBTC\/BRLBTC\/BRL vs. IBOVBTC vs. S&#038;P 500BTC vs. OuroDesempenho do BitcoinCalculadora de DCADados de ETFs de BitcoinTesourarias de BitcoinOHLC da MicroStrategyTesourarias da MicroStrategy Chave API: Dias: Intervalo: 15m30m1h2h4h1d1w1mo Per\u00edodo: 12h24h48h3 dias1 semana2 semanas1 m\u00eas2 meses3 meses6 meses1 ano Testar API Baixar CSV Baixar JSON Copiar Resposta Hist\u00f3rico de Requisi\u00e7\u00f5es Detalhes dos Endpoints Crescimento Global M2 (\/api\/m2-global): Retorna dados hist\u00f3ricos de oferta M2, crescimento ano a ano e pre\u00e7o do Bitcoin em cada ponto. [{ &#8220;date&#8221;: &#8220;2013-05-20T00:00:00.000Z&#8221;, &#8220;btcPrice&#8221;: 117.8186364699, &#8220;yoyGrowth&#8221;: 5.5654014717, &#8220;m2Supply&#8221;: 59166686473105 }] Interesse Aberto (\/api\/open-interest): Dados hist\u00f3ricos de interesse aberto para futuros de Bitcoin, incluindo pre\u00e7o do BTC. Suporta par\u00e2metros days e interval. [{ &#8220;timestamp&#8221;: &#8220;2024-10-30T08:00:00.000Z&#8221;, &#8220;openInterest&#8221;: 89828.522, &#8220;price&#8221;: 72475.88 }] Taxa de Financiamento &#8211; Dados Completos (\/api\/list-global-funding-rate): Taxa de financiamento global agregada de grandes exchanges. Suporta par\u00e2metros days e interval. [{ &#8220;timestamp&#8221;: &#8220;2025-06-08T23:18:41.856Z&#8221;, &#8220;globalFundingRate&#8221;: -0.0027 }] Mapa de Liquida\u00e7\u00e3o (\/api\/liquidation-heatmap): Retorna faixas de pre\u00e7o e valores de liquidez, ordenados por faixa de pre\u00e7o. Suporta par\u00e2metro period. [{ &#8220;priceRange&#8221;: 50000, &#8220;liquidity&#8221;: 1234567.89 }, { &#8220;priceRange&#8221;: 50200, &#8220;liquidity&#8221;: 987654.32 }] Limites de Requisi\u00e7\u00e3o: 200 requisi\u00e7\u00f5es por hora por chave API, 100 por IP. Erros comuns: 401 N\u00e3o Autorizado (chave inv\u00e1lida), 429 Muitas Requisi\u00e7\u00f5es (limite de taxa excedido).<\/p>\n","protected":false},"author":1,"featured_media":42659,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-48604","page","type-page","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/pages\/48604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/comments?post=48604"}],"version-history":[{"count":0,"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/pages\/48604\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/media\/42659"}],"wp:attachment":[{"href":"https:\/\/bitcoincounterflow.com\/wp-json\/wp\/v2\/media?parent=48604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}