API REST v1
Integra el catálogo de ONDROID STORE en tus aplicaciones. Todas las respuestas son JSON: {"success": true, "data": …} (los listados incluyen meta con la paginación) o {"success": false, "error": "mensaje"}.
Autenticación
Obtén un token con POST /auth/login o créalo desde Mi cuenta › Tokens de API. Envíalo en cada petición:
curl -H "Authorization: Bearer ond_xxxxxxxx" https://store.ond-s.com/api/v1/me
Los tokens solo se muestran una vez, se guardan como huella SHA-256 y caducan (90 días por defecto). Los endpoints marcados como Opcional funcionan sin token, pero con él se aplican tus preferencias de contenido y accesos a pruebas.
Límites
Las peticiones están limitadas por IP y usuario. Al superar el límite recibirás 429 Too Many Requests con la cabecera Retry-After. Los errores de validación devuelven 422 con el detalle por campo en errors.
URL base
https://store.ond-s.com/api/v1
Autenticación
| Método | Ruta | Acceso | Descripción |
|---|---|---|---|
| POST | /auth/login | Público | Devuelve un token Bearer. Campos: login, password, device_name, code (si la cuenta usa 2FA, TOTP o código de recuperación). |
| POST | /auth/register | Público | Crea una cuenta. Campos: name, username, email, password, country, birthdate, bio, accept_terms. Envía el correo de verificación. |
| POST | /auth/logout | Token | Revoca el token usado en la petición. |
| GET | /me | Token | Perfil del usuario autenticado. |
Catálogo
| Método | Ruta | Acceso | Descripción |
|---|---|---|---|
| GET | /apps | Opcional | Búsqueda paginada. Parámetros: q, category, price (free|paid), filter[] (verified, popular, new, updated, recommended, featured, adult), sort (relevance, popular, rating, new, updated, name), page, per_page (máx. 50). |
| GET | /apps/{slug} | Opcional | Ficha completa de la aplicación publicada, versión actual, permisos y seguridad de datos. |
| GET | /apps/{slug}/versions | Opcional | Historial de versiones aprobadas. |
| GET | /apps/{slug}/reviews | Opcional | Reseñas visibles paginadas. |
| POST | /apps/{slug}/reviews | Token | Crea o actualiza tu reseña. Campos: rating (1–5), body. |
| POST | /apps/{slug}/download | Opcional | Registra la descarga y devuelve url directa HTTPS, sha256 y tamaño para verificar el APK. Respeta restricciones de país, edad, compra y pruebas. |
| GET | /apps/{slug}/products | Opcional | Productos integrados y suscripciones activos. |
| GET | /categories | Opcional | Árbol de categorías con número de apps. |
| GET | /categories/{slug}/apps | Opcional | Apps de una categoría. |
| GET | /developers/{slug} | Opcional | Perfil público del desarrollador y sus apps. |
Usuario
| Método | Ruta | Acceso | Descripción |
|---|---|---|---|
| GET | /notifications | Token | Notificaciones paginadas. |
| POST | /notifications/{id}/read | Token | Marca una notificación como leída. |
| POST | /purchases | Token | Inicia un pago. Campos: app (slug), type (app_purchase, iap, subscription, donation), item (SKU del producto o suscripción), amount (donaciones). Devuelve checkout_url. |
| GET | /purchases/{ref} | Token | Estado de un pago. |
| GET | /entitlements/{slug} | Token | Derechos del usuario sobre una app: compra, productos no consumibles y suscripciones activas. |
Verificar un APK descargado
Compara siempre el SHA-256 del archivo recibido con el devuelto por /apps/{slug}/download antes de instalarlo:
sha256sum app.apk
El uso de la API está sujeto a los términos y a la política para desarrolladores.