Getting Started

Events

Users

Metrics

Organisation

AI Agents

Reference

API Documentation

Integrate LogsNinja into your app in minutes. Send events from any language using a simple HTTP POST.

Quick start

Get the starter prompt

Authentication

All requests must include an API token in the Authorization header.

HTTP
Authorization: Bearer YOUR_API_TOKEN

You can create API tokens from your project settings. Go to tokens

If you're an AI agent rather than a human, you can get a token without one being copied and pasted for you. See device authorization

Rate limits & quotas

Limits depend on your plan. The rate limit is per organisation and shared across all API tokens; creating additional tokens does not increase it.

The organisation-wide rate limit applies to every endpoint authenticated with an API token, including POST /v1/events, PUT /v1/users, POST /v1/ping, PUT /v1/metrics, /v1/org/charts, /v1/org/widgets, and delete operations. Each call consumes one request from the same shared limit.

/v1/device/authorize (no token yet at that point) is capped at 10 requests per hour per IP address, and /v1/device/token at 60 requests per 5 minutes per IP address.

Plan Rate limit Events / month Images / month Images per event
Free 60 req/min 3,000 – Not included
Starter 300 req/min 100,000 20,000 1 per event · 1 MB max · resized to 1024px · request body up to 1 MB
Plus 1,200 req/min 500,000 100,000 4 per event · 1 MB max · resized to 1024px · request body up to 8 MB
Enterprise Custom Custom Custom Custom

When the rate limit is exceeded, the API returns 429 with Too many requests. Event count and image count each have their own monthly quota; when either is reached the API returns 429 with Monthly event or hosted image quota exceeded. Upgrade your plan to continue.

Quota response headers

Every successful POST /v1/events response includes these headers:

HTTP
X-Quota-Remaining: 2497
X-Image-Quota-Remaining: 18320
X-Plan: starter
  • X-Quota-Remaining – events remaining in the current calendar month. -1 means unlimited (Enterprise).
  • X-Image-Quota-Remaining – images remaining in the current calendar month. -1 means unlimited (Enterprise).
  • X-Plan – the current plan of the organisation (free, starter, plus, enterprise).

See all plans and pricing

Metadata format

The metadata field on events and users follows the same rules:

  • Keys: lowercase letters, digits, hyphens and underscores only (^[a-z0-9_-]+$)
  • Values: string, number, or boolean
  • Maximum 20 keys per object
  • Keys: 100 characters max
  • String values: 255 characters max
JSON
{
  "plan": "pro",
  "amount": 49,
  "score": 4.8,
  "is-trial": false
}

Starter prompt

Paste into Claude Code, Cursor, Codex, or any AI coding agent to get started.

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/en/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/en/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.

Send an event

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

Headers

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

Request body

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

Examples

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,
    },
)

Event fields

Field Type Required Description
project string ✓ The project ID. Find it in your project settings.
stream string ✓ The stream this event belongs to. Created automatically on first use.
title string ✓ Short title of the event. 100 characters max.
content string Additional details, 500 characters max. Supports Markdown: bold, italic, code, lists, and links.
emoji string Emoji to visually identify the event. Defaults to 🔔 if omitted. Accepted formats: emoji character ("💳"), shortcode (":credit_card:"), or hex code ("1F4B3"). Also used as the push notification image. Browse available emojis.
metadata object Key/value metadata. See metadata format rules above.
user string Your app user ID (the same id you pass to PUT /v1/users). The user does not need to exist yet: events are linked automatically when the user is created. Sending a real-time event with a user field also counts as presence: the user is considered online for 15 minutes after their last linked event or ping. Backdated events sent with timestamp do not affect online presence.
images string[] Images for this event. Requires a paid plan. Either an array of public HTTPS image URLs to fetch and store (duplicates within one event are deduplicated), or send the files themselves as multipart/form-data. Images are processed asynchronously and kept for 30 days. See Uploading images for the full contract, size limits, accepted formats, URL requirements and how to read images_status.
notify boolean Send a push notification to subscribed devices. Default: false. Cannot be true when timestamp is set. When notify is present, the response also includes notification_queued; false means the event was saved but the mobile notification queue was unavailable after retry.
timestamp integer Unix timestamp (seconds) to backdate the event. Must be in the past. Cannot be combined with notify: true. Backdated events do not affect online presence.
before string The event will be placed before the one whose ID is passed in this property, in an event chain.
after string The event will be placed after the one whose ID is passed in this property, in an event chain.

Uploading images

There are two ways to attach images to an event, both on paid plans and both processed the same way, asynchronously: pass an array of public HTTPS URLs in the JSON images field for LogsNinja to fetch and store, or send the files themselves in the same POST /v1/events request as multipart/form-data.

Binary upload (multipart/form-data)

The request has one event part and one or more file parts named image:

Part Description
event A string containing the exact JSON body you would otherwise send as application/json: project, stream, title and any other field, with metadata as a real JSON object (not metadata[key] form fields). It may still include an images array of URLs, stored alongside the uploaded files.
image One part per file, each sent as a file (with a filename) and carrying a Content-Type of image/jpeg, image/png or image/webp. Parts with any other name, and non-file image parts, are ignored.
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,
});

Synchronous errors

These are returned immediately in the POST response, before the event is created:

Code Cause
400The event part is missing or is not a JSON object.
403Your plan does not include images on events.
411The request has no Content-Length header.
413A file is over your plan's per-image size limit, or the whole request body is over your plan's maximum size.
415An image part's Content-Type does not start with image/. A wrong image type (e.g. image/gif) passes this check but fails later as bad_format.
422More images than your plan allows per event.

See Rate limits & quotas for the per-plan image count, per-image size and maximum request body size.

Fetching from a URL

When you pass URLs instead of files, each one must meet all of these or the image is marked failed:

  • HTTPS only, on port 443. No IP-literal hosts, no localhost, .local or .internal. The URL must be at most 2048 characters.
  • The response must carry Content-Type: image/jpeg, image/png or image/webp. A 200 that returns text/html (an error page, a login wall) is a permanent failure – it is never retried.
  • The fetch times out after 15 seconds and follows at most 3 redirects.
  • On 403, 404, 408, 425, 429, 500, 502, 503 or 504, the fetch is retried for about a minute before the image is marked failed. Every other status fails permanently on the first try.

Formats and processing

  • Accepted formats: JPEG, PNG and WebP, detected from the file's magic bytes – not its extension or declared type.
  • Each image is resized to fit your plan's maximum dimension and stored as both JPEG and WebP. Images are kept for 30 days.
  • A backdated event (timestamp) whose date is already outside the 30-day window skips image processing entirely; its images_status is expired.

Reading the result

The POST response includes images_status, but at that point it is always pending (or none / expired) because processing has not run yet. There is no webhook: read the event again later – with the MCP get_event tool or in the Studio event feed – to see the outcome.

images_status Meaning
noneThe event has no images.
pendingQueued or in progress.
readyEvery image was processed.
partialSome images are ready, some failed.
failedEvery image failed.
expiredThe event predates the 30-day image window; nothing was uploaded.

Each image also carries an error string and an error_code (too_large, bad_format or unreachable) when it failed.

Recommendation: for an event you emit right after generating an image (a render, a screenshot, an export), upload the file rather than a URL. A URL that is not yet reachable – or already deleted – when LogsNinja fetches it fails the image, and nothing tells you when that happens.

Event chains

The before and after fields link events into a chain. The event detail panel shows adjacent events and lets you view the full sequence.

Only references to events in the same project are resolved, and only when their timestamps are logically consistent. The after target (predecessor) must have an earlier timestamp, and the before target (successor) must have a later one.

Delete an event

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

Permanently deletes an event.

Create / update a user

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

Creates or updates an app user. Calling with the same id replaces the record.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123",
  "country_code": "FR",
  "display_as": "[email protected]",
  "metadata": { "plan": "pro", "mrr": 49 }
}
Field Type Required Description
project string ✓ The project ID.
id string ✓ Your own stable identifier for this user (e.g. your database ID). This is the value you use in the user field when sending events.
country_code string ISO 3166-1 alpha-2 country code (e.g. FR, US). See Geolocation for how to obtain it.
display_as string Name displayed on the site and mobile app for this user. If not set or null, the user's id is used instead.
metadata object Key/value metadata. See metadata format rules above.

Examples

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'},
    },
)

Geolocation

LogsNinja never resolves a user's country from their IP address – country_code is entirely caller-supplied.

  • If your backend is proxied through Cloudflare (Workers/Pages, or a DNS record with the orange cloud on), read the CF-IPCountry request header directly – it's already set on every incoming request.
  • The same idea applies behind most other CDNs/edge networks (e.g. Akamai, Bunny, Fastly, Amazon CloudFront) – they typically inject their own equivalent geo header. Check that provider's documentation for the exact header name and format.
  • Otherwise, use a GeoIP library or service against the request's IP address (e.g. MaxMind GeoLite2, ipinfo.io, ip-api.com).

Pass the resulting code as country_code – it powers the country breakdown chart and world map widget.

Delete a user

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

Deletes an app user. Their events remain but are no longer linked to the user.

Signal user presence

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

Records that a user is currently online, without creating an event. A user is considered online if they have sent a ping or had a linked event in the last 15 minutes. If the user does not exist yet, the ping is silently ignored – create the user first via PUT /v1/users.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123"
}
Field Type Required Description
project string ✓ The project ID.
id string ✓ Your app user ID (the same id you passed to PUT /v1/users).

Create / update a metric

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

Creates or updates a metric tile. Calling with the same id replaces the value. For numeric types, you can also apply a delta instead of setting an absolute value.

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"
}
Field Type Required Description
project string ✓ The project ID.
id string ✓ Stable identifier for this metric (e.g. mrr, active-users).
title string ✓ Display label for the metric tile.
value string | number | object ✓ The metric value. For numeric types, pass {"diff": N} to add or subtract N atomically (e.g. {"diff": -1}). Not available for value_type text.
value_type string ✓ One of: number, text, currency, percent.
currency string ISO 4217 currency code (e.g. EUR, USD). Required when value_type is currency.
emoji string Emoji shown on the metric tile. Accepted formats: emoji character ("💰"), shortcode (":money-bag:"), or hex code ("1F4B0"). When omitted, ℹ️ is displayed by default without being stored on the metric. Browse available emojis.

Examples

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',
    },
)

Delete a metric

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

Deletes a metric tile from the dashboard.

Projects

List projects

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

Returns projects in the organisation, paginated. A project-scoped token only receives its linked project. Accepts page (default 1) and limit (default 50, max 200) query params. Response includes page, limit, total and has_more.

Create a project

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

Creating a project requires an organization-wide token. A project-scoped token cannot create projects.

Field Type Required Description
name string ✓ The project name.

Tokens

List tokens

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

Returns API tokens in the organisation, paginated. A project-scoped token only receives tokens linked to the same project. Accepts page (default 1) and limit (default 50, max 200) query params. Response includes page, limit, total, has_more and each token's can_manage_tokens capability. Token values are never returned after creation.

Create a token

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

The calling credential must have can_manage_tokens=true. The token value is returned once and cannot be retrieved again. A project-scoped caller can only create another token for its own project; omitting project_id does not grant organization-wide access.

Field Type Required Description
name string ✓ The token name.
project_id string Restricts the token to a single project. If omitted, the token has access to all projects in the organisation.
can_manage_tokens boolean Allows this token to create and delegate other tokens within its own organization or project boundary. Defaults to false.

Device authorization

Lets a CLI tool or AI agent get an API token without a human copying and pasting one. The tool requests a short code and shows it to a human; a human with an existing LogsNinja account opens a link and approves the request from their own browser session; the tool then receives the token automatically. This never creates an account or skips sign-up – only an already-signed-in human can approve a request.

Start the flow

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

No authentication required. Returns a device_code, a short user_code to show the human, and a verification_uri to open in a browser.

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
}

Show the user_code (or the verification_uri_complete link) to the human and ask them to open it and approve the request.

Poll for the token

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

No authentication required. Poll with the device_code at the interval given above until the status is no longer pending.

Field Type Required Description
device_code string ✓ The device_code returned by the authorize call.

Response is {"status": "pending"}, {"status": "denied"}, {"status": "expired"}, or, once approved, {"status": "approved", "token": "..."}. The token is only ever returned once – store it immediately.

MCP server

Lets an AI agent (Claude, etc.) use LogsNinja directly from a conversation instead of writing HTTP calls.

MCP https://logsninja.com/mcp

Point your MCP client at this URL, authenticated with the same API token as the rest of this API: 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

Claude Desktop's config file no longer accepts a remote server's url and headers directly – only stdio servers (command/args). Bridge to this HTTP endpoint with mcp-remote:

JSON
{
  "mcpServers": {
    "logsninja": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://logsninja.com/mcp",
        "--header",
        "Authorization: Bearer YOUR_API_TOKEN"
      ]
    }
  }
}
Platform Config file location
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

Cursor

Cursor supports a remote server's url and headers directly, no bridge needed:

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

Config file: ~/.cursor/mcp.json (global) or .cursor/mcp.json (project)

Codex CLI and the ChatGPT app

Both share the same ~/.codex/config.toml – the ChatGPT app's Settings → Plugins → MCPs → Add Server form writes to it too. Edit it directly to use bearer_token_env_var, which reads the token from an environment variable instead of storing it in plain text:

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

Set the environment variable in your shell profile before launching Codex or the ChatGPT app, e.g. export LOGSNINJA_API_TOKEN=YOUR_API_TOKEN.

Config file: ~/.codex/config.toml

Tools

Tool Description
list_projects, create_project List projects in the caller's scope. Creating a project requires an organization-wide token.
list_charts, create_chart, update_chart, delete_chart Same fields and validation rules as the dashboard's chart editor.
list_widgets, create_widget, update_widget, reorder_widgets, delete_widget Same masonry layout rules as the widgets REST endpoints.
get_data_inventory Known stream names, event titles, and metadata keys – useful before building a chart.
preview_chart_data Compute a chart's data without creating it.
search_emojis Search emojis by name, shortcode, or keyword – useful for picking one for an event.
get_documentation The full API documentation as Markdown, in your choice of language.
list_events, get_event The last 100 events (optionally by stream), or one event's detail with its chronological neighbors. No pagination.
list_users, get_user The last 100 users, or one user's detail by id. No pagination or search.
list_streams, list_metrics Streams and custom metrics defined in a project.
create_event, delete_event, create_or_update_user, delete_user, create_or_update_metric, delete_metric Same as the ingestion endpoints – meant for creating and cleaning up test data, not for sending real production events on a user's behalf.

Most tools take a project_id argument, required unless the token is scoped to a single project – same rule as the REST endpoints below.

Charts

Create and manage the same charts you'd build by hand on your dashboard – every option below and every validation rule is identical, whether you use the dashboard's chart editor or the API. This is chart configuration only: it defines what a chart shows, not its computed values – there's no endpoint to fetch a chart's data points through this API.

Chart types

A line chart (line) plots one value per period as a connected line – best for watching a trend over time. A pie chart (pie) shows a single snapshot split into slices – best for a share or breakdown at a glance. A bar chart (bar) shows one bar per period; as soon as you add a breakdown (see "Group by" below), it's automatically drawn as stacked segments instead of one bar – there's no separate "stacked bar" type to pick. A funnel chart (funnel) is a different kind of question entirely: instead of a metric over time, it shows how many of the same users made it through an ordered sequence of steps.

Time range and time interval

Choose how far back the chart looks: the last 7 days (7d), the last 30 days (30d), or the last 90 days (90d). You can also size your own rolling window in hours, days, or months (duration, with periodDurationValue and periodDurationUnit, e.g. "the last 45 days"), or set a fixed start date that always runs up to today (custom, with periodDateFrom) – there's no field for a fixed end date, it always runs up to today.

The time interval (granularity) controls how that window is split into buckets: by hour, day, week, or month (hour, day, week, month). It doesn't apply to funnel charts: they still use the time range above to filter events, but show one bar per step instead of a series of buckets over time.

A few combinations only have 90 days of history available, regardless of how far back you set the window: a funnel, a pie chart with a breakdown, a breakdown by country/user/metadata, more than one breakdown at once, any calculation other than a plain count, or filtering by metadata. A plain count with no breakdown, or a breakdown by stream or event title only, can reach back further.

Filtering which events count

By default a chart includes every event (all). You can narrow it down to a single stream (stream, e.g. only "payments"), a single event title (title, e.g. only "Order placed"), or events matching a specific metadata value (metadata, e.g. only events where "plan" equals "pro").

Goal Configuration
Only count events on the "payments" stream event_source_type: "stream", event_source_value: "payments"
Only count "Order placed" events, whatever stream they're on event_source_type: "title", event_source_value: "Order placed"
Only count events where the "plan" metadata equals "pro" event_source_type: "metadata", event_source_value: "plan=pro"

Aggregation

This decides how the matching events in each time bucket turn into the one number that gets plotted: a simple count of events (count), a count of unique users (count_distinct), or a calculation over a numeric metadata value on your events – its total (sum), average (avg), minimum (min), maximum (max), or median (median). For any calculation other than a plain count, you also pick which metadata key holds that number via aggregation_field; events missing it, or where it isn't numeric, are skipped.

Goal Configuration
Events per day aggregation: "count"
Unique users active per day aggregation: "count_distinct"
Total revenue per day (an "amount" metadata key on your events) aggregation: "sum", aggregation_field: "amount"
Average order value per day (an "amount" metadata key on your events) aggregation: "avg", aggregation_field: "amount"
Smallest order per day (an "amount" metadata key on your events) aggregation: "min", aggregation_field: "amount"
Largest order per day (an "amount" metadata key on your events) aggregation: "max", aggregation_field: "amount"
Median session duration per day (a "duration_seconds" metadata key on your events) aggregation: "median", aggregation_field: "duration_seconds"

Group by

By default a chart shows a single aggregate value per period. Grouping (group_by) splits it into several series or segments instead – one per distinct value of whatever you group by – drawn as separate lines, stacked segments, or pie slices depending on the chart type.

You can group by stream (stream), event title (title), country (country), or user (user) with nothing else to configure, or by a metadata key of your choosing (metadata, with aggregation_field holding the key to split by).

Goal Configuration
Events per day, one line per stream type: line, aggregation: count, group_by: ["stream"]
Which event titles are most common each day type: bar, aggregation: count, group_by: ["title"]
Signups per day, split by country type: bar, aggregation: count_distinct, group_by: ["country"]
Compare activity across a specific handful of users (your own team, a few VIP accounts) – one series per matching user, so this only reads well for a small, deliberately narrow set type: line, aggregation: count, group_by: ["user"]
Event volume per day, one segment per plan (a "plan" metadata key on your events, e.g. free/pro/enterprise) type: bar, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"
Share of events per plan, as a pie type: pie, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"

One constraint worth knowing: the metadata key you group by and the metadata key you aggregate are the same setting (aggregation_field), since a chart only has one of it. So "total order amount per day, split by plan" isn't possible as a single chart – you'd need to either total the amount with no breakdown, or count orders broken down by plan, not both on the same chart.

Funnel charts

A funnel (funnel) asks a different question entirely: not "how many events" but "how many of the same users made it from step 1, to step 2, to step 3". You give it an ordered list of at least two event titles via funnel_steps; the chart shows one bar per step, each counting only the users who also completed every earlier step in order. The time range above still applies, but granularity, aggregation, and grouping don't.

Goal Configuration
Signup conversion: how many viewed pricing, started checkout, then completed it type: "funnel", funnel_steps: ["Pricing viewed", "Checkout started", "Subscription created"]

Display options

You can show or hide the legend (show_legend), and choose your own colors (colors, an array of hex strings applied in order) for each series or segment instead of the default palette. You can also switch to a running total (cumulative) instead of a per-period value – only meaningful for a line or bar chart adding up a count or a sum, since a running total of an average, a distinct-user count, or a pie/funnel doesn't mean anything.

List charts

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

Accepts a project_id query param, required unless the token is already scoped to a single project.

Create a chart

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

Update a chart

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

Only the fields you send are changed.

Delete a chart

DELETE https://api.logsninja.com/v1/org/charts/{id}
Field Type Required Description
project_id string ✓ Required unless the token is scoped to a single project.
name string ✓ Chart name.
type string ✓ line, bar, pie, funnel. There's no separate "stacked bar" type: a bar chart with group_by set is still type bar, automatically rendered as stacked segments.
period string ✓ 7d, 30d, 90d, duration, custom
period_date_from string Required when period is custom, format YYYY-MM-DD.
period_duration_value / period_duration_unit integer / string Required when period is duration. Unit is hour, day, or month.
granularity string ✓ hour, day, week, month
aggregation string ✓ count, count_distinct, sum, avg, min, max, median
aggregation_field string Metadata field name, required for sum/avg/min/max/median and when group_by includes metadata.
group_by array Any of stream, title, country, user, metadata.
event_source_type string ✓ all, stream, title, metadata
event_source_value string Required unless event_source_type is all.
funnel_steps array At least two ordered step names, required when type is funnel.
show_legend / cumulative boolean cumulative is only honored for line/bar charts with count or sum aggregation.
colors array Series colors as hex strings.

Historical data beyond the retention window isn't available for combinations that scan raw events (funnel, pie with a group-by, group-by country/user/metadata, or any non-count aggregation).

Widgets

Manage which tiles appear on the dashboard and how they're arranged – this is layout configuration only, not the data shown inside a tile.

The dashboard is a masonry layout, not a rigid grid. "Small" widgets (metric, online_users) are meant to take up a third or half of the row (width 1 or 2) and render at exactly half the visual height of "large" widgets (chart, world_map, events_7d, top_countries), which are meant to take up half the row or the full row (width 2 or 3). Keep this in mind when arranging a dashboard via the API.

List widgets

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

Accepts a project_id query param, required unless the token is already scoped to a single project.

Add a widget

POST https://api.logsninja.com/v1/org/widgets
Field Type Required Description
project_id string ✓ Required unless the token is scoped to a single project.
type string ✓ metric, chart, events_7d, world_map, top_countries, online_users. Only one of each native type (events_7d/world_map/top_countries/online_users) may exist per dashboard.
metric_id string Required when type is metric. Must be an existing metric id.
chart_id string Required when type is chart. Must be a chart on the same project.
width integer 1 (1/3), 2 (1/2, default), or 3 (full row).

Resize or move a widget

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

Send width and/or position (0-based index among the project's widgets). Setting a position moves the widget there and shifts every other widget after it down by one – it doesn't swap two widgets. Only the fields you send are changed.

Reorder the whole dashboard

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

Send order as the full, ordered list of every widget id on the project (a partial list is rejected), and optionally widths as a map of id to width.

Remove a widget

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

Response codes

Endpoint Success Body
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 }

Error codes: 400 validation error, 401 missing or invalid token, 403 token restricted to another project, 404 project not found.

Emoji Reference

1837 emojis supported

smileys & emotion

smiling

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:

affectionate

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:

with tongue

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:

with hands

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:

neutral / skeptical

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:

sleepy

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

unwell

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:

with hats

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

with glasses

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

concerned

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:

negative

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

costumed & creatures

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

cat faces

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:

monkey faces

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

hearts

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:

emotions

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:

people & body

fingers open

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:

hand signs

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:

finger pointing

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:

fingers closed

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

hands

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

hand props

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

body parts

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:

people

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:

gestures

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:

roles & careers

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:

fantasy

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:

activities

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:

athletics

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:

resting

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

family

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:

people symbols

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

animals & nature

mammals

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:

birds

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:

amphibians

frog :frog:

reptiles

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

marine life

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:

bugs

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:

flowers

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:

other plants

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:

food & drink

fruit

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:

vegetables

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:

cooked / prepared

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:

asian

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:

sweets & candy

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:

drink

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:

dishware

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

travel & places

globes & maps

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:

geographic locations

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:

buildings

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:

religious buildings

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

other places

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:

ground transportation

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:

water transportation

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

air transportation

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:

hotel

bellhop_bell :bellhop_bell:
luggage :luggage:

time

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:

weather

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:

activities

events & holidays

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:

award medals

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:

sports

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:

games & hobbies

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:

arts & crafts

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

objects

clothing

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:

sound

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

music

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:

musical instruments

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:

phone

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

computer

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:

light, film & 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:

books & paper

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:

money

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:

mail

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:

writing

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

office supplies

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:

lock & keys

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:

tools

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:

science equipment

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

medical

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

household items

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:

other objects

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

symbols

transport signs

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:

warning symbols

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:

arrows

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:

religious symbols

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:

zodiac signs

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:

audio & video symbols

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:

gender signs

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

math symbols

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:

punctuation

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

currencies

currency_exchange :currency_exchange:
heavy_dollar_sign :heavy_dollar_sign:

other symbols

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:

keypad characters

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:

alphanumeric symbols

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:

shapes & colors

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:

flags

other flags

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:

country flags

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: