{"info":{"name":"RWA Monitor Data API v1.0.0","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","description":"Cotacao de cripto e RWA tokenizado no Brasil, na mesma chave.\n\nPreencha a variavel `apiKey` com a sua chave `rwa_live_*` (gere em https://rwamonitor.io/sandbox).\n\nSem chave ainda? Preencha `email` e `password` com os da sua conta, rode Autenticacao > Login e depois Create Key: a colecao guarda o token de sessao e a chave sozinha. Use o \"current value\" das variaveis — o \"initial value\" vai junto quando a colecao e compartilhada.\n\nNao expira, a menos que tenha validade: o trial de 7 dias, ou a data de um contrato. Vencida, responde 401 com `code` = `expired_api_key`. Nao ha refresh nem rotacao automatica: gere outra chave no /sandbox ou pela API (POST /api/v1/auth/login e depois POST /api/v1/auth/keys) ou, se a chave for de contrato, fale com o RWA Monitor para renovar.\n\nParametros opcionais vem desabilitados de proposito: habilite os que quiser filtrar."},"variable":[{"key":"baseUrl","value":"https://rwamonitor.io","type":"string"},{"key":"apiKey","value":"","type":"string"},{"key":"email","value":"","type":"string"},{"key":"password","value":"","type":"string"},{"key":"sessionToken","value":"","type":"string"}],"item":[{"name":"Autenticacao","item":[{"name":"Login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const corpo = pm.response.json();","if (pm.response.code === 200 && corpo.data && corpo.data.accessToken) pm.collectionVariables.set('sessionToken', corpo.data.accessToken);"]}}],"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"{{email}}\",\n  \"password\": \"{{password}}\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{baseUrl}}/api/v1/auth/login","host":["{{baseUrl}}"],"path":["api","v1","auth","login"],"query":[],"variable":[]},"description":"Troca o e-mail e a senha da sua conta no RWA Monitor por um token de sessao (accessToken) de 1 hora. O token NAO abre os endpoints de dado: ele serve para listar, criar e revogar as suas chaves rwa_live_* em /api/v1/auth/keys. Nao ha refresh: vencido, faca login de novo.\n\nE-mail inexistente, senha errada e conta sem senha respondem igual (401 invalid_credentials): distinguir contaria a quem testa senha quais e-mails tem conta.\n\n5 falhas por e-mail em 15 minutos bloqueiam novas tentativas por um tempo (429 too_many_attempts, com Retry-After)."}},{"name":"List Keys","request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{sessionToken}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/auth/keys","host":["{{baseUrl}}"],"path":["api","v1","auth","keys"],"query":[],"variable":[]},"description":"Lista as chaves rwa_live_* ativas da sua conta, com validade e consumo do minuto e do mes.\n\nEnvie Authorization: Bearer <accessToken> (de POST /api/v1/auth/login). A chave rwa_live_* NAO vale aqui: responde 401 api_key_not_accepted."}},{"name":"Create Key","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const corpo = pm.response.json();","if (pm.response.code === 201 && corpo.data && corpo.data.apiKey) pm.collectionVariables.set('apiKey', corpo.data.apiKey);"]}}],"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{sessionToken}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Chave via API\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{baseUrl}}/api/v1/auth/keys","host":["{{baseUrl}}"],"path":["api","v1","auth","keys"],"query":[],"variable":[]},"description":"Gera uma chave rwa_live_* nova, do plano free, na hora. A chave em claro volta na resposta e na listagem.\n\nSempre plano free: o plano nao vem do corpo. Plano pago e com o RWA Monitor.\n\nTeto de 5 chaves ativas por conta (vencidas nao contam). A 6a responde 409 key_limit_reached: revogue uma antes.\n\nEnvie Authorization: Bearer <accessToken> (de POST /api/v1/auth/login). A chave rwa_live_* NAO vale aqui: responde 401 api_key_not_accepted."}},{"name":"Revoke Key","request":{"method":"DELETE","header":[{"key":"Authorization","value":"Bearer {{sessionToken}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/auth/keys/:id","host":["{{baseUrl}}"],"path":["api","v1","auth","keys",":id"],"query":[],"variable":[{"key":"id","value":"","description":"O campo id da chave, de GET /api/v1/auth/keys"}]},"description":"Revoga uma chave da sua conta. A partir dai ela responde 401 invalid_api_key.\n\nChave inexistente e chave de outra conta respondem o mesmo 404 key_not_found.\n\nEnvie Authorization: Bearer <accessToken> (de POST /api/v1/auth/login). A chave rwa_live_* NAO vale aqui: responde 401 api_key_not_accepted."}}]},{"name":"Cripto","item":[{"name":"Ping","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/ping","host":["{{baseUrl}}"],"path":["api","v1","crypto","ping"],"query":[],"variable":[]},"description":"Confirma que a chave funciona. Nao toca no banco de mercado — quando esta responde 200 e outra nao, a diferenca esta no dado, nao na credencial.\n\nToda resposta traz X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset."}},{"name":"List Coins","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/coins","host":["{{baseUrl}}"],"path":["api","v1","crypto","coins"],"query":[{"key":"page","value":"1","description":"Numero da pagina (min: 1)","disabled":true},{"key":"limit","value":"100","description":"Itens por pagina (1-250)","disabled":true},{"key":"filter","value":"all","description":"Recorte do catalogo","disabled":true},{"key":"network","value":"all","description":"Rede do contrato","disabled":true},{"key":"ids","value":"","description":"Lista de ate 20 slugs separados por virgula (ex: bitcoin,ethereum,tether). Casa por igualdade, nao por substring. Acima de 20 a resposta e 400 com code=too_many_ids: cortar a lista devolveria 200 com os ativos restantes AUSENTES, e voce concluiria que eles nao existem","disabled":true},{"key":"sortBy","value":"rank","description":"Campo de ordenacao","disabled":true},{"key":"sortOrder","value":"asc","description":"Direcao","disabled":true},{"key":"search","value":"","description":"Busca por nome ou simbolo","disabled":true}],"variable":[]},"description":"Ranking de criptoativos com preco em USD e BRL, FDV, volume e variacoes. Analogo ao /coins/markets do CoinGecko.\n\nchange1h/24h/7d podem ser null: significa \"janela nao medida\", que NAO e o mesmo que variacao zero.\n\nLimite de 250 por pagina (a rota interna do site aceita mais; a publica nao)."}},{"name":"Coin Detail","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/coins/:id","host":["{{baseUrl}}"],"path":["api","v1","crypto","coins",":id"],"query":[],"variable":[{"key":"id","value":"","description":"Slug do ativo (ex: \"bitcoin\"), o campo `id` de /coins"}]},"description":"Detalhe completo do ativo: contratos por rede, mercados DEX, dados on-chain, historico de preco e as corretoras brasileiras onde negocia.\n\n404 quando o slug nao existe ou o ativo esta pausado no catalogo."}},{"name":"Coin Tickers (Brasil)","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/coins/:id/tickers","host":["{{baseUrl}}"],"path":["api","v1","crypto","coins",":id","tickers"],"query":[],"variable":[{"key":"id","value":"","description":"Slug do ativo (ex: \"bitcoin\")"}]},"description":"Onde a moeda negocia no Brasil, com preco de LIVRO em BRL de ate 15 corretoras. Nao e cotacao de dolar convertida — e o preco pelo qual a pessoa compra aqui.\n\nFonte vencida (stale=true) vem no FIM da lista, com o ultimo preco conhecido. Ela nao e escondida: some-la em silencio ja mascarou uma parada de 26 dias.\n\nArray vazio quando o ativo nao tem par BRL em nenhuma das fontes."}},{"name":"Global Stats","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/global","host":["{{baseUrl}}"],"path":["api","v1","crypto","global"],"query":[],"variable":[]},"description":"Agregados do mercado: FDV total, volume, dominancia de BTC/ETH, indice de sentimento e cambio USD/BRL."}},{"name":"List Categories","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/categories","host":["{{baseUrl}}"],"path":["api","v1","crypto","categories"],"query":[],"variable":[]},"description":"Categorias do catalogo com FDV, volume e contagem de ativos agregados."}},{"name":"List Networks","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/networks","host":["{{baseUrl}}"],"path":["api","v1","crypto","networks"],"query":[],"variable":[]},"description":"Redes cobertas pelo catalogo, com FDV e contagem de ativos por rede."}},{"name":"List Exchanges","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/exchanges","host":["{{baseUrl}}"],"path":["api","v1","crypto","exchanges"],"query":[],"variable":[]},"description":"Ranking de corretoras com par BRL por volume 24h. Traz os dois cortes: total e cripto (sem pares stable-fiat).\n\nCorretora vencida aparece na lista marcada, mas NAO entra nas somas de volume 24h."}},{"name":"Exchange Detail","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/crypto/exchanges/:slug","host":["{{baseUrl}}"],"path":["api","v1","crypto","exchanges",":slug"],"query":[],"variable":[{"key":"slug","value":"","description":"Identificador da corretora (ex: \"mercado-bitcoin\")"}]},"description":"Detalhe da corretora: KPIs, principais ativos, pares com metodo de volume e frescor por par, e saude da fonte.\n\nvolumeBrlMethod diz se o volume veio pronto da fonte (\"reported\") ou foi calculado (\"derived\")."}}]},{"name":"RWA Brasil","item":[{"name":"Emissoes tokenizadas","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/issuances","host":["{{baseUrl}}"],"path":["api","v1","rwa","issuances"],"query":[{"key":"page","value":"1","description":"Pagina","disabled":true},{"key":"limit","value":"50","description":"Itens por pagina (teto 100)","disabled":true},{"key":"funding","value":"all","description":"Situacao da captacao","disabled":true},{"key":"search","value":"","description":"Busca por nome ou ticker","disabled":true}],"variable":[]},"description":"Emissoes de RWA do mercado brasileiro: emissor, lastro, captado, taxa, prazo e situacao regulatoria.\n\nnull significa que a origem nao tem o dado — nao e zero. Zero e uma afirmacao (\"captou nada\"); ausencia nao e.\n\nA resposta declara a idade do dado: dataAsOf vem do lastSync da ORIGEM, e degraded avisa quando ele passou do SLO de 24h.\n\nSomente ativos aprovados entram na listagem publica."}},{"name":"Detalhe da emissao","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/issuances/:uid","host":["{{baseUrl}}"],"path":["api","v1","rwa","issuances",":uid"],"query":[],"variable":[{"key":"uid","value":"a15c9e56-7bf5-455e-8c78-1fbf0245b8d4","description":"Identificador da emissao"}]},"description":"Uma emissao. 404 quando ela nao existe — distinto de 500, que e falha da origem.\n\nuid fora do formato devolve 400; uid valido e inexistente devolve 404."}},{"name":"Resumo do mercado","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/summary","host":["{{baseUrl}}"],"path":["api","v1","rwa","summary"],"query":[],"variable":[]},"description":"O mercado brasileiro de RWA em um objeto: emissoes, emissores, holders, captado, meta e TVL."}},{"name":"Agregado por rede","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/networks","host":["{{baseUrl}}"],"path":["api","v1","rwa","networks"],"query":[],"variable":[]},"description":"Captacao, meta e TVL agregados por blockchain."}},{"name":"Agregado por setor","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/sectors","host":["{{baseUrl}}"],"path":["api","v1","rwa","sectors"],"query":[],"variable":[]},"description":"Captacao, meta e TVL agregados por setor economico."}},{"name":"Agregado por emissor","request":{"method":"GET","header":[{"key":"X-Api-Key","value":"{{apiKey}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{baseUrl}}/api/v1/rwa/issuers","host":["{{baseUrl}}"],"path":["api","v1","rwa","issuers"],"query":[],"variable":[]},"description":"Captacao, meta e TVL agregados por tokenizadora."}}]}]}