GitHub
Releases viram versões, o resumo do README vira a descrição e os tópicos sugerem a categoria.
Desenvolvedores
Mantenha um feed atualizado e toda listagem, comparação e ranking acompanha. O mesmo catálogo pode ser lido por uma API JSON.
Toda fonte passa pelas mesmas quatro etapas. Nada é publicado antes de alguém da nossa equipe revisar a primeira importação.
Um arquivo PAD, um repositório ou um documento OpenAPI no seu próprio domínio.
O schema é conferido campo a campo e buscado apenas em endereços públicos.
Novas listagens aguardam na moderação até um administrador publicá-las.
Sincronizações agendadas captam novas versões e o ranking é recalculado a cada uma.
PAD JSON 2.0 é o formato recomendado: um documento por produto, descrições por idioma, preços em centavos e um webhook opcional.
{
"$schema": "https://mysoftrank.com/schemas/msr-2.0.json",
"protocol": {
"name": "MSR JSON",
"version": "2.0",
"author": "Antonio Santos",
"specification_license": "CC-BY-4.0",
"reference_implementation_license": "MIT",
"canonical_url": "https://mysoftrank.com/schemas/msr-2.0.json"
},
"pad_version": "2.0",
"vendor": {
"name": "Lanternly Labs",
"website": "https://lanternly.dev",
"country_code": "BR"
},
"software": {
"slug": "lanternly",
"name": "Lanternly",
"kind": "saas",
"category": "observability",
"license_type": "freemium",
"platforms": [
"web",
"linux"
],
"homepage": "https://lanternly.dev",
"integrations": [
"kubernetes",
"slack",
"python"
],
"pricing": {
"model": "usage",
"price_from_cents": 0,
"currency": "USD"
},
"descriptions": {
"en": {
"summary": "Uptime checks that open the exact failing trace."
},
"pt-BR": {
"summary": "Checagens de disponibilidade que abrem o trace exato da falha."
},
"es": {
"summary": "Chequeos de disponibilidad que abren la traza exacta del fallo."
}
}
},
"release": {
"version": "3.4.0",
"released_on": "2026-09-15",
"release_type": "minor",
"notes_url": "https://lanternly.dev/changelog#3.4.0"
},
"webhook": {
"url": "https://lanternly.dev/hooks/mysoftrank",
"events": [
"listing.published",
"rank.changed"
]
}
}
Obrigatórios: pad_version, vendor.name, software.slug, software.name e release.version. Preços são inteiros em centavos com moeda ISO 4217. Nomes, e-mails e telefones de contato são ignorados e nunca armazenados.
<XML_DIZ_INFO>
<Company_Info><Company_Name>Lanternly Labs</Company_Name></Company_Info>
<Program_Info>
<Program_Name>Lanternly</Program_Name>
<Program_Version>3.4.0</Program_Version>
<Program_Release_Year>2026</Program_Release_Year>
</Program_Info>
</XML_DIZ_INFO>
Sem arquivo PAD? Aponte o que você já publica e mapeamos para os mesmos campos da listagem.
Releases viram versões, o resumo do README vira a descrição e os tópicos sugerem a categoria.
Mesmo mapeamento do GitHub, incluindo instâncias próprias acessíveis por endereço público.
Para produtos de API: info.version define a atualização e o documento dá o selo OpenAPI à listagem.
Avisamos seu endpoint quando uma listagem é publicada ou muda de posição. Toda entrega é assinada com HMAC-SHA256 no cabeçalho X-MySoftRank-Signature.
POST /hooks/mysoftrank HTTP/1.1
Content-Type: application/json
X-MySoftRank-Event: rank.changed
X-MySoftRank-Timestamp: 1789660800
X-MySoftRank-Signature: sha256=d96595d15c50f9f26d0e8a3b0f7a3fcdae6ca69ae2c3df80f829d82b591ee0da
{"event":"rank.changed","software":"lanternly","rank":{"previous":14,"current":9,"score":71.4},"computed_on":"2026-09-17"}
import hashlib, hmac
def is_valid(secret: bytes, timestamp: str, body: bytes, header: str) -> bool:
signed = timestamp.encode() + b"." + body
expected = "sha256=" + hmac.new(secret, signed, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header)
Somente listagens publicadas. As respostas são JSON, paginadas com page e per_page.
| Endpoint | Retorna | Autenticação | Limite de requisições |
|---|---|---|---|
GET /.well-known/msr.json |
Manifesto e metadados autoritativos MSR JSON do MySoftRank | Nenhuma | Definido pelo seu plano |
GET /schemas/msr-2.0.json |
JSON Schema oficial do MSR JSON 2.0 (Draft 2020-12) | Nenhuma | Definido pelo seu plano |
GET /api/v1/software |
Softwares publicados, filtrados por categoria e texto de busca | Nenhuma | Definido pelo seu plano |
GET /api/v1/software/{slug} |
Uma listagem com versões, fontes e descrições | Nenhuma | Definido pelo seu plano |
GET /api/v1/categories |
Todas as categorias com a contagem de listagens | Nenhuma | Definido pelo seu plano |
POST /api/v1/submit/pad |
Envia um documento PAD por URL ou corpo para moderação | Token Bearer | 10 requisições por minuto por endereço |
Ler o catálogo é grátis para projetos pequenos. Planos pagos aumentam os limites e incluem licenciamento de dados em lote.
Planos de API compram acesso aos dados, nunca uma posição melhor neles.