Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abourtnik/emojis-world

Open Source REST API for emojis
https://github.com/abourtnik/emojis-world

api emoji emojis expressjs jwt mysql nginx nodejs pm2 sequelize typesense

Last synced: about 2 months ago
JSON representation

Open Source REST API for emojis

Awesome Lists containing this project

README

        



Emoji World logo



Emojis World REST API


Open Source REST API for emojis - 3677 Emojis Availaible


Categories and Versions
Endpoints
HTTP Response Codes
Technical detail and API Rate Limiting
Contributing
License
Credits
Support Project

## Categories and Versions

| ID | Name | Emojis Count
| ------------- | ----- |--------------|
| 1 | Smileys & People | 168 |
| 2 | People & Body | 2167 |
| 3 | Component | 10 |
| 4 | Animals & Nature | 150 |
| 5 | Food & Drink | 135 |
| 6 | Travel & Places | 218 |
| 7 | Activities | 85 |
| 8 | Objects | 258 |
| 9 | Symbols | 223 |
| 10 | Flags | 269 |

| Version | Emojis Count
|---------|--------------|
| 0.6 | 719 |
| 0.7 | 139 |
| 1.0 | 490 |
| 2.0 | 292 |
| 3.0 | 162 |
| 4.0 | 611 |
| 5.0 | 239 |
| 11.0 | 161 |
| 12.0 | 230 |
| 12.1 | 168 |
| 13.0 | 117 |
| 13.1 | 217 |
| 14.0 | 107 |
| 15.0 | 30 |

## Endpoints


Index
Search emojis
Random emojis
Popular emojis
Categories
Search by id

### API index
```http
GET https://api.emojisworld.fr/v1
```

#### Sample Response
```json
{
"message": "Welcome on Emojis World API ( version 1) !!"
}
```

### Search emojis
```http
GET https://api.emojisworld.fr/v1/search
```

#### Query String Options

| Query Strings | Type | Description | Example |
|---------------- |--------------------------------- |----------------------------------------------------- |------------------------ |
| q | String - **Required** | A search word (only in english) | `q=happy` |
| limit | Integer - *Optional* | Fetch up to a specified number of results (max: 50) | `limit=25` |
| categories | List of Integers - *Optional* | Filter response by categories ids | `categories=1,2,3` |
| sub_categories | List of Integers - *Optional* | Filter response by sub_categories ids | `sub_categories=1,2,3` |
| versions | List of Floats - *Optional* | Filter response by specifics versions | `versions=1.0,13.1` |

#### Example
```http
https://api.emojisworld.fr/v1/search?q=party&categories=7,8,6&sub_categories=61,66,63&versions=0.6,13.0
```

#### Sample Response
```json
{
"totals": 4,
"results": [
{
"id": 1691,
"name": "party popper",
"emoji": "🎉",
"unicode": "1F389",
"version": "0.6",
"category": {
"id": 7,
"name": "Activities"
},
"sub_category": {
"id": 61,
"name": "event"
},
"children": [

]
},
{
"id": 1248,
"name": "dress",
"emoji": "👗",
"unicode": "1F457",
"version": "0.6",
"category": {
"id": 8,
"name": "Objects"
},
"sub_category": {
"id": 66,
"name": "clothing"
},
"children": [

]
},
{
"id": 1718,
"name": "bowling",
"emoji": "🎳",
"unicode": "1F3B3",
"version": "0.6",
"category": {
"id": 7,
"name": "Activities"
},
"sub_category": {
"id": 63,
"name": "sport"
},
"children": [

]
},
{
"id": 1687,
"name": "fireworks",
"emoji": "🎆",
"unicode": "1F386",
"version": "0.6",
"category": {
"id": 7,
"name": "Activities"
},
"sub_category": {
"id": 61,
"name": "event"
},
"children": [

]
}
]
}
```

### Random emojis
```http
GET https://api.emojisworld.fr/v1/random
```

#### Query String Options

| Query Strings | Type | Description | Example |
|---------------- |------------------------------- |----------------------------------------------------- |------------------------ |
| limit | Integer - *Optional* | Fetch up to a specified number of results (max: 50) | `limit=25` |
| categories | List of Integers - *Optional* | Filter the response by categories ids | `categories=1,2,3` |
| sub_categories | List of Integers - *Optional* | Filter the response by sub categories ids | `sub_categories=1,2,3` |
| versions | List of Floats - *Optional* | Filter response by specifics versions | `versions=1.0,13.1` |

#### Example
```http
GET https://api.emojisworld.fr/v1/random?&categories=7,8,6&sub_categories=61,66,63&versions=0.6,13.0&limit=2
```

#### Sample Response
```json
{
"totals": 2,
"results": [
{
"id": 1254,
"name": "clutch bag",
"emoji": "👝",
"unicode": "1F45D",
"version": "0.6",
"category": {
"id": 8,
"name": "Objects"
},
"sub_category": {
"id": 66,
"name": "clothing"
},
"children": [

]
},
{
"id": 3588,
"name": "military helmet",
"emoji": "🪖",
"unicode": "1FA96",
"version": "13.0",
"category": {
"id": 8,
"name": "Objects"
},
"sub_category": {
"id": 66,
"name": "clothing"
},
"children": [

]
}
]
}
```

### Popular emojis
```http
GET https://api.emojisworld.fr/v1/popular
```

#### Query String Options

| Query Strings | Type | Description | Example |
|---------------- |-------------------------------- |----------------------------------------------------- |------------------------ |
| limit | Integer - *Optional* | Fetch up to a specified number of results (max: 50) | `limit=25` |
| categories | List of Integers - *Optional* | Filter the response by categories ids | `categories=1,2,3` |
| sub_categories | List of Integers - *Optional* | Filter the response by sub categories ids | `sub_categories=1,2,3` |
| versions | List of Floats - *Optional* | Filter response by specifics versions | `versions=1.0,13.1` |

#### Example
```http
GET https://api.emojisworld.fr/v1/popular?&categories=7,8,6&sub_categories=61,66,63&versions=0.6,13.0&limit=2
```

#### Sample Response
```json
{
"totals": 2,
"results": [
{
"id": 1253,
"name": "handbag",
"emoji": "👜",
"unicode": "1F45C",
"version": "0.6",
"count": 46,
"category": {
"id": 8,
"name": "Objects"
},
"sub_category": {
"id": 66,
"name": "clothing"
},
"children": [

]
},
{
"id": 1252,
"name": "purse",
"emoji": "👛",
"unicode": "1F45B",
"version": "0.6",
"count": 45,
"category": {
"id": 8,
"name": "Objects"
},
"sub_category": {
"id": 66,
"name": "clothing"
},
"children": [

]
}
]
}
```

### All categories and sub categories
```http
GET https://api.emojisworld.fr/v1/categories
```

#### Sample Response
```json
{
"totals":10,
"results":[
{
"id":1,
"name":"Smileys & Emotion",
"emojis_count":163,
"sub_categories":[
{
"id": 1,
"name": "face-smiling",
"emojis_count": 14
},
{
"id": 2,
"name": "face-affection",
"emojis_count": 9
}
]
}
]
}
```

### Emoji by specific id
```http
GET https://api.emojisworld.fr/v1/emojis/{id}
```
#### Sample Response
```json
{
"id": 1,
"name": "grinning face",
"emoji": "😀",
"unicode": "1F600",
"version": "1.0",
"category": {
"id": 1,
"name": "Smileys & Emotion"
},
"sub_category": {
"id": 1,
"name": "face-smiling"
},
"children": [

],
"parent": null
}
```

## HTTP Response Codes
| Code | Description |
| ------------- | ------------- |
| 200 | Success |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Access Forbidden |
| 404 | Not Found |
| 429 | Too Many Requests |
| 500 | Internal Server Error |

## Technical detail

API Rate Limiting : **500 REQUESTS / DAY / IP**.

| Header | Description | Example |
| ------------- | ------------- | ------------- |
| X-Rate-Limit-Limit | The maximum number of request you-re permitted to make per period of 1 day | 500 |
| X-Rate-Limit-Remaining | Your current number of request | 100 |
| X-Rate-Limit-Reset | The time at which the rate limit resets | Tue Aug 17 2021 17:43:28 GMT+0200 |

* API is using Node.js with the Express.js framework
* All emojis data are stored in a MySQL and Typesense databases

## Contributing

**I search contributors for help me to complete and correct keywords for each emoji. This will allow for a better and more relevant search.**

**You can find the complete list of emojis and associated keywords in [emojis.json](https://github.com/abourtnik/emojis-world/blob/master/scripts/emojis.json) file.**

We encourage you to contribute to Emojis World !! Please check out the [Contributing to Emojis World guide](https://github.com/abourtnik/emojis-world/blob/master/contributing.md) for guidelines about how to proceed. Join us!

Trying to report a possible security vulnerability in Emojis World ? Consider using email :
**[email protected]** with clear description of security vulnerability.

## License
Emojis World is made available under the [MIT License](http://www.opensource.org/licenses/mit-license.php).

## Credits
Emojis World is created and maintained by [Anton Bourtnik](https://github.com/abourtnik)

## Support Project
[Make a PayPal Donation](https://www.paypal.com/donate/?hosted_button_id=J4ZPUYZ5EGGS8)