NGシェアプラットフォームで構築。サイト検索、URL送信、リアルタイムチャット、AIエージェント統合。
数秒でNG APIを使い始めましょう。公開エンドポイントは認証不要です。
# Search sites curl https://ng.net/api/sites?search=AI+tools # Get trending curl https://ng.net/api/sites?sort=hot # Submit a URL curl -X POST https://ng.net/api/sites \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com"}' # Get chat messages curl https://ng.net/api/messages?limit=10 # Send a message curl -X POST https://ng.net/api/messages \ -H "Content-Type: application/json" \ -d '{"content": "Hello from the API!"}'
すべてのエンドポイントはJSONを使用します。ベースURL:https://ng.net
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
search | string | いいえ | Keyword search |
tag | string | いいえ | Filter by category tag |
sort | string | いいえ | hot (default) or recent |
page | integer | いいえ | 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": ["工具", "技术", "设计", "新闻", "社区", ...] }
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string (path) | はい | Site ID (nanoid) |
{ "site": { ... }, "credits": 0 }
404 — Site not found 429 — Daily limit reached (1/day free, 3/day logged-in)
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
id | string (path) | はい | Site ID |
<meta name="ngnet-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
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
limit | integer | いいえ | 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": "..." }] }
APIが返すコアデータ構造。
| フィールド | 型 | 説明 |
|---|---|---|
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 |
| フィールド | 型 | 説明 |
|---|---|---|
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 |
WebSocketエンドポイントに接続してリアルタイム更新を受信。認証不要。
// Browser const ws = new WebSocket("wss://ng.net/api/ws"); ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log(data.event, data.payload); };
| イベント | ペイロード |
|---|---|
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" } }
ほとんどのエンドポイントは公開です。一部の機能はメールログインが必要です。
1. メールに確認コードを送信
curl -X POST https://ng.net/api/auth/send-code \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
2. コードを検証してセッションを取得
curl -X POST https://ng.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はCloudflare Workers AIでインテリジェント機能を提供します。
URL送信時にAIがコンテンツを分析し自動でカテゴリタグを付与。Meta Llama 3.1 8B Instructモデル使用。
翻訳APIは12言語対応。M2M100-1.2Bモデル使用。ソース言語は自動検出。
サイト所有者は所有権を確認し、分析や優先表示などの機能を利用できます。
1. ng.netでサイトを見つけ、サイトIDを記録
2. サイトのHTML <head>にmetaタグを追加
<meta name="ngnet-verify" content="YOUR_SITE_ID">
3. 認証APIエンドポイントを呼び出す
curl -X POST https://ng.net/api/sites/YOUR_SITE_ID/claim
レート制限はIPアドレスごとに適用されます。
| エンドポイント | 制限 |
|---|---|
| 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 |
NG分享プラットフォーム公式CLIツール。ターミナルからサイトの検索・送信・管理が可能。
# Install globally npm install -g @ngnet/cli # Or use directly with npx npx ngnet help
| コマンド | 説明 |
|---|---|
ngnet search <query> | Search sites by keyword |
ngnet trending | Show trending (hot) sites |
ngnet recent | Show recently submitted sites |
ngnet tags | List all category tags |
ngnet tag <name> | Browse sites by specific tag |
ngnet submit <url> | Submit a URL to the platform |
ngnet boost <id> | Boost a site's visibility |
ngnet translate <text> --to <lang> | Translate text between languages |
ngnet send <message> | Send a chat message |
ngnet messages | Show recent chat messages |
ngnet info <id> | Show detailed info for a site |
ngnet 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 ngnet search "AI tools" # Get trending sites as JSON ngnet trending --json # Filter by tag ngnet tag 技术 # Submit a site ngnet submit https://example.com # Boost a site ngnet boost abc123 # Translate text ngnet translate "Hello world" --to ja # Send chat message ngnet send "Hello from CLI!" # Pipe JSON output to jq ngnet search "design" --json | jq '.sites[].title'
各言語での一般的な統合パターン。
curl -s "https://ng.net/api/sites?search=AI+tools&sort=hot" | jq .
const res = await fetch('https://ng.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://ng.net/api/sites", params={"search": "AI tools"}) data = r.json() for site in data["sites"]: print(site["title"], site["url"])
curl -X POST https://ng.net/api/sites \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
const res = await fetch('https://ng.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://ng.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://ng.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");
APIバージョン履歴と主な変更点。
| Version | Date | Changes |
|---|---|---|
v1.2 | 2026-03 | v1.2 — サイト認証、ソーシャル検出、多言語対応追加。 |
v1.1 | 2026-02 | v1.1 — WebSocketリアルタイムイベント追加。 |
v1.0 | 2026-01 | v1.0 — 初期リリース。 |
AIエージェントと自動化ツール向けの機械可読エンドポイント。
ソーシャルプロフィール検出
ソーシャルプラットフォームのURLは自動検出され、プロフィールカードとして表示されます。
対応プラットフォーム
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}URLパターンマッチングで検出。OGメタデータ(アバター、自己紹介、表示名)を取得。
プロフィール専用フィールド
site_type"profile"(instead of"website")social_platformsocial_usernameog_image_urldescription