Emoji API

The Emoji API provides image and metadata for all Unicode emojis. The data is updated periodically to fetch new emojis.



Returns a list of emojis according to input parameters. Returns at most 30 results. To access more than 30 results, use the offset parameter to offset results in multiple API calls.


At least one of the following parameters other than offset is required.

name (optional) - descriptive name of emoji.

code (optional) - Unicode character code for the emoji.

group (optional) - main category the emoji belongs to. Possible values are:

  • smileys_emotion
  • people_body
  • component
  • animals_nature
  • food_drink
  • travel_places
  • activities
  • objects
  • symbols
  • flags

subgroup (optional) - sub-category the emoji belongs to. Possible values are:

Show subgroups.

offset (optional) - number of results to offset for pagination.


X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!


Sample Response

    "code": "U+1F642",
    "character": "🙂",
    "image": "https://api-ninjas-data.s3.us-west-2.amazonaws.com/emojis/U%2B1F642.png",
    "name": "slightly smiling face",
    "group": "Smileys & Emotion",
    "subgroup": "face-smiling"

import requests
name = 'slightly smiling face'
api_url = 'https://api.api-ninjas.com/v1/emoji?name={}'.format(name)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print("Error:", response.status_code, response.text)
var name = 'slightly smiling face'
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/emoji?name=' + name,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
const request = require('request');
var name = 'slightly smiling face';
  url: 'https://api.api-ninjas.com/v1/emoji?name=' + name,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/emoji?name=slightly smiling face");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
let name = "slightly smiling face".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: "https://api.api-ninjas.com/v1/emoji?name="+name!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.