Bắt đầu

Sự kiện

Người dùng

Số liệu

Tổ chức

Tác nhân AI

Tham khảo

Tài liệu API

Tích hợp LogsNinja vào ứng dụng của bạn trong vài phút. Gửi sự kiện từ bất kỳ ngôn ngữ nào bằng một yêu cầu HTTP POST đơn giản.

Bắt đầu nhanh

Lấy prompt bắt đầu

Xác thực

Tất cả các yêu cầu phải bao gồm token API trong header Authorization.

HTTP
Authorization: Bearer YOUR_API_TOKEN

Bạn có thể tạo token API từ cài đặt dự án. Đến trang token

Nếu bạn là một tác nhân AI thay vì con người, bạn có thể lấy token mà không cần ai sao chép và dán cho bạn. Xem phần ủy quyền thiết bị

Giới hạn tốc độ & hạn ngạch

Giới hạn phụ thuộc vào gói của bạn. Giới hạn tốc độ áp dụng cho mỗi tổ chức và được dùng chung cho mọi token API; việc tạo thêm token không làm tăng giới hạn này.

Giới hạn tốc độ toàn tổ chức áp dụng cho mọi endpoint được xác thực bằng token API, bao gồm POST /v1/events, PUT /v1/users, POST /v1/ping, PUT /v1/metrics, /v1/org/charts, /v1/org/widgets, và các thao tác xóa. Mỗi lệnh gọi tiêu tốn một yêu cầu từ cùng giới hạn chia sẻ này.

/v1/device/authorize (chưa có token tại thời điểm đó) được giới hạn ở mức 10 yêu cầu mỗi giờ cho mỗi địa chỉ IP, và /v1/device/token ở mức 60 yêu cầu mỗi 5 phút cho mỗi địa chỉ IP.

Plan Giới hạn lượt gọi Sự kiện / tháng Hình ảnh / tháng Hình ảnh mỗi sự kiện
Free 60 req/min 3,000 – Không bao gồm
Starter 300 req/min 100,000 20,000 1 mỗi sự kiện · tối đa 1 MB · đổi cỡ về 1024px · thân yêu cầu tối đa 1 MB
Plus 1,200 req/min 500,000 100,000 4 mỗi sự kiện · tối đa 1 MB · đổi cỡ về 1024px · thân yêu cầu tối đa 8 MB
Enterprise Tùy chỉnh Tùy chỉnh Tùy chỉnh Tùy chỉnh

Khi vượt quá giới hạn tốc độ, API trả về 429 với Too many requests. Số lượng sự kiện và số lượng hình ảnh mỗi loại có hạn ngạch hằng tháng riêng; khi đạt một trong hai, API trả về 429 với Monthly event or hosted image quota exceeded. Upgrade your plan to continue.

Header hạn ngạch

Mỗi phản hồi thành công từ POST /v1/events bao gồm các header sau:

HTTP
X-Quota-Remaining: 2497
X-Image-Quota-Remaining: 18320
X-Plan: starter
  • X-Quota-Remaining – số sự kiện còn lại trong tháng dương lịch hiện tại. -1 nghĩa là không giới hạn (Enterprise).
  • X-Image-Quota-Remaining – hình ảnh còn lại trong tháng dương lịch hiện tại. -1 nghĩa là không giới hạn (Enterprise).
  • X-Plan – gói hiện tại của tổ chức (free, starter, plus, enterprise).

Xem tất cả gói và giá

Định dạng siêu dữ liệu

Trường metadata trên sự kiện và người dùng tuân theo các quy tắc giống nhau:

  • Khóa: chỉ chữ thường, chữ số, dấu gạch ngang và dấu gạch dưới (^[a-z0-9_-]+$)
  • Giá trị: string, number, hoặc boolean
  • Tối đa 20 khóa mỗi đối tượng
  • Khóa: tối đa 100 ký tự
  • Giá trị dạng chuỗi: tối đa 255 ký tự
JSON
{
  "plan": "pro",
  "amount": 49,
  "score": 4.8,
  "is-trial": false
}

Prompt bắt đầu

Dán vào Claude Code, Cursor, Codex hoặc bất kỳ tác nhân AI nào để bắt đầu ngay.

Prompt
You are integrating LogsNinja into this project.

LogsNinja is a real-time event tracking and push notification platform. Use its REST API to log application events, track users, update dashboard metrics, and trigger instant push notifications to mobile and desktop devices.

LogsNinja provides no SDK – all integration is done via plain HTTP calls using the libraries and conventions already present in this project.

## Fetch the full API documentation

Before writing any integration code, fetch the complete reference in Markdown:

  curl https://logsninja.com/vi/docs -H "Accept: text/markdown"

Read it carefully – it covers all endpoints, request fields, response codes, rate limits, and examples.

## Core concepts

**Events** – send a POST to /v1/events. All fields are covered in the documentation.
**Streams** – lightweight channels grouping events. Auto-created on first use (e.g. "payments", "errors").
**Users** – PUT /v1/users to create or update a user profile. The same id is used in the user field when sending events. Optional country_code is caller-supplied (LogsNinja does not geolocate IPs itself) – see the full docs for how to obtain it.
**Metrics** – PUT /v1/metrics to create or update a numeric, text, currency, or percent dashboard tile. Supports atomic diff increments.
**Presence** – POST /v1/ping to signal a user is online without creating an event.
**Event chains** – link events sequentially with before/after fields to trace multi-step workflows.
**Charts** – POST/GET/PATCH/DELETE /v1/org/charts to manage dashboard charts. Same fields and validation rules as the dashboard's own chart editor.
**Widgets** – POST/GET/PATCH/DELETE /v1/org/widgets (plus POST /v1/org/widgets/reorder) to manage what's on the dashboard. The dashboard is a masonry layout, not a rigid grid: "small" widgets (metric, online_users) are meant for width 1 or 2 and render at exactly half the visual height of "large" widgets (chart, world_map, events_7d, top_countries), meant for width 2 or 3 (full row) – keep that in mind when arranging one via the API.

## Authentication

All requests require:

  Authorization: Bearer YOUR_API_TOKEN

Creating an account and generating a token both require a human to sign in
to the LogsNinja dashboard - you cannot do either yourself. If you don't
already have a token (e.g. in an environment variable), stop and ask the
person you're working with to create one at https://logsninja.com/vi/my/tokens
and give it to you (for example as a LOGSNINJA_API_TOKEN environment
variable) before you continue.

## API base URL

  https://api.logsninja.com/v1

## MCP server

If you are an AI agent with MCP support rather than a code-generation assistant, LogsNinja is also usable directly as an MCP server at https://logsninja.com/mcp (same Bearer token as above) – it exposes tools to manage charts and dashboard widgets, explore project data, and create/delete test events, users, and metrics, without writing HTTP calls yourself. See the full docs for the tool list.

## Integration guidelines

- Use the HTTP client and patterns already established in this project – do not introduce new dependencies.
- All LogsNinja calls must be fire-and-forget from the application's perspective: they must never block the main flow or surface errors to the end user.
- Apply a 3-second timeout to every HTTP call, if possible.
- If this project already has a job queue, background worker, or retry mechanism, use it for LogsNinja calls.
- If no such mechanism exists, wrap calls in a silent try/catch (or equivalent) so that a LogsNinja failure has zero impact on the application.

## What to instrument

Scan the codebase and identify meaningful moments to send events: key user actions, business transactions, errors, background jobs, and any other signal that would be useful to monitor. For each, choose a descriptive title and a fitting emoji. Once done, provide a summary of every integration point added.

## Presence

Use presence sparingly. Sending an event with a user field already updates that user's online status for 15 minutes, so a separate ping is redundant in those cases. Only call POST /v1/ping when you know the user is active but no event will be sent soon – for example on login, or during an idle session. Do not ping on every page view or API call.

Gửi sự kiện

POST https://api.logsninja.com/v1/events

Tiêu đề

HTTP
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

Nội dung yêu cầu

JSON
{
  "project": "YOUR_PROJECT_ID",
  "stream": "payments",
  "title": "New subscription",
  "content": "[email protected] subscribed to Pro",
  "emoji": "💳",
  "metadata": { "plan": "pro", "amount": 49 },
  "notify": true
}

Ví dụ

curl -X POST https://api.logsninja.com/v1/events \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "stream": "payments",
    "title": "New subscription",
    "content": "[email protected] subscribed to Pro",
    "notify": true
  }'
await fetch('https://api.logsninja.com/v1/events', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    stream: 'payments',
    title: 'New subscription',
    content: '[email protected] subscribed to Pro',
    notify: true,
  }),
});
import requests

requests.post(
    'https://api.logsninja.com/v1/events',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'stream': 'payments',
        'title': 'New subscription',
        'content': '[email protected] subscribed to Pro',
        'notify': True,
    },
)

Trường sự kiện

Trường Kiểu Bắt buộc Mô tả
project string ✓ ID dự án. Xem trong cài đặt dự án.
stream string ✓ Stream mà sự kiện này thuộc về. Tự động tạo khi sử dụng lần đầu.
title string ✓ Tiêu đề ngắn của sự kiện. Tối đa 100 ký tự.
content string Chi tiết bổ sung, tối đa 500 ký tự. Hỗ trợ Markdown: in đậm, in nghiêng, mã, danh sách và liên kết.
emoji string Emoji để nhận diện trực quan sự kiện. Mặc định là 🔔 nếu bỏ trống. Định dạng được chấp nhận: ký tự emoji ("💳"), shortcode (":credit_card:"), hoặc mã hex ("1F4B3"). Cũng được dùng làm hình ảnh thông báo đẩy. Xem các emoji có sẵn.
metadata object Siêu dữ liệu khóa/giá trị. Xem quy tắc định dạng ở trên.
user string ID người dùng trong ứng dụng của bạn (cùng id được truyền vào PUT /v1/users). Người dùng chưa cần tồn tại: các sự kiện được liên kết tự động khi người dùng được tạo. Gửi sự kiện thời gian thực với trường user cũng tính là hiện diện: người dùng được coi là trực tuyến trong 15 phút sau sự kiện hoặc ping cuối cùng. Các sự kiện backdated với timestamp không ảnh hưởng đến trạng thái hiện diện.
images string[] Hình ảnh cho sự kiện này. Yêu cầu gói trả phí. Là một mảng các URL HTTPS công khai của ảnh để tải và lưu trữ (các URL trùng lặp trong cùng một sự kiện sẽ được loại bỏ), hoặc chính các file được gửi dưới dạng multipart/form-data. Ảnh được xử lý bất đồng bộ và được giữ trong 30 ngày. Xem Tải ảnh lên để biết hợp đồng đầy đủ, giới hạn kích thước, định dạng được chấp nhận, yêu cầu về URL và cách đọc images_status.
notify boolean Gửi thông báo đẩy đến các thiết bị đã đăng ký. Mặc định: false. Không thể là true khi timestamp được đặt. Khi có notify, phản hồi cũng bao gồm notification_queued; false nghĩa là sự kiện đã được lưu nhưng hàng đợi thông báo di động vẫn không khả dụng sau khi thử lại.
timestamp integer Timestamp Unix (tính bằng giây) để cài lùi ngày sự kiện. Phải là thời gian trong quá khứ. Không thể kết hợp với notify: true. Các sự kiện backdated không ảnh hưởng đến trạng thái hiện diện.
before string Sự kiện sẽ được đặt trước sự kiện có ID được truyền trong thuộc tính này, trong một chuỗi sự kiện.
after string Sự kiện sẽ được đặt sau sự kiện có ID được truyền trong thuộc tính này, trong một chuỗi sự kiện.

Tải ảnh lên

Có hai cách để đính kèm ảnh vào một sự kiện, cả hai đều dành cho gói trả phí và được xử lý theo cùng một cách, bất đồng bộ: truyền một mảng các URL HTTPS công khai trong trường JSON images để LogsNinja tải và lưu trữ, hoặc gửi chính các file trong cùng một yêu cầu POST /v1/events dưới dạng multipart/form-data.

Tải lên nhị phân (multipart/form-data)

Yêu cầu có một phần event và một hoặc nhiều phần file có tên image:

Phần Mô tả
event Một chuỗi chứa đúng phần thân JSON mà bạn sẽ gửi dưới dạng application/json: project, stream, title và bất kỳ trường nào khác, với metadata là một đối tượng JSON thực sự (không phải các trường biểu mẫu metadata[key]). Nó vẫn có thể bao gồm một mảng images gồm các URL, được lưu cùng với các file đã tải lên.
image Mỗi file một phần, mỗi phần được gửi dưới dạng file (có tên file) và mang Content-Type là image/jpeg, image/png hoặc image/webp. Các phần có tên khác, và các phần image không phải là file, sẽ bị bỏ qua.
curl -X POST https://api.logsninja.com/v1/events \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F 'event={"project":"YOUR_PROJECT_ID","stream":"payments","title":"New subscription","metadata":{"plan":"pro"},"notify":true};type=application/json' \
  -F 'image=@./screenshot.png;type=image/png'
const form = new FormData();
form.append('event', JSON.stringify({
  project: 'YOUR_PROJECT_ID',
  stream: 'payments',
  title: 'New subscription',
  metadata: { plan: 'pro' },
  notify: true,
}));
form.append('image', fileOrBlob, 'screenshot.png'); // Content-Type image/png

await fetch('https://api.logsninja.com/v1/events', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }, // no Content-Type
  body: form,
});

Lỗi đồng bộ

Chúng được trả về ngay trong phản hồi POST, trước khi sự kiện được tạo:

Mã Nguyên nhân
400Thiếu phần event hoặc nó không phải là một đối tượng JSON.
403Gói của bạn không bao gồm ảnh trên sự kiện.
411Yêu cầu không có tiêu đề Content-Length.
413Một file vượt quá giới hạn kích thước mỗi ảnh của gói, hoặc toàn bộ thân yêu cầu vượt quá kích thước tối đa của gói.
415Content-Type của một phần image không bắt đầu bằng image/. Một kiểu ảnh sai (ví dụ image/gif) vượt qua kiểm tra này nhưng sau đó thất bại dưới dạng bad_format.
422Nhiều ảnh hơn mức gói của bạn cho phép mỗi sự kiện.

Xem Giới hạn tần suất và hạn mức để biết số lượng ảnh theo gói, kích thước mỗi ảnh và kích thước thân yêu cầu tối đa.

Tải từ một URL

Khi bạn truyền URL thay vì file, mỗi URL phải đáp ứng tất cả các điều sau, nếu không ảnh sẽ bị đánh dấu failed:

  • Chỉ HTTPS, trên cổng 443. Không có host là địa chỉ IP, không localhost, .local hoặc .internal. URL tối đa 2048 ký tự.
  • Phản hồi phải mang Content-Type: image/jpeg, image/png hoặc image/webp. Một 200 trả về text/html (trang lỗi, tường đăng nhập) là lỗi vĩnh viễn – không bao giờ thử lại.
  • Việc tải hết thời gian chờ sau 15 giây và theo tối đa 3 lần chuyển hướng.
  • Với 403, 404, 408, 425, 429, 500, 502, 503 hoặc 504, việc tải được thử lại trong khoảng một phút trước khi ảnh bị đánh dấu failed. Mọi trạng thái khác đều thất bại vĩnh viễn ngay lần đầu.

Định dạng và xử lý

  • Định dạng được chấp nhận: JPEG, PNG và WebP, được phát hiện từ các byte nhận dạng của file – không phải phần mở rộng hay kiểu khai báo.
  • Mỗi ảnh được đổi cỡ để vừa với kích thước tối đa của gói và được lưu ở cả JPEG và WebP. Ảnh được giữ trong 30 ngày.
  • Một sự kiện lùi ngày (timestamp) có ngày đã nằm ngoài cửa sổ 30 ngày sẽ bỏ qua hoàn toàn việc xử lý ảnh; images_status của nó là expired.

Đọc kết quả

Phản hồi POST bao gồm images_status, nhưng tại thời điểm đó nó luôn là pending (hoặc none / expired) vì việc xử lý chưa chạy. Không có webhook: hãy đọc lại sự kiện sau – bằng công cụ get_event của MCP hoặc trong nguồn cấp sự kiện của Studio – để xem kết quả.

images_status Ý nghĩa
noneSự kiện không có ảnh.
pendingĐang xếp hàng hoặc đang xử lý.
readyMọi ảnh đều đã được xử lý.
partialMột số ảnh đã sẵn sàng, một số bị lỗi.
failedMọi ảnh đều bị lỗi.
expiredSự kiện có trước cửa sổ ảnh 30 ngày; không có gì được tải lên.

Mỗi ảnh cũng mang một chuỗi error và một error_code (too_large, bad_format hoặc unreachable) khi bị lỗi.

Khuyến nghị: đối với một sự kiện bạn phát ngay sau khi tạo ảnh (một bản render, ảnh chụp màn hình, bản xuất), hãy tải file lên thay vì một URL. Một URL chưa thể truy cập – hoặc đã bị xóa – khi LogsNinja tải nó sẽ làm ảnh bị lỗi, và không có gì báo cho bạn khi điều đó xảy ra.

Chuỗi sự kiện

Các trường before và after liên kết các sự kiện thành một chuỗi. Bảng chi tiết sự kiện hiển thị các sự kiện liền kề và cho phép xem toàn bộ chuỗi.

Chỉ các tham chiếu đến sự kiện trong cùng một dự án mới được xử lý và chỉ khi dấu thời gian của chúng hợp lý. Mục tiêu after (tiền nhiệm) phải có dấu thời gian sớm hơn, và mục tiêu before (kế nhiệm) phải có dấu thời gian muộn hơn.

Xóa sự kiện

DELETE https://api.logsninja.com/v1/events/:id?project=YOUR_PROJECT_ID

Xóa vĩnh viễn một sự kiện.

Tạo hoặc cập nhật người dùng

PUT https://api.logsninja.com/v1/users

Tạo hoặc cập nhật người dùng app. Gọi với cùng id sẽ thay thế bản ghi.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123",
  "country_code": "FR",
  "display_as": "[email protected]",
  "metadata": { "plan": "pro", "mrr": 49 }
}
Trường Kiểu Bắt buộc Mô tả
project string ✓ ID dự án.
id string ✓ Định danh ổn định của bạn cho người dùng này (vd. ID trong database của bạn). Đây là giá trị bạn dùng trong trường user khi gửi sự kiện.
country_code string Mã quốc gia ISO 3166-1 alpha-2 (ví dụ FR, US). Xem Định vị địa lý để biết cách lấy mã này.
display_as string Tên hiển thị trên trang web và ứng dụng di động cho người dùng này. Nếu không đặt hoặc là null, id của người dùng sẽ được dùng thay thế.
metadata object Siêu dữ liệu khóa/giá trị. Xem quy tắc định dạng ở trên.

Ví dụ

curl -X PUT https://api.logsninja.com/v1/users \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "id": "user_123",
    "country_code": "FR",
    "metadata": { "plan": "pro" }
  }'
await fetch('https://api.logsninja.com/v1/users', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    id: 'user_123',
    country_code: 'FR',
    metadata: { plan: 'pro' },
  }),
});
import requests

requests.put(
    'https://api.logsninja.com/v1/users',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'id': 'user_123',
        'country_code': 'FR',
        'metadata': {'plan': 'pro'},
    },
)

Định vị địa lý

LogsNinja không bao giờ tự xác định quốc gia của người dùng từ địa chỉ IP – country_code hoàn toàn do bên gọi cung cấp.

  • Nếu backend của bạn đi qua Cloudflare (Workers/Pages, hoặc bản ghi DNS bật đám mây cam), hãy đọc trực tiếp header CF-IPCountry – nó đã có sẵn trên mọi request đến.
  • Nguyên tắc tương tự cũng áp dụng với hầu hết các CDN/mạng biên khác (vd. Akamai, Bunny, Fastly, Amazon CloudFront) – chúng thường tự thêm một header địa lý tương đương. Hãy kiểm tra tài liệu của nhà cung cấp đó để biết tên và định dạng header chính xác.
  • Nếu không, hãy dùng một thư viện hoặc dịch vụ GeoIP trên địa chỉ IP của request (vd. MaxMind GeoLite2, ipinfo.io, ip-api.com).

Truyền mã thu được vào country_code – nó cung cấp dữ liệu cho biểu đồ phân bổ theo quốc gia và widget bản đồ thế giới.

Xóa người dùng

DELETE https://api.logsninja.com/v1/users/:id?project=YOUR_PROJECT_ID

Xóa người dùng app. Sự kiện của họ vẫn còn nhưng không còn liên kết với người dùng.

Báo hiệu sự hiện diện của người dùng

POST https://api.logsninja.com/v1/ping

Ghi nhận người dùng đang trực tuyến, không tạo sự kiện. Người dùng được coi là trực tuyến nếu họ đã gửi ping hoặc có sự kiện liên kết trong 15 phút qua. Nếu người dùng chưa tồn tại, ping sẽ bị bỏ qua – hãy tạo người dùng trước qua PUT /v1/users.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123"
}
Trường Kiểu Bắt buộc Mô tả
project string ✓ ID dự án.
id string ✓ ID người dùng app của bạn (cùng id đã truyền vào PUT /v1/users).

Tạo hoặc cập nhật chỉ số

PUT https://api.logsninja.com/v1/metrics

Tạo hoặc cập nhật một ô chỉ số. Gọi với cùng id sẽ thay thế giá trị. Với kiểu số, bạn cũng có thể áp dụng delta thay vì đặt giá trị tuyệt đối.

JSON – replace
{
  "project": "YOUR_PROJECT_ID",
  "id": "mrr",
  "title": "MRR",
  "emoji": "💰",
  "value": 4900,
  "value_type": "currency",
  "currency": "EUR"
}
JSON – diff
{
  "project": "YOUR_PROJECT_ID",
  "id": "active-users",
  "title": "Active users",
  "value": { "diff": 1 },
  "value_type": "number"
}
Trường Kiểu Bắt buộc Mô tả
project string ✓ ID dự án.
id string ✓ Định danh ổn định của chỉ số này (ví dụ mrr, active-users).
title string ✓ Nhãn hiển thị trên ô chỉ số.
value string | number | object ✓ Giá trị của chỉ số. Với kiểu số, truyền {"diff": N} để cộng hoặc trừ N theo kiểu nguyên tử (ví dụ {"diff": -1}). Không dùng được với value_type text.
value_type string ✓ Một trong: number, text, currency, percent.
currency string Mã tiền tệ ISO 4217 (ví dụ EUR, USD). Bắt buộc khi value_type là currency.
emoji string Emoji hiển thị trên ô số liệu. Các định dạng được chấp nhận: ký tự emoji ("💰"), shortcode (":money-bag:") hoặc mã thập lục phân ("1F4B0"). Khi bỏ qua, ℹ️ được hiển thị theo mặc định mà không được lưu vào số liệu. Xem các emoji có sẵn.

Ví dụ

curl -X PUT https://api.logsninja.com/v1/metrics \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "id": "mrr",
    "title": "MRR",
    "value": 4900,
    "value_type": "currency",
    "currency": "EUR"
  }'
await fetch('https://api.logsninja.com/v1/metrics', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    id: 'mrr',
    title: 'MRR',
    value: 4900,
    value_type: 'currency',
    currency: 'EUR',
  }),
});
import requests

requests.put(
    'https://api.logsninja.com/v1/metrics',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'id': 'mrr',
        'title': 'MRR',
        'value': 4900,
        'value_type': 'currency',
        'currency': 'EUR',
    },
)

Xóa chỉ số

DELETE https://api.logsninja.com/v1/metrics/:id?project=YOUR_PROJECT_ID

Xóa ô chỉ số khỏi bảng điều khiển.

Dự án

Danh sách dự án

GET https://api.logsninja.com/v1/org/projects

Trả về các dự án trong tổ chức theo từng trang. Token giới hạn theo dự án chỉ nhận được dự án đã liên kết. Chấp nhận tham số page (mặc định 1) và limit (mặc định 50, tối đa 200). Phản hồi gồm page, limit, total và has_more.

Tạo dự án

POST https://api.logsninja.com/v1/org/projects

Việc tạo dự án yêu cầu token có phạm vi toàn tổ chức. Token giới hạn theo dự án không thể tạo dự án.

Trường Kiểu Bắt buộc Mô tả
name string ✓ Tên dự án.

Tokens

Danh sách token

GET https://api.logsninja.com/v1/org/tokens

Trả về các token API trong tổ chức theo từng trang. Token giới hạn theo dự án chỉ nhận được các token liên kết với cùng dự án. Chấp nhận tham số page (mặc định 1) và limit (mặc định 50, tối đa 200). Phản hồi gồm page, limit, total, has_more và quyền can_manage_tokens của từng token. Giá trị token không bao giờ được trả lại sau khi tạo.

Tạo token

POST https://api.logsninja.com/v1/org/tokens

Thông tin xác thực gọi API phải có can_manage_tokens=true. Giá trị token chỉ được trả về một lần và không thể lấy lại. Bên gọi bị giới hạn theo dự án chỉ có thể tạo token khác cho chính dự án đó; bỏ qua project_id không cấp quyền truy cập toàn tổ chức.

Trường Kiểu Bắt buộc Mô tả
name string ✓ Tên token.
project_id string Giới hạn token cho một dự án. Nếu bỏ qua, token có quyền truy cập vào tất cả các dự án trong tổ chức.
can_manage_tokens boolean Cho phép token này tạo và ủy quyền các token khác trong giới hạn tổ chức hoặc dự án của nó. Mặc định là tắt.

Ủy quyền thiết bị

Cho phép công cụ CLI hoặc tác nhân AI lấy token API mà không cần con người sao chép và dán thủ công. Công cụ yêu cầu một mã ngắn và hiển thị cho con người; một người dùng đã có tài khoản LogsNinja mở một liên kết và phê duyệt yêu cầu từ phiên trình duyệt của chính họ; sau đó công cụ tự động nhận được token. Việc này không bao giờ tạo tài khoản hay bỏ qua đăng ký – chỉ người dùng đã đăng nhập mới có thể phê duyệt yêu cầu.

Bắt đầu quy trình

POST https://api.logsninja.com/v1/device/authorize

Không cần xác thực. Trả về device_code, một user_code ngắn để hiển thị cho con người, và một verification_uri để mở trong trình duyệt.

JSON
{
  "device_code": "a1b2c3...",
  "user_code": "WXYZ-1234",
  "verification_uri": "https://logsninja.com/en/my/tokens#devices",
  "verification_uri_complete": "https://logsninja.com/en/my/tokens?user_code=WXYZ-1234#devices",
  "expires_in": 600,
  "interval": 5
}

Hiển thị user_code (hoặc liên kết verification_uri_complete) cho con người và yêu cầu họ mở và phê duyệt yêu cầu.

Thăm dò để lấy token

POST https://api.logsninja.com/v1/device/token

Không cần xác thực. Thăm dò bằng device_code theo khoảng thời gian đã cho ở trên cho đến khi trạng thái không còn là pending.

Trường Kiểu Bắt buộc Mô tả
device_code string ✓ device_code được trả về bởi lệnh gọi authorize.

Phản hồi là {"status": "pending"}, {"status": "denied"}, {"status": "expired"}, hoặc, khi đã được phê duyệt, {"status": "approved", "token": "..."}. Token chỉ được trả về đúng một lần – hãy lưu lại ngay lập tức.

Máy chủ MCP

Cho phép một tác nhân AI (Claude, v.v.) sử dụng LogsNinja trực tiếp từ một cuộc trò chuyện thay vì viết các lệnh gọi HTTP.

MCP https://logsninja.com/mcp

Trỏ client MCP của bạn đến URL này, xác thực bằng cùng token API như phần còn lại của API này: Authorization: Bearer YOUR_API_TOKEN.

Claude Code

Bash
claude mcp add --transport http logsninja https://logsninja.com/mcp \
  --header "Authorization: Bearer YOUR_API_TOKEN"

Claude Desktop

File cấu hình của Claude Desktop không còn chấp nhận trực tiếp url và headers của một server từ xa – chỉ hỗ trợ server stdio (command/args). Hãy kết nối đến endpoint HTTP này bằng mcp-remote:

JSON
{
  "mcpServers": {
    "logsninja": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://logsninja.com/mcp",
        "--header",
        "Authorization: Bearer YOUR_API_TOKEN"
      ]
    }
  }
}
Nền tảng Vị trí file cấu hình
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

Cursor

Cursor hỗ trợ trực tiếp url và headers của một server từ xa, không cần cầu nối:

JSON
{
  "mcpServers": {
    "logsninja": {
      "url": "https://logsninja.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

File cấu hình: ~/.cursor/mcp.json (toàn cục) hoặc .cursor/mcp.json (dự án)

Codex CLI và ứng dụng ChatGPT

Cả hai đều dùng chung ~/.codex/config.toml – form Settings → Plugins → MCPs → Add Server của ứng dụng ChatGPT cũng ghi vào file này. Hãy chỉnh sửa trực tiếp để dùng bearer_token_env_var, đọc token từ một biến môi trường thay vì lưu dạng văn bản thuần:

TOML
[mcp_servers.logsninja]
url = "https://logsninja.com/mcp"
bearer_token_env_var = "LOGSNINJA_API_TOKEN"

Đặt biến môi trường trong shell profile trước khi khởi chạy Codex hoặc ứng dụng ChatGPT, ví dụ export LOGSNINJA_API_TOKEN=YOUR_API_TOKEN.

File cấu hình: ~/.codex/config.toml

Công cụ

Công cụ Mô tả
list_projects, create_project Liệt kê các dự án trong phạm vi của bên gọi. Việc tạo dự án yêu cầu token có phạm vi toàn tổ chức.
list_charts, create_chart, update_chart, delete_chart Cùng các trường và quy tắc xác thực như trình chỉnh sửa biểu đồ trên bảng điều khiển.
list_widgets, create_widget, update_widget, reorder_widgets, delete_widget Cùng quy tắc bố cục masonry như các endpoint REST của widget.
get_data_inventory Tên stream, tiêu đề sự kiện và khóa metadata đã biết – hữu ích trước khi xây dựng biểu đồ.
preview_chart_data Tính toán dữ liệu của biểu đồ mà không tạo nó.
search_emojis Tìm kiếm emoji theo tên, shortcode hoặc từ khóa – hữu ích để chọn emoji cho một sự kiện.
get_documentation Toàn bộ tài liệu API dưới dạng Markdown, theo ngôn ngữ bạn chọn.
list_events, get_event 100 sự kiện gần nhất (tùy chọn theo stream), hoặc chi tiết một sự kiện cùng các sự kiện liền kề theo thời gian. Không phân trang.
list_users, get_user 100 người dùng gần nhất, hoặc chi tiết một người dùng theo id. Không phân trang hoặc tìm kiếm.
list_streams, list_metrics Stream và chỉ số tùy chỉnh được định nghĩa trong một dự án.
create_event, delete_event, create_or_update_user, delete_user, create_or_update_metric, delete_metric Giống các endpoint nạp dữ liệu – dùng để tạo và dọn dẹp dữ liệu thử nghiệm, không phải để gửi sự kiện sản xuất thực thay mặt người dùng.

Hầu hết các tool nhận tham số project_id, bắt buộc trừ khi token bị giới hạn cho một dự án duy nhất – cùng quy tắc như các endpoint REST bên dưới.

Biểu đồ

Tạo và quản lý các biểu đồ giống như bạn tự xây dựng trên bảng điều khiển – mọi tùy chọn bên dưới và mọi quy tắc xác thực đều giống hệt nhau, dù bạn dùng trình chỉnh sửa biểu đồ trên bảng điều khiển hay API. Đây chỉ là cấu hình biểu đồ: nó định nghĩa những gì biểu đồ hiển thị, không phải giá trị đã tính toán – không có endpoint nào để lấy các điểm dữ liệu của biểu đồ qua API này.

Loại biểu đồ

Biểu đồ đường (line) vẽ một giá trị cho mỗi kỳ dưới dạng đường liền – phù hợp để theo dõi xu hướng theo thời gian. Biểu đồ tròn (pie) hiển thị một ảnh chụp nhanh duy nhất chia thành các lát – phù hợp để xem tỷ lệ trong nháy mắt. Biểu đồ cột (bar) hiển thị một cột mỗi kỳ; ngay khi bạn thêm một phân tách (xem « Group by » bên dưới), nó tự động được vẽ với các phân đoạn xếp chồng thay vì một cột duy nhất – không có loại « cột xếp chồng » riêng để chọn. Biểu đồ phễu (funnel) đặt ra một loại câu hỏi hoàn toàn khác: thay vì một chỉ số theo thời gian, nó cho biết có bao nhiêu người dùng giống nhau đã đi qua một chuỗi bước có thứ tự.

Khoảng thời gian và khoảng chia

Chọn khoảng thời gian biểu đồ nhìn lại: 7 ngày qua (7d), 30 ngày qua (30d), hoặc 90 ngày qua (90d). Bạn cũng có thể tự định kích thước cửa sổ trượt theo giờ, ngày hoặc tháng (duration, kèm periodDurationValue và periodDurationUnit, ví dụ « 45 ngày qua »), hoặc đặt ngày bắt đầu cố định luôn chạy đến hôm nay (custom, kèm periodDateFrom) – không có trường nào để đặt ngày kết thúc cố định, nó luôn chạy đến hôm nay.

Khoảng chia thời gian (granularity) quyết định cách khoảng thời gian đó được chia thành các đoạn: theo giờ, ngày, tuần hoặc tháng (hour, day, week, month). Nó không áp dụng cho biểu đồ phễu: chúng vẫn dùng khoảng thời gian ở trên để lọc sự kiện, nhưng hiển thị một cột cho mỗi bước thay vì một chuỗi đoạn theo thời gian.

Một số tổ hợp chỉ có 90 ngày lịch sử khả dụng, bất kể khoảng thời gian bạn chọn: một phễu, một biểu đồ tròn có phân tách, một phân tách theo quốc gia/người dùng/metadata, nhiều hơn một phân tách cùng lúc, bất kỳ phép tính nào khác ngoài đếm đơn giản, hoặc lọc theo metadata. Một phép đếm đơn giản không có phân tách, hoặc phân tách chỉ theo stream hoặc tiêu đề sự kiện, có thể lùi xa hơn.

Lọc sự kiện nào được tính

Theo mặc định, một biểu đồ bao gồm mọi sự kiện (all). Bạn có thể thu hẹp xuống một stream duy nhất (stream, ví dụ chỉ "payments"), một tiêu đề sự kiện duy nhất (title, ví dụ chỉ "Order placed"), hoặc các sự kiện khớp với một giá trị metadata cụ thể (metadata, ví dụ chỉ sự kiện có "plan" bằng "pro").

Mục tiêu Cấu hình
Chỉ đếm sự kiện trên stream "payments" event_source_type: "stream", event_source_value: "payments"
Chỉ đếm sự kiện "Order placed", bất kể chúng ở stream nào event_source_type: "title", event_source_value: "Order placed"
Chỉ đếm sự kiện có metadata "plan" bằng "pro" event_source_type: "metadata", event_source_value: "plan=pro"

Tổng hợp

Điều này quyết định cách các sự kiện khớp trong mỗi khoảng thời gian trở thành con số duy nhất được vẽ: đếm sự kiện đơn giản (count), đếm người dùng riêng biệt (count_distinct), hoặc một phép tính trên giá trị metadata dạng số của sự kiện – tổng (sum), trung bình (avg), nhỏ nhất (min), lớn nhất (max), hoặc trung vị (median). Với bất kỳ phép tính nào khác ngoài đếm đơn giản, bạn cũng chọn khóa metadata nào chứa con số đó qua aggregation_field; các sự kiện thiếu khóa đó, hoặc giá trị không phải số, sẽ bị bỏ qua.

Mục tiêu Cấu hình
Sự kiện mỗi ngày aggregation: "count"
Người dùng duy nhất hoạt động mỗi ngày aggregation: "count_distinct"
Tổng doanh thu mỗi ngày (khóa metadata "amount" trên sự kiện của bạn) aggregation: "sum", aggregation_field: "amount"
Giá trị đơn hàng trung bình mỗi ngày (khóa metadata "amount" trên sự kiện của bạn) aggregation: "avg", aggregation_field: "amount"
Đơn hàng nhỏ nhất mỗi ngày (khóa metadata "amount" trên sự kiện của bạn) aggregation: "min", aggregation_field: "amount"
Đơn hàng lớn nhất mỗi ngày (khóa metadata "amount" trên sự kiện của bạn) aggregation: "max", aggregation_field: "amount"
Thời lượng phiên trung vị mỗi ngày (khóa metadata "duration_seconds" trên sự kiện của bạn) aggregation: "median", aggregation_field: "duration_seconds"

Nhóm theo

Theo mặc định, một biểu đồ hiển thị một giá trị tổng hợp duy nhất cho mỗi kỳ. Việc nhóm (group_by) sẽ tách nó thành nhiều chuỗi hoặc phân đoạn thay vào đó – mỗi giá trị riêng biệt của thứ bạn dùng để nhóm – được vẽ dưới dạng các đường riêng biệt, phân đoạn xếp chồng, hoặc lát hình tròn tùy theo loại biểu đồ.

Bạn có thể nhóm theo stream (stream), tiêu đề sự kiện (title), quốc gia (country), hoặc người dùng (user) mà không cần cấu hình gì thêm, hoặc theo một khóa metadata tùy chọn (metadata, với aggregation_field chứa khóa dùng để tách).

Mục tiêu Cấu hình
Sự kiện mỗi ngày, một đường cho mỗi stream type: line, aggregation: count, group_by: ["stream"]
Tiêu đề sự kiện nào phổ biến nhất mỗi ngày type: bar, aggregation: count, group_by: ["title"]
Đăng ký mỗi ngày, chia theo quốc gia type: bar, aggregation: count_distinct, group_by: ["country"]
So sánh hoạt động của một nhóm người dùng cụ thể nhỏ (đội của bạn, một vài tài khoản VIP) – một chuỗi cho mỗi người dùng khớp, vì vậy chỉ dễ đọc với một tập nhỏ, cố ý giới hạn type: line, aggregation: count, group_by: ["user"]
Khối lượng sự kiện mỗi ngày, một phân đoạn cho mỗi gói (khóa metadata "plan" trên sự kiện của bạn, ví dụ free/pro/enterprise) type: bar, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"
Tỷ lệ sự kiện theo từng gói, dạng hình tròn type: pie, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"

Một ràng buộc cần biết: khóa metadata bạn dùng để nhóm và khóa metadata bạn tổng hợp là cùng một cài đặt (aggregation_field), vì một biểu đồ chỉ có một khóa đó. Vì vậy "tổng số tiền đơn hàng mỗi ngày, chia theo gói" không thể thực hiện trong một biểu đồ duy nhất – bạn cần hoặc tính tổng số tiền không phân tách, hoặc đếm đơn hàng phân tách theo gói, không thể cả hai trên cùng một biểu đồ.

Biểu đồ phễu

Biểu đồ phễu (funnel) đặt ra một loại câu hỏi hoàn toàn khác: không phải « bao nhiêu sự kiện » mà là « bao nhiêu người dùng giống nhau đã đi từ bước 1, sang bước 2, sang bước 3 ». Bạn cung cấp một danh sách có thứ tự gồm ít nhất hai tiêu đề sự kiện qua funnel_steps; biểu đồ hiển thị một cột cho mỗi bước, mỗi cột chỉ đếm những người dùng đã hoàn thành mọi bước trước đó theo đúng thứ tự. Khoảng thời gian ở trên vẫn áp dụng, nhưng khoảng chia, phép tổng hợp và việc phân nhóm thì không.

Mục tiêu Cấu hình
Chuyển đổi đăng ký: bao nhiêu người đã xem giá, bắt đầu thanh toán, rồi hoàn tất type: "funnel", funnel_steps: ["Pricing viewed", "Checkout started", "Subscription created"]

Tùy chọn hiển thị

Bạn có thể hiện hoặc ẩn chú giải (show_legend), và chọn màu riêng (colors, một mảng mã hex áp dụng theo thứ tự) cho mỗi chuỗi hoặc phân đoạn thay vì bảng màu mặc định. Bạn cũng có thể chuyển sang tổng lũy kế (cumulative) thay vì giá trị theo từng kỳ – chỉ có ý nghĩa với biểu đồ đường hoặc cột cộng dồn một phép đếm hoặc tổng, vì tổng lũy kế của một giá trị trung bình, một số lượng người dùng riêng biệt, hoặc một biểu đồ tròn/phễu thì không có ý nghĩa gì.

Liệt kê biểu đồ

GET https://api.logsninja.com/v1/org/charts

Chấp nhận tham số truy vấn project_id, bắt buộc trừ khi token đã được giới hạn cho một dự án duy nhất.

Tạo biểu đồ

POST https://api.logsninja.com/v1/org/charts

Cập nhật biểu đồ

PATCH https://api.logsninja.com/v1/org/charts/{id}

Chỉ những trường bạn gửi mới được thay đổi.

Xóa biểu đồ

DELETE https://api.logsninja.com/v1/org/charts/{id}
Trường Kiểu Bắt buộc Mô tả
project_id string ✓ Bắt buộc trừ khi token được giới hạn cho một dự án duy nhất.
name string ✓ Tên biểu đồ.
type string ✓ line, bar, pie, funnel. Không có loại « cột xếp chồng » riêng: biểu đồ cột có thiết lập group_by vẫn là loại bar, được tự động hiển thị dưới dạng các phân đoạn xếp chồng.
period string ✓ 7d, 30d, 90d, duration, custom
period_date_from string Bắt buộc khi period là custom, định dạng YYYY-MM-DD.
period_duration_value / period_duration_unit integer / string Bắt buộc khi period là duration. Đơn vị là hour, day hoặc month.
granularity string ✓ hour, day, week, month
aggregation string ✓ count, count_distinct, sum, avg, min, max, median
aggregation_field string Tên trường metadata, bắt buộc đối với sum/avg/min/max/median và khi group_by bao gồm metadata.
group_by array Bất kỳ giá trị nào trong stream, title, country, user, metadata.
event_source_type string ✓ all, stream, title, metadata
event_source_value string Bắt buộc trừ khi event_source_type là all.
funnel_steps array Ít nhất hai tên bước theo thứ tự, bắt buộc khi type là funnel.
show_legend / cumulative boolean cumulative chỉ được áp dụng cho biểu đồ line/bar với phép tổng hợp count hoặc sum.
colors array Màu của các chuỗi dữ liệu dưới dạng mã hex.

Dữ liệu lịch sử vượt quá thời gian lưu trữ không khả dụng đối với các tổ hợp quét sự kiện thô (funnel, pie có group-by, group-by theo country/user/metadata, hoặc bất kỳ phép tổng hợp nào khác ngoài count).

Widget

Quản lý những ô nào xuất hiện trên bảng điều khiển và cách chúng được sắp xếp – đây chỉ là cấu hình bố cục, không phải dữ liệu hiển thị bên trong một ô.

Bảng điều khiển là bố cục kiểu masonry, không phải lưới cứng nhắc. Các widget « nhỏ » (metric, online_users) được thiết kế để chiếm một phần ba hoặc một nửa hàng (width 1 hoặc 2) và hiển thị với chính xác một nửa chiều cao trực quan của các widget « lớn » (chart, world_map, events_7d, top_countries), được thiết kế để chiếm một nửa hàng hoặc toàn bộ hàng (width 2 hoặc 3). Hãy nhớ điều này khi sắp xếp bảng điều khiển qua API.

Liệt kê widget

GET https://api.logsninja.com/v1/org/widgets

Chấp nhận tham số truy vấn project_id, bắt buộc trừ khi token đã được giới hạn cho một dự án duy nhất.

Thêm widget

POST https://api.logsninja.com/v1/org/widgets
Trường Kiểu Bắt buộc Mô tả
project_id string ✓ Bắt buộc trừ khi token được giới hạn cho một dự án duy nhất.
type string ✓ metric, chart, events_7d, world_map, top_countries, online_users. Chỉ có thể tồn tại một widget cho mỗi loại gốc (events_7d/world_map/top_countries/online_users) trên mỗi bảng điều khiển.
metric_id string Bắt buộc khi type là metric. Phải là id của một chỉ số đã tồn tại.
chart_id string Bắt buộc khi type là chart. Phải là một biểu đồ thuộc cùng dự án.
width integer 1 (1/3), 2 (1/2, mặc định), hoặc 3 (toàn hàng).

Thay đổi kích thước hoặc di chuyển widget

PATCH https://api.logsninja.com/v1/org/widgets/{id}

Gửi width và/hoặc position (chỉ số bắt đầu từ 0 trong số các widget của dự án). Đặt một vị trí sẽ di chuyển widget đến đó và đẩy mọi widget phía sau xuống một bậc – nó không hoán đổi hai widget. Chỉ những trường bạn gửi mới được thay đổi.

Sắp xếp lại toàn bộ bảng điều khiển

POST https://api.logsninja.com/v1/org/widgets/reorder

Gửi order dưới dạng danh sách đầy đủ, có thứ tự của mọi id widget trong dự án (danh sách không đầy đủ sẽ bị từ chối), và tùy chọn widths dưới dạng bản đồ id sang width.

Xóa widget

DELETE https://api.logsninja.com/v1/org/widgets/{id}

Mã phản hồi

Endpoint Thành công Nội dung
POST /v1/events 201 { "id": "...", "image_count": 0, "images_status": "none", "notification_queued": true }
DELETE /v1/events/:id 200 { "ok": true }
PUT /v1/users 200 { "id": "..." }
DELETE /v1/users/:id 200 { "ok": true }
POST /v1/ping 200 { "ok": true }
PUT /v1/metrics 200 { "id": "..." }
DELETE /v1/metrics/:id 200 { "ok": true }

Mã lỗi: 400 lỗi xác thực, 401 token thiếu hoặc không hợp lệ, 403 token bị giới hạn cho dự án khác, 404 không tìm thấy dự án.

Tham chiếu emoji

1837 emoji được hỗ trợ

mặt cười & cảm xúc

cười

grinning :grinning:
smiley :smiley:
smile :smile:
grin :grin:
laughing :laughing:
sweat_smile :sweat_smile:
rofl :rofl:
joy :joy:
slightly_smiling_face :slightly_smiling_face:
upside_down_face :upside_down_face:
melting_face :melting_face:
wink :wink:
blush :blush:
innocent :innocent:

yêu thương

smiling_face_with_three_hearts :smiling_face_with_three_hearts:
heart_eyes :heart_eyes:
star_struck :star_struck:
kissing_heart :kissing_heart:
kissing :kissing:
kissing_closed_eyes :kissing_closed_eyes:
kissing_smiling_eyes :kissing_smiling_eyes:
smiling_face_with_tear :smiling_face_with_tear:

lè lưỡi

yum :yum:
stuck_out_tongue :stuck_out_tongue:
stuck_out_tongue_winking_eye :stuck_out_tongue_winking_eye:
zany_face :zany_face:
stuck_out_tongue_closed_eyes :stuck_out_tongue_closed_eyes:
money_mouth_face :money_mouth_face:

tay

hugs :hugs:
hand_over_mouth :hand_over_mouth:
face_with_open_eyes_and_hand_over_mouth :face_with_open_eyes_and_hand_over_mouth:
face_with_peeking_eye :face_with_peeking_eye:
shushing_face :shushing_face:
thinking :thinking:
saluting_face :saluting_face:

trung lập / hoài nghi

zipper_mouth_face :zipper_mouth_face:
raised_eyebrow :raised_eyebrow:
neutral_face :neutral_face:
expressionless :expressionless:
no_mouth :no_mouth:
dotted_line_face :dotted_line_face:
smirk :smirk:
unamused :unamused:
roll_eyes :roll_eyes:
grimacing :grimacing:
lying_face :lying_face:
shaking_face :shaking_face:

buồn ngủ

relieved :relieved:
pensive :pensive:
sleepy :sleepy:
drooling_face :drooling_face:
sleeping :sleeping:

mệt mỏi

mask :mask:
face_with_thermometer :face_with_thermometer:
face_with_head_bandage :face_with_head_bandage:
nauseated_face :nauseated_face:
vomiting_face :vomiting_face:
sneezing_face :sneezing_face:
hot_face :hot_face:
cold_face :cold_face:
woozy_face :woozy_face:
dizzy_face :dizzy_face:
exploding_head :exploding_head:

đội mũ

cowboy_hat_face :cowboy_hat_face:
partying_face :partying_face:
disguised_face :disguised_face:

đeo kính

sunglasses :sunglasses:
nerd_face :nerd_face:
monocle_face :monocle_face:

lo lắng

confused :confused:
face_with_diagonal_mouth :face_with_diagonal_mouth:
worried :worried:
slightly_frowning_face :slightly_frowning_face:
open_mouth :open_mouth:
hushed :hushed:
astonished :astonished:
flushed :flushed:
pleading_face :pleading_face:
face_holding_back_tears :face_holding_back_tears:
frowning :frowning:
anguished :anguished:
fearful :fearful:
cold_sweat :cold_sweat:
disappointed_relieved :disappointed_relieved:
cry :cry:
sob :sob:
scream :scream:
confounded :confounded:
persevere :persevere:
disappointed :disappointed:
sweat :sweat:
weary :weary:
tired_face :tired_face:
yawning_face :yawning_face:

tiêu cực

triumph :triumph:
pout :pout:
angry :angry:
cursing_face :cursing_face:
smiling_imp :smiling_imp:
imp :imp:
skull :skull:
skull_and_crossbones :skull_and_crossbones:

hóa trang

hankey :hankey:
clown_face :clown_face:
japanese_ogre :japanese_ogre:
japanese_goblin :japanese_goblin:
ghost :ghost:
alien :alien:
space_invader :space_invader:
robot :robot:

mặt mèo

smiley_cat :smiley_cat:
smile_cat :smile_cat:
joy_cat :joy_cat:
heart_eyes_cat :heart_eyes_cat:
smirk_cat :smirk_cat:
kissing_cat :kissing_cat:
scream_cat :scream_cat:
crying_cat_face :crying_cat_face:
pouting_cat :pouting_cat:

mặt khỉ

see_no_evil :see_no_evil:
hear_no_evil :hear_no_evil:
speak_no_evil :speak_no_evil:

trái tim

love_letter :love_letter:
cupid :cupid:
gift_heart :gift_heart:
sparkling_heart :sparkling_heart:
heartpulse :heartpulse:
heartbeat :heartbeat:
revolving_hearts :revolving_hearts:
two_hearts :two_hearts:
heart_decoration :heart_decoration:
heavy_heart_exclamation :heavy_heart_exclamation:
broken_heart :broken_heart:
heart_on_fire :heart_on_fire:
mending_heart :mending_heart:
heart :heart:
pink_heart :pink_heart:
orange_heart :orange_heart:
yellow_heart :yellow_heart:
green_heart :green_heart:
blue_heart :blue_heart:
light_blue_heart :light_blue_heart:
purple_heart :purple_heart:
brown_heart :brown_heart:
black_heart :black_heart:
grey_heart :grey_heart:
white_heart :white_heart:

cảm xúc

kiss :kiss:
100 :100:
anger :anger:
boom :boom:
dizzy :dizzy:
sweat_drops :sweat_drops:
dash :dash:
hole :hole:
speech_balloon :speech_balloon:
eye_speech_bubble :eye_speech_bubble:
left_speech_bubble :left_speech_bubble:
right_anger_bubble :right_anger_bubble:
thought_balloon :thought_balloon:
zzz :zzz:

người & cơ thể

ngón tay mở

wave :wave:
raised_back_of_hand :raised_back_of_hand:
raised_hand_with_fingers_splayed :raised_hand_with_fingers_splayed:
hand :hand:
vulcan_salute :vulcan_salute:
rightwards_hand :rightwards_hand:
leftwards_hand :leftwards_hand:
palm_down_hand :palm_down_hand:
palm_up_hand :palm_up_hand:
leftwards_pushing_hand :leftwards_pushing_hand:
rightwards_pushing_hand :rightwards_pushing_hand:

ngón tay một phần

ok_hand :ok_hand:
pinched_fingers :pinched_fingers:
pinching_hand :pinching_hand:
v :v:
crossed_fingers :crossed_fingers:
hand_with_index_finger_and_thumb_crossed :hand_with_index_finger_and_thumb_crossed:
love_you_gesture :love_you_gesture:
metal :metal:
call_me_hand :call_me_hand:

chỉ hướng

point_left :point_left:
point_right :point_right:
point_up_2 :point_up_2:
point_down :point_down:
point_up :point_up:
index_pointing_at_the_viewer :index_pointing_at_the_viewer:

ngón tay khép

+1 :+1:
-1 :-1:
fist :fist:
facepunch :facepunch:
fist_left :fist_left:
fist_right :fist_right:

bàn tay

clap :clap:
raised_hands :raised_hands:
heart_hands :heart_hands:
open_hands :open_hands:
palms_up_together :palms_up_together:
handshake :handshake:
pray :pray:

đạo cụ

writing_hand :writing_hand:
nail_care :nail_care:
selfie :selfie:

bộ phận cơ thể

muscle :muscle:
mechanical_arm :mechanical_arm:
mechanical_leg :mechanical_leg:
leg :leg:
foot :foot:
ear :ear:
ear_with_hearing_aid :ear_with_hearing_aid:
nose :nose:
brain :brain:
anatomical_heart :anatomical_heart:
lungs :lungs:
tooth :tooth:
bone :bone:
eyes :eyes:
eye :eye:
tongue :tongue:
lips :lips:
biting_lip :biting_lip:

người

baby :baby:
child :child:
boy :boy:
girl :girl:
adult :adult:
blond_haired_person :blond_haired_person:
man :man:
bearded_person :bearded_person:
man_beard :man_beard:
woman_beard :woman_beard:
red_haired_man :red_haired_man:
curly_haired_man :curly_haired_man:
white_haired_man :white_haired_man:
bald_man :bald_man:
woman :woman:
red_haired_woman :red_haired_woman:
person_red_hair :person_red_hair:
curly_haired_woman :curly_haired_woman:
person_curly_hair :person_curly_hair:
white_haired_woman :white_haired_woman:
person_white_hair :person_white_hair:
bald_woman :bald_woman:
person_bald :person_bald:
blond_haired_woman :blond_haired_woman:
blond_haired_man :blond_haired_man:
older_adult :older_adult:
older_man :older_man:
older_woman :older_woman:

cử chỉ

frowning_person :frowning_person:
frowning_man :frowning_man:
frowning_woman :frowning_woman:
pouting_face :pouting_face:
pouting_man :pouting_man:
pouting_woman :pouting_woman:
no_good :no_good:
ng_man :ng_man:
ng_woman :ng_woman:
ok_person :ok_person:
ok_man :ok_man:
ok_woman :ok_woman:
information_desk_person :information_desk_person:
sassy_man :sassy_man:
sassy_woman :sassy_woman:
raising_hand :raising_hand:
raising_hand_man :raising_hand_man:
raising_hand_woman :raising_hand_woman:
deaf_person :deaf_person:
deaf_man :deaf_man:
deaf_woman :deaf_woman:
bow :bow:
bowing_man :bowing_man:
bowing_woman :bowing_woman:
facepalm :facepalm:
man_facepalming :man_facepalming:
woman_facepalming :woman_facepalming:
shrug :shrug:
man_shrugging :man_shrugging:
woman_shrugging :woman_shrugging:

vai trò & nghề nghiệp

health_worker :health_worker:
man_health_worker :man_health_worker:
woman_health_worker :woman_health_worker:
student :student:
man_student :man_student:
woman_student :woman_student:
teacher :teacher:
man_teacher :man_teacher:
woman_teacher :woman_teacher:
judge :judge:
man_judge :man_judge:
woman_judge :woman_judge:
farmer :farmer:
man_farmer :man_farmer:
woman_farmer :woman_farmer:
cook :cook:
man_cook :man_cook:
woman_cook :woman_cook:
mechanic :mechanic:
man_mechanic :man_mechanic:
woman_mechanic :woman_mechanic:
factory_worker :factory_worker:
man_factory_worker :man_factory_worker:
woman_factory_worker :woman_factory_worker:
office_worker :office_worker:
man_office_worker :man_office_worker:
woman_office_worker :woman_office_worker:
scientist :scientist:
man_scientist :man_scientist:
woman_scientist :woman_scientist:
technologist :technologist:
man_technologist :man_technologist:
woman_technologist :woman_technologist:
singer :singer:
man_singer :man_singer:
woman_singer :woman_singer:
artist :artist:
man_artist :man_artist:
woman_artist :woman_artist:
pilot :pilot:
man_pilot :man_pilot:
woman_pilot :woman_pilot:
astronaut :astronaut:
man_astronaut :man_astronaut:
woman_astronaut :woman_astronaut:
firefighter :firefighter:
man_firefighter :man_firefighter:
woman_firefighter :woman_firefighter:
cop :cop:
policeman :policeman:
policewoman :policewoman:
detective :detective:
male_detective :male_detective:
female_detective :female_detective:
guard :guard:
guardsman :guardsman:
guardswoman :guardswoman:
ninja :ninja:
construction_worker :construction_worker:
construction_worker_man :construction_worker_man:
construction_worker_woman :construction_worker_woman:
person_with_crown :person_with_crown:
prince :prince:
princess :princess:
person_with_turban :person_with_turban:
man_with_turban :man_with_turban:
woman_with_turban :woman_with_turban:
man_with_gua_pi_mao :man_with_gua_pi_mao:
woman_with_headscarf :woman_with_headscarf:
person_in_tuxedo :person_in_tuxedo:
man_in_tuxedo :man_in_tuxedo:
woman_in_tuxedo :woman_in_tuxedo:
person_with_veil :person_with_veil:
man_with_veil :man_with_veil:
bride_with_veil :bride_with_veil:
pregnant_woman :pregnant_woman:
pregnant_man :pregnant_man:
pregnant_person :pregnant_person:
breast_feeding :breast_feeding:
woman_feeding_baby :woman_feeding_baby:
man_feeding_baby :man_feeding_baby:
person_feeding_baby :person_feeding_baby:

giả tưởng

angel :angel:
santa :santa:
mrs_claus :mrs_claus:
mx_claus :mx_claus:
superhero :superhero:
superhero_man :superhero_man:
superhero_woman :superhero_woman:
supervillain :supervillain:
supervillain_man :supervillain_man:
supervillain_woman :supervillain_woman:
mage :mage:
mage_man :mage_man:
mage_woman :mage_woman:
fairy :fairy:
fairy_man :fairy_man:
fairy_woman :fairy_woman:
vampire :vampire:
vampire_man :vampire_man:
vampire_woman :vampire_woman:
merperson :merperson:
merman :merman:
mermaid :mermaid:
elf :elf:
elf_man :elf_man:
elf_woman :elf_woman:
genie :genie:
genie_man :genie_man:
genie_woman :genie_woman:
zombie :zombie:
zombie_man :zombie_man:
zombie_woman :zombie_woman:
troll :troll:

hoạt động

massage :massage:
massage_man :massage_man:
massage_woman :massage_woman:
haircut :haircut:
haircut_man :haircut_man:
haircut_woman :haircut_woman:
walking :walking:
walking_man :walking_man:
walking_woman :walking_woman:
standing_person :standing_person:
standing_man :standing_man:
standing_woman :standing_woman:
kneeling_person :kneeling_person:
kneeling_man :kneeling_man:
kneeling_woman :kneeling_woman:
person_with_probing_cane :person_with_probing_cane:
man_with_probing_cane :man_with_probing_cane:
woman_with_probing_cane :woman_with_probing_cane:
person_in_motorized_wheelchair :person_in_motorized_wheelchair:
man_in_motorized_wheelchair :man_in_motorized_wheelchair:
woman_in_motorized_wheelchair :woman_in_motorized_wheelchair:
person_in_manual_wheelchair :person_in_manual_wheelchair:
man_in_manual_wheelchair :man_in_manual_wheelchair:
woman_in_manual_wheelchair :woman_in_manual_wheelchair:
runner :runner:
running_man :running_man:
running_woman :running_woman:
dancer :dancer:
man_dancing :man_dancing:
business_suit_levitating :business_suit_levitating:
dancers :dancers:
dancing_men :dancing_men:
dancing_women :dancing_women:
sauna_person :sauna_person:
sauna_man :sauna_man:
sauna_woman :sauna_woman:
climbing :climbing:
climbing_man :climbing_man:
climbing_woman :climbing_woman:

vận động viên

person_fencing :person_fencing:
horse_racing :horse_racing:
skier :skier:
snowboarder :snowboarder:
golfing :golfing:
golfing_man :golfing_man:
golfing_woman :golfing_woman:
surfer :surfer:
surfing_man :surfing_man:
surfing_woman :surfing_woman:
rowboat :rowboat:
rowing_man :rowing_man:
rowing_woman :rowing_woman:
swimmer :swimmer:
swimming_man :swimming_man:
swimming_woman :swimming_woman:
bouncing_ball_person :bouncing_ball_person:
basketball_man :basketball_man:
basketball_woman :basketball_woman:
weight_lifting :weight_lifting:
weight_lifting_man :weight_lifting_man:
weight_lifting_woman :weight_lifting_woman:
bicyclist :bicyclist:
biking_man :biking_man:
biking_woman :biking_woman:
mountain_bicyclist :mountain_bicyclist:
mountain_biking_man :mountain_biking_man:
mountain_biking_woman :mountain_biking_woman:
cartwheeling :cartwheeling:
man_cartwheeling :man_cartwheeling:
woman_cartwheeling :woman_cartwheeling:
wrestling :wrestling:
men_wrestling :men_wrestling:
women_wrestling :women_wrestling:
water_polo :water_polo:
man_playing_water_polo :man_playing_water_polo:
woman_playing_water_polo :woman_playing_water_polo:
handball_person :handball_person:
man_playing_handball :man_playing_handball:
woman_playing_handball :woman_playing_handball:
juggling_person :juggling_person:
man_juggling :man_juggling:
woman_juggling :woman_juggling:

nghỉ ngơi

lotus_position :lotus_position:
lotus_position_man :lotus_position_man:
lotus_position_woman :lotus_position_woman:
bath :bath:
sleeping_bed :sleeping_bed:

gia đình

people_holding_hands :people_holding_hands:
two_women_holding_hands :two_women_holding_hands:
couple :couple:
two_men_holding_hands :two_men_holding_hands:
couplekiss :couplekiss:
couplekiss_man_woman :couplekiss_man_woman:
couplekiss_man_man :couplekiss_man_man:
couplekiss_woman_woman :couplekiss_woman_woman:
couple_with_heart :couple_with_heart:
couple_with_heart_woman_man :couple_with_heart_woman_man:
couple_with_heart_man_man :couple_with_heart_man_man:
couple_with_heart_woman_woman :couple_with_heart_woman_woman:

ký hiệu người

speaking_head :speaking_head:
bust_in_silhouette :bust_in_silhouette:
busts_in_silhouette :busts_in_silhouette:
people_hugging :people_hugging:
family :family:
footprints :footprints:

động vật & thiên nhiên

động vật có vú

monkey_face :monkey_face:
monkey :monkey:
gorilla :gorilla:
orangutan :orangutan:
dog :dog:
dog2 :dog2:
guide_dog :guide_dog:
service_dog :service_dog:
poodle :poodle:
wolf :wolf:
fox_face :fox_face:
raccoon :raccoon:
cat :cat:
cat2 :cat2:
black_cat :black_cat:
lion :lion:
tiger :tiger:
tiger2 :tiger2:
leopard :leopard:
horse :horse:
moose :moose:
donkey :donkey:
racehorse :racehorse:
unicorn :unicorn:
zebra :zebra:
deer :deer:
bison :bison:
cow :cow:
ox :ox:
water_buffalo :water_buffalo:
cow2 :cow2:
pig :pig:
pig2 :pig2:
boar :boar:
pig_nose :pig_nose:
ram :ram:
sheep :sheep:
goat :goat:
dromedary_camel :dromedary_camel:
camel :camel:
llama :llama:
giraffe :giraffe:
elephant :elephant:
mammoth :mammoth:
rhinoceros :rhinoceros:
hippopotamus :hippopotamus:
mouse :mouse:
mouse2 :mouse2:
rat :rat:
hamster :hamster:
rabbit :rabbit:
rabbit2 :rabbit2:
chipmunk :chipmunk:
beaver :beaver:
hedgehog :hedgehog:
bat :bat:
bear :bear:
polar_bear :polar_bear:
koala :koala:
panda_face :panda_face:
sloth :sloth:
otter :otter:
skunk :skunk:
kangaroo :kangaroo:
badger :badger:
feet :feet:

chim

turkey :turkey:
chicken :chicken:
rooster :rooster:
hatching_chick :hatching_chick:
baby_chick :baby_chick:
hatched_chick :hatched_chick:
bird :bird:
penguin :penguin:
dove :dove:
eagle :eagle:
duck :duck:
swan :swan:
owl :owl:
dodo :dodo:
feather :feather:
flamingo :flamingo:
peacock :peacock:
parrot :parrot:
wing :wing:
black_bird :black_bird:
goose :goose:

động vật lưỡng cư

frog :frog:

bò sát

crocodile :crocodile:
turtle :turtle:
lizard :lizard:
snake :snake:
dragon_face :dragon_face:
dragon :dragon:
sauropod :sauropod:
t-rex :t-rex:

sinh vật biển

whale :whale:
whale2 :whale2:
dolphin :dolphin:
seal :seal:
fish :fish:
tropical_fish :tropical_fish:
blowfish :blowfish:
shark :shark:
octopus :octopus:
shell :shell:
coral :coral:
jellyfish :jellyfish:
crab :crab:
lobster :lobster:
shrimp :shrimp:
squid :squid:
oyster :oyster:

côn trùng

snail :snail:
butterfly :butterfly:
bug :bug:
ant :ant:
bee :bee:
beetle :beetle:
lady_beetle :lady_beetle:
cricket :cricket:
cockroach :cockroach:
spider :spider:
spider_web :spider_web:
scorpion :scorpion:
mosquito :mosquito:
fly :fly:
worm :worm:
microbe :microbe:

hoa

bouquet :bouquet:
cherry_blossom :cherry_blossom:
white_flower :white_flower:
lotus :lotus:
rosette :rosette:
rose :rose:
wilted_flower :wilted_flower:
hibiscus :hibiscus:
sunflower :sunflower:
blossom :blossom:
tulip :tulip:
hyacinth :hyacinth:

cây khác

seedling :seedling:
potted_plant :potted_plant:
evergreen_tree :evergreen_tree:
deciduous_tree :deciduous_tree:
palm_tree :palm_tree:
cactus :cactus:
ear_of_rice :ear_of_rice:
herb :herb:
shamrock :shamrock:
four_leaf_clover :four_leaf_clover:
maple_leaf :maple_leaf:
fallen_leaf :fallen_leaf:
leaves :leaves:
empty_nest :empty_nest:
nest_with_eggs :nest_with_eggs:
mushroom :mushroom:

thức ăn & đồ uống

trái cây

grapes :grapes:
melon :melon:
watermelon :watermelon:
mandarin :mandarin:
lemon :lemon:
banana :banana:
pineapple :pineapple:
mango :mango:
apple :apple:
green_apple :green_apple:
pear :pear:
peach :peach:
cherries :cherries:
strawberry :strawberry:
blueberries :blueberries:
kiwi_fruit :kiwi_fruit:
tomato :tomato:
olive :olive:
coconut :coconut:

rau củ

avocado :avocado:
eggplant :eggplant:
potato :potato:
carrot :carrot:
corn :corn:
hot_pepper :hot_pepper:
bell_pepper :bell_pepper:
cucumber :cucumber:
leafy_green :leafy_green:
broccoli :broccoli:
garlic :garlic:
onion :onion:
peanuts :peanuts:
beans :beans:
chestnut :chestnut:
ginger_root :ginger_root:
pea_pod :pea_pod:

chế biến sẵn

bread :bread:
croissant :croissant:
baguette_bread :baguette_bread:
flatbread :flatbread:
pretzel :pretzel:
bagel :bagel:
pancakes :pancakes:
waffle :waffle:
cheese :cheese:
meat_on_bone :meat_on_bone:
poultry_leg :poultry_leg:
cut_of_meat :cut_of_meat:
bacon :bacon:
hamburger :hamburger:
fries :fries:
pizza :pizza:
hotdog :hotdog:
sandwich :sandwich:
taco :taco:
burrito :burrito:
tamale :tamale:
stuffed_flatbread :stuffed_flatbread:
falafel :falafel:
egg :egg:
fried_egg :fried_egg:
shallow_pan_of_food :shallow_pan_of_food:
stew :stew:
fondue :fondue:
bowl_with_spoon :bowl_with_spoon:
green_salad :green_salad:
popcorn :popcorn:
butter :butter:
salt :salt:
canned_food :canned_food:

châu Á

bento :bento:
rice_cracker :rice_cracker:
rice_ball :rice_ball:
rice :rice:
curry :curry:
ramen :ramen:
spaghetti :spaghetti:
sweet_potato :sweet_potato:
oden :oden:
sushi :sushi:
fried_shrimp :fried_shrimp:
fish_cake :fish_cake:
moon_cake :moon_cake:
dango :dango:
dumpling :dumpling:
fortune_cookie :fortune_cookie:
takeout_box :takeout_box:

đồ ngọt & kẹo

icecream :icecream:
shaved_ice :shaved_ice:
ice_cream :ice_cream:
doughnut :doughnut:
cookie :cookie:
birthday :birthday:
cake :cake:
cupcake :cupcake:
pie :pie:
chocolate_bar :chocolate_bar:
candy :candy:
lollipop :lollipop:
custard :custard:
honey_pot :honey_pot:

đồ uống

baby_bottle :baby_bottle:
milk_glass :milk_glass:
coffee :coffee:
teapot :teapot:
tea :tea:
sake :sake:
champagne :champagne:
wine_glass :wine_glass:
cocktail :cocktail:
tropical_drink :tropical_drink:
beer :beer:
beers :beers:
clinking_glasses :clinking_glasses:
tumbler_glass :tumbler_glass:
pouring_liquid :pouring_liquid:
cup_with_straw :cup_with_straw:
bubble_tea :bubble_tea:
beverage_box :beverage_box:
mate :mate:
ice_cube :ice_cube:

đồ dùng bếp

chopsticks :chopsticks:
plate_with_cutlery :plate_with_cutlery:
fork_and_knife :fork_and_knife:
spoon :spoon:
hocho :hocho:
jar :jar:
amphora :amphora:

du lịch & địa điểm

địa cầu & bản đồ

earth_africa :earth_africa:
earth_americas :earth_americas:
earth_asia :earth_asia:
globe_with_meridians :globe_with_meridians:
world_map :world_map:
japan :japan:
compass :compass:

vị trí địa lý

mountain_snow :mountain_snow:
mountain :mountain:
volcano :volcano:
mount_fuji :mount_fuji:
camping :camping:
beach_umbrella :beach_umbrella:
desert :desert:
desert_island :desert_island:
national_park :national_park:

tòa nhà

stadium :stadium:
classical_building :classical_building:
building_construction :building_construction:
bricks :bricks:
rock :rock:
wood :wood:
hut :hut:
houses :houses:
derelict_house :derelict_house:
house :house:
house_with_garden :house_with_garden:
office :office:
post_office :post_office:
european_post_office :european_post_office:
hospital :hospital:
bank :bank:
hotel :hotel:
love_hotel :love_hotel:
convenience_store :convenience_store:
school :school:
department_store :department_store:
factory :factory:
japanese_castle :japanese_castle:
european_castle :european_castle:
wedding :wedding:
tokyo_tower :tokyo_tower:
statue_of_liberty :statue_of_liberty:

công trình tôn giáo

church :church:
mosque :mosque:
hindu_temple :hindu_temple:
synagogue :synagogue:
shinto_shrine :shinto_shrine:
kaaba :kaaba:

địa điểm khác

fountain :fountain:
tent :tent:
foggy :foggy:
night_with_stars :night_with_stars:
cityscape :cityscape:
sunrise_over_mountains :sunrise_over_mountains:
sunrise :sunrise:
city_sunset :city_sunset:
city_sunrise :city_sunrise:
bridge_at_night :bridge_at_night:
hotsprings :hotsprings:
carousel_horse :carousel_horse:
playground_slide :playground_slide:
ferris_wheel :ferris_wheel:
roller_coaster :roller_coaster:
barber :barber:
circus_tent :circus_tent:

đường bộ

steam_locomotive :steam_locomotive:
railway_car :railway_car:
bullettrain_side :bullettrain_side:
bullettrain_front :bullettrain_front:
train2 :train2:
metro :metro:
light_rail :light_rail:
station :station:
tram :tram:
monorail :monorail:
mountain_railway :mountain_railway:
train :train:
bus :bus:
oncoming_bus :oncoming_bus:
trolleybus :trolleybus:
minibus :minibus:
ambulance :ambulance:
fire_engine :fire_engine:
police_car :police_car:
oncoming_police_car :oncoming_police_car:
taxi :taxi:
oncoming_taxi :oncoming_taxi:
car :car:
oncoming_automobile :oncoming_automobile:
blue_car :blue_car:
pickup_truck :pickup_truck:
truck :truck:
articulated_lorry :articulated_lorry:
tractor :tractor:
racing_car :racing_car:
motorcycle :motorcycle:
motor_scooter :motor_scooter:
manual_wheelchair :manual_wheelchair:
motorized_wheelchair :motorized_wheelchair:
auto_rickshaw :auto_rickshaw:
bike :bike:
kick_scooter :kick_scooter:
skateboard :skateboard:
roller_skate :roller_skate:
busstop :busstop:
motorway :motorway:
railway_track :railway_track:
oil_drum :oil_drum:
fuelpump :fuelpump:
wheel :wheel:
rotating_light :rotating_light:
traffic_light :traffic_light:
vertical_traffic_light :vertical_traffic_light:
stop_sign :stop_sign:
construction :construction:

đường thủy

anchor :anchor:
ring_buoy :ring_buoy:
boat :boat:
canoe :canoe:
speedboat :speedboat:
passenger_ship :passenger_ship:
ferry :ferry:
motor_boat :motor_boat:
ship :ship:

hàng không

airplane :airplane:
small_airplane :small_airplane:
flight_departure :flight_departure:
flight_arrival :flight_arrival:
parachute :parachute:
seat :seat:
helicopter :helicopter:
suspension_railway :suspension_railway:
mountain_cableway :mountain_cableway:
aerial_tramway :aerial_tramway:
artificial_satellite :artificial_satellite:
rocket :rocket:
flying_saucer :flying_saucer:

khách sạn

bellhop_bell :bellhop_bell:
luggage :luggage:

thời gian

hourglass :hourglass:
hourglass_flowing_sand :hourglass_flowing_sand:
watch :watch:
alarm_clock :alarm_clock:
stopwatch :stopwatch:
timer_clock :timer_clock:
mantelpiece_clock :mantelpiece_clock:
clock12 :clock12:
clock1230 :clock1230:
clock1 :clock1:
clock130 :clock130:
clock2 :clock2:
clock230 :clock230:
clock3 :clock3:
clock330 :clock330:
clock4 :clock4:
clock430 :clock430:
clock5 :clock5:
clock530 :clock530:
clock6 :clock6:
clock630 :clock630:
clock7 :clock7:
clock730 :clock730:
clock8 :clock8:
clock830 :clock830:
clock9 :clock9:
clock930 :clock930:
clock10 :clock10:
clock1030 :clock1030:
clock11 :clock11:
clock1130 :clock1130:

thời tiết

new_moon :new_moon:
waxing_crescent_moon :waxing_crescent_moon:
first_quarter_moon :first_quarter_moon:
moon :moon:
full_moon :full_moon:
waning_gibbous_moon :waning_gibbous_moon:
last_quarter_moon :last_quarter_moon:
waning_crescent_moon :waning_crescent_moon:
crescent_moon :crescent_moon:
new_moon_with_face :new_moon_with_face:
first_quarter_moon_with_face :first_quarter_moon_with_face:
last_quarter_moon_with_face :last_quarter_moon_with_face:
thermometer :thermometer:
sunny :sunny:
full_moon_with_face :full_moon_with_face:
sun_with_face :sun_with_face:
ringed_planet :ringed_planet:
star :star:
star2 :star2:
stars :stars:
milky_way :milky_way:
cloud :cloud:
partly_sunny :partly_sunny:
cloud_with_lightning_and_rain :cloud_with_lightning_and_rain:
sun_behind_small_cloud :sun_behind_small_cloud:
sun_behind_large_cloud :sun_behind_large_cloud:
sun_behind_rain_cloud :sun_behind_rain_cloud:
cloud_with_rain :cloud_with_rain:
cloud_with_snow :cloud_with_snow:
cloud_with_lightning :cloud_with_lightning:
tornado :tornado:
fog :fog:
wind_face :wind_face:
cyclone :cyclone:
rainbow :rainbow:
closed_umbrella :closed_umbrella:
open_umbrella :open_umbrella:
umbrella :umbrella:
parasol_on_ground :parasol_on_ground:
zap :zap:
snowflake :snowflake:
snowman_with_snow :snowman_with_snow:
snowman :snowman:
comet :comet:
fire :fire:
droplet :droplet:
ocean :ocean:

hoạt động

sự kiện

jack_o_lantern :jack_o_lantern:
christmas_tree :christmas_tree:
fireworks :fireworks:
sparkler :sparkler:
firecracker :firecracker:
sparkles :sparkles:
balloon :balloon:
tada :tada:
confetti_ball :confetti_ball:
tanabata_tree :tanabata_tree:
bamboo :bamboo:
dolls :dolls:
flags :flags:
wind_chime :wind_chime:
rice_scene :rice_scene:
red_envelope :red_envelope:
ribbon :ribbon:
gift :gift:
reminder_ribbon :reminder_ribbon:
tickets :tickets:
ticket :ticket:

giải thưởng & huy chương

medal_military :medal_military:
trophy :trophy:
medal_sports :medal_sports:
1st_place_medal :1st_place_medal:
2nd_place_medal :2nd_place_medal:
3rd_place_medal :3rd_place_medal:

thể thao

soccer :soccer:
baseball :baseball:
softball :softball:
basketball :basketball:
volleyball :volleyball:
football :football:
rugby_football :rugby_football:
tennis :tennis:
flying_disc :flying_disc:
bowling :bowling:
cricket_game :cricket_game:
field_hockey :field_hockey:
ice_hockey :ice_hockey:
lacrosse :lacrosse:
ping_pong :ping_pong:
badminton :badminton:
boxing_glove :boxing_glove:
martial_arts_uniform :martial_arts_uniform:
goal_net :goal_net:
golf :golf:
ice_skate :ice_skate:
fishing_pole_and_fish :fishing_pole_and_fish:
diving_mask :diving_mask:
running_shirt_with_sash :running_shirt_with_sash:
ski :ski:
sled :sled:
curling_stone :curling_stone:

trò chơi

dart :dart:
yo_yo :yo_yo:
kite :kite:
gun :gun:
8ball :8ball:
crystal_ball :crystal_ball:
magic_wand :magic_wand:
video_game :video_game:
joystick :joystick:
slot_machine :slot_machine:
game_die :game_die:
jigsaw :jigsaw:
teddy_bear :teddy_bear:
pinata :pinata:
mirror_ball :mirror_ball:
nesting_dolls :nesting_dolls:
spades :spades:
hearts :hearts:
diamonds :diamonds:
clubs :clubs:
chess_pawn :chess_pawn:
black_joker :black_joker:
mahjong :mahjong:
flower_playing_cards :flower_playing_cards:

nghệ thuật & thủ công

performing_arts :performing_arts:
framed_picture :framed_picture:
art :art:
thread :thread:
sewing_needle :sewing_needle:
yarn :yarn:
knot :knot:

đồ vật

quần áo

eyeglasses :eyeglasses:
dark_sunglasses :dark_sunglasses:
goggles :goggles:
lab_coat :lab_coat:
safety_vest :safety_vest:
necktie :necktie:
shirt :shirt:
jeans :jeans:
scarf :scarf:
gloves :gloves:
coat :coat:
socks :socks:
dress :dress:
kimono :kimono:
sari :sari:
one_piece_swimsuit :one_piece_swimsuit:
swim_brief :swim_brief:
shorts :shorts:
bikini :bikini:
womans_clothes :womans_clothes:
folding_hand_fan :folding_hand_fan:
purse :purse:
handbag :handbag:
pouch :pouch:
shopping :shopping:
school_satchel :school_satchel:
thong_sandal :thong_sandal:
mans_shoe :mans_shoe:
athletic_shoe :athletic_shoe:
hiking_boot :hiking_boot:
flat_shoe :flat_shoe:
high_heel :high_heel:
sandal :sandal:
ballet_shoes :ballet_shoes:
boot :boot:
hair_pick :hair_pick:
crown :crown:
womans_hat :womans_hat:
tophat :tophat:
mortar_board :mortar_board:
billed_cap :billed_cap:
military_helmet :military_helmet:
rescue_worker_helmet :rescue_worker_helmet:
prayer_beads :prayer_beads:
lipstick :lipstick:
ring :ring:
gem :gem:

âm thanh

mute :mute:
speaker :speaker:
sound :sound:
loud_sound :loud_sound:
loudspeaker :loudspeaker:
mega :mega:
postal_horn :postal_horn:
bell :bell:
no_bell :no_bell:

âm nhạc

musical_score :musical_score:
musical_note :musical_note:
notes :notes:
studio_microphone :studio_microphone:
level_slider :level_slider:
control_knobs :control_knobs:
microphone :microphone:
headphones :headphones:
radio :radio:

nhạc cụ

saxophone :saxophone:
trumpet :trumpet:
accordion :accordion:
guitar :guitar:
musical_keyboard :musical_keyboard:
violin :violin:
banjo :banjo:
drum :drum:
long_drum :long_drum:
maracas :maracas:
flute :flute:

điện thoại

iphone :iphone:
calling :calling:
phone :phone:
telephone_receiver :telephone_receiver:
pager :pager:
fax :fax:

máy tính

battery :battery:
low_battery :low_battery:
electric_plug :electric_plug:
computer :computer:
desktop_computer :desktop_computer:
printer :printer:
keyboard :keyboard:
computer_mouse :computer_mouse:
trackball :trackball:
minidisc :minidisc:
floppy_disk :floppy_disk:
cd :cd:
dvd :dvd:
abacus :abacus:

ánh sáng, phim & video

movie_camera :movie_camera:
film_strip :film_strip:
film_projector :film_projector:
clapper :clapper:
tv :tv:
camera :camera:
camera_flash :camera_flash:
video_camera :video_camera:
vhs :vhs:
mag :mag:
mag_right :mag_right:
candle :candle:
bulb :bulb:
flashlight :flashlight:
izakaya_lantern :izakaya_lantern:
diya_lamp :diya_lamp:

sách & giấy

notebook_with_decorative_cover :notebook_with_decorative_cover:
closed_book :closed_book:
book :book:
green_book :green_book:
blue_book :blue_book:
orange_book :orange_book:
books :books:
notebook :notebook:
ledger :ledger:
page_with_curl :page_with_curl:
scroll :scroll:
page_facing_up :page_facing_up:
newspaper :newspaper:
newspaper_roll :newspaper_roll:
bookmark_tabs :bookmark_tabs:
bookmark :bookmark:
label :label:

tiền

coin :coin:
moneybag :moneybag:
yen :yen:
dollar :dollar:
euro :euro:
pound :pound:
money_with_wings :money_with_wings:
credit_card :credit_card:
receipt :receipt:
chart :chart:

thư

envelope :envelope:
e-mail :e-mail:
incoming_envelope :incoming_envelope:
envelope_with_arrow :envelope_with_arrow:
outbox_tray :outbox_tray:
inbox_tray :inbox_tray:
package :package:
mailbox :mailbox:
mailbox_closed :mailbox_closed:
mailbox_with_mail :mailbox_with_mail:
mailbox_with_no_mail :mailbox_with_no_mail:
postbox :postbox:
ballot_box :ballot_box:

viết

pencil2 :pencil2:
black_nib :black_nib:
fountain_pen :fountain_pen:
pen :pen:
paintbrush :paintbrush:
crayon :crayon:
memo :memo:

văn phòng

briefcase :briefcase:
file_folder :file_folder:
open_file_folder :open_file_folder:
card_index_dividers :card_index_dividers:
date :date:
calendar :calendar:
spiral_notepad :spiral_notepad:
spiral_calendar :spiral_calendar:
card_index :card_index:
chart_with_upwards_trend :chart_with_upwards_trend:
chart_with_downwards_trend :chart_with_downwards_trend:
bar_chart :bar_chart:
clipboard :clipboard:
pushpin :pushpin:
round_pushpin :round_pushpin:
paperclip :paperclip:
paperclips :paperclips:
straight_ruler :straight_ruler:
triangular_ruler :triangular_ruler:
scissors :scissors:
card_file_box :card_file_box:
file_cabinet :file_cabinet:
wastebasket :wastebasket:

ổ khoá & chìa khóa

lock :lock:
unlock :unlock:
lock_with_ink_pen :lock_with_ink_pen:
closed_lock_with_key :closed_lock_with_key:
key :key:
old_key :old_key:

dụng cụ

hammer :hammer:
axe :axe:
pick :pick:
hammer_and_pick :hammer_and_pick:
hammer_and_wrench :hammer_and_wrench:
dagger :dagger:
crossed_swords :crossed_swords:
bomb :bomb:
boomerang :boomerang:
bow_and_arrow :bow_and_arrow:
shield :shield:
carpentry_saw :carpentry_saw:
wrench :wrench:
screwdriver :screwdriver:
nut_and_bolt :nut_and_bolt:
gear :gear:
clamp :clamp:
balance_scale :balance_scale:
probing_cane :probing_cane:
link :link:
chains :chains:
hook :hook:
toolbox :toolbox:
magnet :magnet:
ladder :ladder:

thiết bị khoa học

alembic :alembic:
test_tube :test_tube:
petri_dish :petri_dish:
dna :dna:
microscope :microscope:
telescope :telescope:
satellite :satellite:

y tế

syringe :syringe:
drop_of_blood :drop_of_blood:
pill :pill:
adhesive_bandage :adhesive_bandage:
crutch :crutch:
stethoscope :stethoscope:
x_ray :x_ray:

hộ gia đình

door :door:
elevator :elevator:
mirror :mirror:
window :window:
bed :bed:
couch_and_lamp :couch_and_lamp:
chair :chair:
toilet :toilet:
plunger :plunger:
shower :shower:
bathtub :bathtub:
mouse_trap :mouse_trap:
razor :razor:
lotion_bottle :lotion_bottle:
safety_pin :safety_pin:
broom :broom:
basket :basket:
roll_of_paper :roll_of_paper:
bucket :bucket:
soap :soap:
bubbles :bubbles:
toothbrush :toothbrush:
sponge :sponge:
fire_extinguisher :fire_extinguisher:
shopping_cart :shopping_cart:

đồ vật khác

smoking :smoking:
coffin :coffin:
headstone :headstone:
funeral_urn :funeral_urn:
nazar_amulet :nazar_amulet:
hamsa :hamsa:
moyai :moyai:
placard :placard:
identification_card :identification_card:

ký hiệu

biển báo giao thông

atm :atm:
put_litter_in_its_place :put_litter_in_its_place:
potable_water :potable_water:
wheelchair :wheelchair:
mens :mens:
womens :womens:
restroom :restroom:
baby_symbol :baby_symbol:
wc :wc:
passport_control :passport_control:
customs :customs:
baggage_claim :baggage_claim:
left_luggage :left_luggage:

biểu tượng cảnh báo

warning :warning:
children_crossing :children_crossing:
no_entry :no_entry:
no_entry_sign :no_entry_sign:
no_bicycles :no_bicycles:
no_smoking :no_smoking:
do_not_litter :do_not_litter:
non-potable_water :non-potable_water:
no_pedestrians :no_pedestrians:
no_mobile_phones :no_mobile_phones:
underage :underage:
radioactive :radioactive:
biohazard :biohazard:

mũi tên

arrow_up :arrow_up:
arrow_upper_right :arrow_upper_right:
arrow_right :arrow_right:
arrow_lower_right :arrow_lower_right:
arrow_down :arrow_down:
arrow_lower_left :arrow_lower_left:
arrow_left :arrow_left:
arrow_upper_left :arrow_upper_left:
arrow_up_down :arrow_up_down:
left_right_arrow :left_right_arrow:
leftwards_arrow_with_hook :leftwards_arrow_with_hook:
arrow_right_hook :arrow_right_hook:
arrow_heading_up :arrow_heading_up:
arrow_heading_down :arrow_heading_down:
arrows_clockwise :arrows_clockwise:
arrows_counterclockwise :arrows_counterclockwise:
back :back:
end :end:
on :on:
soon :soon:
top :top:

biểu tượng tôn giáo

place_of_worship :place_of_worship:
atom_symbol :atom_symbol:
om :om:
star_of_david :star_of_david:
wheel_of_dharma :wheel_of_dharma:
yin_yang :yin_yang:
latin_cross :latin_cross:
orthodox_cross :orthodox_cross:
star_and_crescent :star_and_crescent:
peace_symbol :peace_symbol:
menorah :menorah:
six_pointed_star :six_pointed_star:
khanda :khanda:

hoàng đạo

aries :aries:
taurus :taurus:
gemini :gemini:
cancer :cancer:
leo :leo:
virgo :virgo:
libra :libra:
scorpius :scorpius:
sagittarius :sagittarius:
capricorn :capricorn:
aquarius :aquarius:
pisces :pisces:
ophiuchus :ophiuchus:

ký hiệu âm thanh & video

twisted_rightwards_arrows :twisted_rightwards_arrows:
repeat :repeat:
repeat_one :repeat_one:
arrow_forward :arrow_forward:
fast_forward :fast_forward:
next_track_button :next_track_button:
play_or_pause_button :play_or_pause_button:
arrow_backward :arrow_backward:
rewind :rewind:
previous_track_button :previous_track_button:
arrow_up_small :arrow_up_small:
arrow_double_up :arrow_double_up:
arrow_down_small :arrow_down_small:
arrow_double_down :arrow_double_down:
pause_button :pause_button:
stop_button :stop_button:
record_button :record_button:
eject_button :eject_button:
cinema :cinema:
low_brightness :low_brightness:
high_brightness :high_brightness:
signal_strength :signal_strength:
wireless :wireless:
vibration_mode :vibration_mode:
mobile_phone_off :mobile_phone_off:

giới tính

female_sign :female_sign:
male_sign :male_sign:
transgender_symbol :transgender_symbol:

kí hiệu toán học

heavy_multiplication_x :heavy_multiplication_x:
heavy_plus_sign :heavy_plus_sign:
heavy_minus_sign :heavy_minus_sign:
heavy_division_sign :heavy_division_sign:
heavy_equals_sign :heavy_equals_sign:
infinity :infinity:

dấu câu

bangbang :bangbang:
interrobang :interrobang:
question :question:
grey_question :grey_question:
grey_exclamation :grey_exclamation:
exclamation :exclamation:
wavy_dash :wavy_dash:

tiền tệ

currency_exchange :currency_exchange:
heavy_dollar_sign :heavy_dollar_sign:

ký hiệu khác

medical_symbol :medical_symbol:
recycle :recycle:
fleur_de_lis :fleur_de_lis:
trident :trident:
name_badge :name_badge:
beginner :beginner:
o :o:
white_check_mark :white_check_mark:
ballot_box_with_check :ballot_box_with_check:
heavy_check_mark :heavy_check_mark:
x :x:
negative_squared_cross_mark :negative_squared_cross_mark:
curly_loop :curly_loop:
loop :loop:
part_alternation_mark :part_alternation_mark:
eight_spoked_asterisk :eight_spoked_asterisk:
eight_pointed_black_star :eight_pointed_black_star:
sparkle :sparkle:
copyright :copyright:
registered :registered:

phím số

hash :hash:
asterisk :asterisk:
zero :zero:
one :one:
two :two:
three :three:
four :four:
five :five:
six :six:
seven :seven:
eight :eight:
nine :nine:
keycap_ten :keycap_ten:

chữ & số

capital_abcd :capital_abcd:
abcd :abcd:
1234 :1234:
symbols :symbols:
abc :abc:
a :a:
ab :ab:
b :b:
cl :cl:
cool :cool:
free :free:
information_source :information_source:
id :id:
m :m:
new :new:
ng :ng:
o2 :o2:
ok :ok:
parking :parking:
sos :sos:
up :up:
vs :vs:
koko :koko:
sa :sa:
u6708 :u6708:
u6709 :u6709:
u6307 :u6307:
ideograph_advantage :ideograph_advantage:
u5272 :u5272:
u7121 :u7121:
u7981 :u7981:
accept :accept:
u7533 :u7533:
u5408 :u5408:
u7a7a :u7a7a:
congratulations :congratulations:
secret :secret:
u55b6 :u55b6:
u6e80 :u6e80:

hình dạng & màu sắc

red_circle :red_circle:
orange_circle :orange_circle:
yellow_circle :yellow_circle:
green_circle :green_circle:
large_blue_circle :large_blue_circle:
purple_circle :purple_circle:
brown_circle :brown_circle:
black_circle :black_circle:
white_circle :white_circle:
red_square :red_square:
orange_square :orange_square:
yellow_square :yellow_square:
green_square :green_square:
blue_square :blue_square:
purple_square :purple_square:
brown_square :brown_square:
black_large_square :black_large_square:
white_large_square :white_large_square:
black_medium_square :black_medium_square:
white_medium_square :white_medium_square:
black_medium_small_square :black_medium_small_square:
white_medium_small_square :white_medium_small_square:
black_small_square :black_small_square:
white_small_square :white_small_square:
large_orange_diamond :large_orange_diamond:
large_blue_diamond :large_blue_diamond:
small_orange_diamond :small_orange_diamond:
small_blue_diamond :small_blue_diamond:
small_red_triangle :small_red_triangle:
small_red_triangle_down :small_red_triangle_down:
diamond_shape_with_a_dot_inside :diamond_shape_with_a_dot_inside:
radio_button :radio_button:
white_square_button :white_square_button:
black_square_button :black_square_button:

cờ

cờ khác

checkered_flag :checkered_flag:
triangular_flag_on_post :triangular_flag_on_post:
crossed_flags :crossed_flags:
black_flag :black_flag:
white_flag :white_flag:
rainbow_flag :rainbow_flag:
transgender_flag :transgender_flag:
pirate_flag :pirate_flag:

quốc kỳ

ac :ac:
ad :ad:
ae :ae:
af :af:
ag :ag:
ai :ai:
al :al:
am :am:
ao :ao:
aq :aq:
ar :ar:
as :as:
at :at:
au :au:
aw :aw:
ax :ax:
az :az:
ba :ba:
bb :bb:
bd :bd:
be :be:
bf :bf:
bg :bg:
bh :bh:
bi :bi:
bj :bj:
bl :bl:
bm :bm:
bn :bn:
bo :bo:
bq :bq:
br :br:
bs :bs:
bt :bt:
bv :bv:
bw :bw:
by :by:
bz :bz:
ca :ca:
cc :cc:
cd :cd:
cf :cf:
cg :cg:
ch :ch:
ci :ci:
ck :ck:
cl :cl:
cm :cm:
cn :cn:
co :co:
cp :cp:
cr :cr:
cu :cu:
cv :cv:
cw :cw:
cx :cx:
cy :cy:
cz :cz:
de :de:
dg :dg:
dj :dj:
dk :dk:
dm :dm:
do :do:
dz :dz:
ea :ea:
ec :ec:
ee :ee:
eg :eg:
eh :eh:
er :er:
es :es:
et :et:
eu :eu:
fi :fi:
fj :fj:
fk :fk:
fm :fm:
fo :fo:
fr :fr:
ga :ga:
gb :gb:
gd :gd:
ge :ge:
gf :gf:
gg :gg:
gh :gh:
gi :gi:
gl :gl:
gm :gm:
gn :gn:
gp :gp:
gq :gq:
gr :gr:
gs :gs:
gt :gt:
gu :gu:
gw :gw:
gy :gy:
hk :hk:
hm :hm:
hn :hn:
hr :hr:
ht :ht:
hu :hu:
ic :ic:
id :id:
ie :ie:
il :il:
im :im:
in :in:
io :io:
iq :iq:
ir :ir:
is :is:
it :it:
je :je:
jm :jm:
jo :jo:
jp :jp:
ke :ke:
kg :kg:
kh :kh:
ki :ki:
km :km:
kn :kn:
kp :kp:
kr :kr:
kw :kw:
ky :ky:
kz :kz:
la :la:
lb :lb:
lc :lc:
li :li:
lk :lk:
lr :lr:
ls :ls:
lt :lt:
lu :lu:
lv :lv:
ly :ly:
ma :ma:
mc :mc:
md :md:
me :me:
mf :mf:
mg :mg:
mh :mh:
mk :mk:
ml :ml:
mm :mm:
mn :mn:
mo :mo:
mp :mp:
mq :mq:
mr :mr:
ms :ms:
mt :mt:
mu :mu:
mv :mv:
mw :mw:
mx :mx:
my :my:
mz :mz:
na :na:
nc :nc:
ne :ne:
nf :nf:
ng :ng:
ni :ni:
nl :nl:
no :no:
np :np:
nr :nr:
nu :nu:
nz :nz:
om :om:
pa :pa:
pe :pe:
pf :pf:
pg :pg:
ph :ph:
pk :pk:
pl :pl:
pm :pm:
pn :pn:
pr :pr:
ps :ps:
pt :pt:
pw :pw:
py :py:
qa :qa:
re :re:
ro :ro:
rs :rs:
ru :ru:
rw :rw:
sa :sa:
sb :sb:
sc :sc:
sd :sd:
se :se:
sg :sg:
sh :sh:
si :si:
sj :sj:
sk :sk:
sl :sl:
sm :sm:
sn :sn:
so :so:
sr :sr:
ss :ss:
st :st:
sv :sv:
sx :sx:
sy :sy:
sz :sz:
ta :ta:
tc :tc:
td :td:
tf :tf:
tg :tg:
th :th:
tj :tj:
tk :tk:
tl :tl:
tm :tm:
tn :tn:
to :to:
tr :tr:
tt :tt:
tv :tv:
tw :tw:
tz :tz:
ua :ua:
ug :ug:
um :um:
us :us:
uy :uy:
uz :uz:
va :va:
vc :vc:
ve :ve:
vg :vg:
vi :vi:
vn :vn:
vu :vu:
wf :wf:
ws :ws:
xk :xk:
ye :ye:
yt :yt:
za :za:
zm :zm:
zw :zw:
england :england:
scotland :scotland:
wales :wales: