GitHub
Los releases se vuelven versiones, el resumen del README la descripción y los topics sugieren la categoría.
Desarrolladores
Mantén un feed al día y cada listado, comparación y clasificación lo sigue. El mismo catálogo se puede leer con una API JSON.
Toda fuente pasa por los mismos cuatro pasos. Nada se publica antes de que alguien del equipo revise la primera importación.
Un archivo PAD, un repositorio o un documento OpenAPI en tu propio dominio.
El schema se revisa campo por campo y solo se descarga de direcciones públicas.
Los listados nuevos esperan en moderación hasta que un administrador los publica.
Las sincronizaciones programadas detectan versiones nuevas y la clasificación se recalcula en cada una.
PAD JSON 2.0 es el formato recomendado: un documento por producto, descripciones por idioma, precios en centavos y un 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"
]
}
}
Obligatorios: pad_version, vendor.name, software.slug, software.name y release.version. Los precios son enteros en centavos con moneda ISO 4217. Nombres, correos y teléfonos de contacto se ignoran y nunca se guardan.
<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>
¿Sin archivo PAD? Indícanos lo que ya publicas y lo mapeamos a los mismos campos del listado.
Los releases se vuelven versiones, el resumen del README la descripción y los topics sugieren la categoría.
El mismo mapeo que GitHub, incluidas instancias propias accesibles en una dirección pública.
Para productos de API: info.version define la frescura y el documento otorga el sello OpenAPI al listado.
Avisamos a tu endpoint cuando un listado se publica o cambia de posición. Cada entrega se firma con HMAC-SHA256 en la cabecera 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)
Solo listados publicados. Las respuestas son JSON, paginadas con page y per_page.
| Endpoint | Devuelve | Autenticación | Límite de solicitudes |
|---|---|---|---|
GET /.well-known/msr.json |
Manifiesto y metadatos autoritativos MSR JSON de MySoftRank | Ninguna | Según tu plan de API |
GET /schemas/msr-2.0.json |
JSON Schema oficial de MSR JSON 2.0 (Draft 2020-12) | Ninguna | Según tu plan de API |
GET /api/v1/software |
Software publicado, filtrado por categoría y texto de búsqueda | Ninguna | Según tu plan de API |
GET /api/v1/software/{slug} |
Un listado con versiones, fuentes y descripciones | Ninguna | Según tu plan de API |
GET /api/v1/categories |
Todas las categorías con su número de listados | Ninguna | Según tu plan de API |
POST /api/v1/submit/pad |
Envía un documento PAD por URL o cuerpo para moderación | Token Bearer | 10 solicitudes por minuto por dirección |
Leer el catálogo es gratis para proyectos pequeños. Los planes de pago suben los límites y añaden licencias de datos en bloque.
Los planes de API compran acceso a los datos, nunca una mejor posición en ellos.