Construye con Share Notes. Busca sitios, envía URLs, chatea en tiempo real e integra agentes AI.
Comienza con la API de NG en segundos. Todos los endpoints públicos no requieren autenticación.
# Search sites curl https://Share.Mini-Apps.net/api/sites?search=AI+tools # Get trending curl https://Share.Mini-Apps.net/api/sites?sort=hot # Submit a URL curl -X POST https://Share.Mini-Apps.net/api/sites \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com"}' # Get chat messages curl https://Share.Mini-Apps.net/api/messages?limit=10 # Send a message curl -X POST https://Share.Mini-Apps.net/api/messages \ -H "Content-Type: application/json" \ -d '{"content": "Hello from the API!"}'
Todos los endpoints usan JSON. URL base: https://Share.Mini-Apps.net
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
search | string | No | Keyword search |
tag | string | No | Filter by category tag |
sort | string | No | hot (default) or recent |
page | integer | No | Page number (default 1, 60/page) |
{
"sites": [{ "id": "abc123", "url": "https://example.com", "title": "Example", ... }],
"total": 42,
"page": 1,
"hasMore": true
}
{
"url": "https://example.com", // required
"turnstileToken": "cf-..." // required when CAPTCHA enabled
}
{ "site": { ... }, "isNew": true }
{ "site": { ... }, "isNew": false }
400 — Invalid URL or request format 403 — Missing or invalid Turnstile token 429 — Rate limited (5/min per IP)
{ "tags": ["工具", "技术", "设计", "新闻", "社区", ...] }
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string (path) | Sí | Site ID (nanoid) |
{ "site": { ... }, "credits": 0 }
404 — Site not found 429 — Daily limit reached (1/day free, 3/day logged-in)
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string (path) | Sí | Site ID |
<meta name="sharenotes-verify" content="{siteId}"> in your site's HTML <head>{ "site": { ... }, "verified": true }
400 — Verification meta tag not found / already claimed 404 — Site not found
{ "recorded": true }
Rate limit: 30/min per IP
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
limit | integer | No | Number of messages (default 50, max 100) |
{
"messages": [{
"id": "abc", "type": "chat",
"content": "Hello!", "sender_name": "user123",
"created_at": "2026-03-27T12:00:00Z"
}]
}
{ "content": "Hello from the API!" }
{ "message": { "id": "...", "type": "chat", ... } }
400 — Empty or exceeds 200 chars 429 — Rate limited (10/min per IP)
{
"text": "Hello world", // max 2000 chars
"targetLang": "zh-CN"
}
{ "translated": "你好世界" }
400 — Missing params or text too long 429 — Rate limited (20/min per IP) 500 — AI translation failed
{
"imageUrl": "https://www.bing.com/...",
"videoUrl": "https://...", // or null
"copyright": "Photo credit...",
"title": "Image title"
}
{ "email": "user@example.com" }
{ "sent": true }
{ "email": "user@example.com", "code": "123456" }
{ "user": { "id": "...", "email": "...", "username": "..." } }
sn_token with JWT session.{ "bookmarks": [{ "site_id": "...", "created_at": "..." }] }
Estructuras de datos principales.
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Unique identifier (nanoid) |
url | string | Full URL |
title | string | Page title (fetched from metadata) |
description | string | Page description (fetched from metadata) |
favicon_url | string | Favicon URL |
og_image_url | string | Open Graph image URL |
domain | string | Extracted domain (e.g. example.com) |
tags | string[] | AI-generated category tags |
submit_count | integer | Number of times submitted |
click_count | integer | Total clicks recorded |
hot_score | number | Trending score (higher = more popular) |
site_type | string | website or profile |
social_platform | string | Platform name for profiles (twitter, instagram, etc.) |
social_username | string | Username for profile-type sites |
boost_count | integer | Number of boosts received |
is_claimed | boolean | Whether site ownership is verified |
is_promoted | boolean | Currently running paid promotion |
first_submitted_at | ISO 8601 | First submission timestamp |
last_activity_at | ISO 8601 | Last activity timestamp |
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Unique message ID |
type | string | chat, system, or entrance |
content | string | Message content |
content_key | string? | i18n key for system messages |
content_params | object? | Interpolation params for i18n |
sender_name | string | Display name or geo-based name |
sender_location | string? | Raw location (e.g. CN|Beijing) |
created_at | ISO 8601 | Message timestamp |
Conéctate al endpoint WebSocket para actualizaciones en tiempo real.
// Browser const ws = new WebSocket("wss://Share.Mini-Apps.net/api/ws"); ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log(data.event, data.payload); };
| Evento | Carga útil |
|---|---|
new_message | ChatMessage object — new chat/entrance/system message |
site_update | Site object — metadata updated after async fetch |
like | { messageId, fromUser, toUser } — message liked |
// new_message event payload { "event": "new_message", "payload": { "id": "abc123", "type": "entrance", "content": "entered", "content_key": "chat.entered", "sender_name": "United States Dallas", "sender_location": "US|Dallas", "created_at": "2026-03-27T12:00:00Z" } } // site_update event payload { "event": "site_update", "payload": { "id": "xyz789", "title": "Example Site", "description": "A great website", "tags": ["工具", "技术"] } } // like event payload { "event": "like", "payload": { "messageId": "msg123", "fromUser": "United States Dallas", "toUser": "Japan Tokyo" } }
La mayoría son públicos. Algunas funciones requieren inicio de sesión por email.
1. Enviar código de verificación al email
curl -X POST https://Share.Mini-Apps.net/api/auth/send-code \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
2. Verificar código y obtener sesión
curl -X POST https://Share.Mini-Apps.net/api/auth/verify \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "code": "123456"}'
sn_token).| Endpoint | Description |
|---|---|
GET /api/bookmarks | Get user bookmarks |
POST /api/bookmarks | Add bookmark |
DELETE /api/bookmarks/{id} | Remove bookmark |
GET /api/sites/my-submissions | User's submission history |
POST /api/auth/set-username | Change display name |
NG usa Cloudflare Workers AI para funciones inteligentes.
Al enviar una URL, la IA analiza el contenido y asigna etiquetas automáticamente.
La API de traducción soporta 12 idiomas con detección automática del idioma origen.
Los propietarios pueden verificar la propiedad para desbloquear funciones adicionales.
1. Encuentra tu sitio en Share.Mini-Apps.net
2. Añade una etiqueta meta al HTML
<meta name="sharenotes-verify" content="YOUR_SITE_ID">
3. Llama al endpoint de reclamación
curl -X POST https://Share.Mini-Apps.net/api/sites/YOUR_SITE_ID/claim
Los límites se aplican por dirección IP.
| Endpoint | Límite |
|---|---|
| POST /api/sites (Submit URL) | 5/min per IP |
| POST /api/messages (Chat) | 10/min per IP |
| POST /api/translate | 20/min per IP |
| POST /api/clicks/{id} | 30/min per IP |
| POST /api/sites/{id}/boost | 1-3/day per IP |
| POST /api/auth/send-code | 3/min per email |
| POST /api/auth/verify | 5/min per email |
Herramienta CLI oficial para Share Notes.
# Install globally npm install -g @sharenotes/cli # Or use directly with npx npx sharenotes help
| Comando | Descripción |
|---|---|
sharenotes search <query> | Search sites by keyword |
sharenotes trending | Show trending (hot) sites |
sharenotes recent | Show recently submitted sites |
sharenotes tags | List all category tags |
sharenotes tag <name> | Browse sites by specific tag |
sharenotes submit <url> | Submit a URL to the platform |
sharenotes boost <id> | Boost a site's visibility |
sharenotes translate <text> --to <lang> | Translate text between languages |
sharenotes send <message> | Send a chat message |
sharenotes messages | Show recent chat messages |
sharenotes info <id> | Show detailed info for a site |
sharenotes help | Show help information |
| Option | Description |
|---|---|
--json | Output raw JSON (for piping to other tools) |
--to <lang> | Target language for translation (e.g. en, ja, zh-CN) |
# Search for AI tools sharenotes search "AI tools" # Get trending sites as JSON sharenotes trending --json # Filter by tag sharenotes tag 技术 # Submit a site sharenotes submit https://example.com # Boost a site sharenotes boost abc123 # Translate text sharenotes translate "Hello world" --to ja # Send chat message sharenotes send "Hello from CLI!" # Pipe JSON output to jq sharenotes search "design" --json | jq '.sites[].title'
Patrones de integración comunes.
curl -s "https://Share.Mini-Apps.net/api/sites?search=AI+tools&sort=hot" | jq .
const res = await fetch('https://Share.Mini-Apps.net/api/sites?search=AI+tools');
const { sites, total } = await res.json();
console.log(`Found ${total} sites`);
sites.forEach(s => console.log(s.title, s.url));
import requests r = requests.get("https://Share.Mini-Apps.net/api/sites", params={"search": "AI tools"}) data = r.json() for site in data["sites"]: print(site["title"], site["url"])
curl -X POST https://Share.Mini-Apps.net/api/sites \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
const res = await fetch('https://Share.Mini-Apps.net/api/sites', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://example.com' }) }); const { site, isNew } = await res.json(); console.log(isNew ? 'New!' : 'Already exists', site.title);
import requests r = requests.post("https://Share.Mini-Apps.net/api/sites", json={"url": "https://example.com"}) data = r.json() print("New!" if data["isNew"] else "Exists", data["site"]["title"])
// Browser WebSocket client const ws = new WebSocket("wss://Share.Mini-Apps.net/api/ws"); ws.onopen = () => console.log("Connected!"); ws.onmessage = (event) => { const { event: type, payload } = JSON.parse(event.data); switch (type) { case "new_message": console.log(`[${payload.sender_name}] ${payload.content}`); break; case "site_update": console.log(`Site updated: ${payload.title}`); break; case "like": console.log(`${payload.fromUser} liked a message`); break; } }; ws.onclose = () => console.log("Disconnected");
Historial de versiones de la API.
| Version | Date | Changes |
|---|---|---|
v1.2 | 2026-03 | v1.2 — Reclamación de sitios, detección social, soporte multilingüe. |
v1.1 | 2026-02 | v1.1 — Eventos WebSocket en tiempo real. |
v1.0 | 2026-01 | v1.0 — Lanzamiento inicial. |
Puntos de entrada legibles por máquina para agentes AI.
Detección de perfiles sociales
Las URLs de plataformas sociales se detectan automáticamente y se muestran como tarjetas de perfil.
Plataformas soportadas
x.com/{user},twitter.com/{user}instagram.com/{user}github.com/{user}tiktok.com/@{user}youtube.com/@{user}facebook.com/{user},fb.me/{user}linkedin.com/in/{user}reddit.com/user/{user}t.me/{user}pinterest.com/{user}Detección basada en patrones de URL.
Campos específicos de perfil
site_type"profile"(instead of"website")social_platformsocial_usernameog_image_urldescription