@unavatar/core 3.7.63 → 3.7.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +148 -103
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -14,12 +14,12 @@
14
14
  - [DuckDuckGo](#duckduckgo)
15
15
  - [GitHub](#github)
16
16
  - [GitLab](#gitlab)
17
+ - [LinkedIn](#linkedin)
17
18
  - [Google](#google)
18
19
  - [Gravatar](#gravatar)
19
20
  - [Instagram](#instagram)
20
- - [LinkedIn](#linkedin)
21
- - [Mastodon](#mastodon)
22
21
  - [Microlink](#microlink)
22
+ - [Mastodon](#mastodon)
23
23
  - [OnlyFans](#onlyfans)
24
24
  - [OpenStreetMap](#openstreetmap)
25
25
  - [Patreon](#patreon)
@@ -45,13 +45,13 @@ Welcome to **unavatar.io**, the ultimate avatar service that offers everything y
45
45
 
46
46
  - **Versatile**: A wide range of platforms and services including [TikTok](#tiktok), [Instagram](#instagram), [YouTube](#youtube), [X/Twitter](#xtwitter), [Gravatar](#gravatar), etc., meaning you can rule all of them just querying against unavatar.
47
47
 
48
- - **Speed**: Designed to be fast and efficient, all requests are being cached and delivered +200 global datacenters, allowing you to consume avatars instantly, counting more than 20 millions requests per month.
48
+ - **Speed**: Designed to be fast and efficient with a 97% cache hit rate, serving 24.3 TB of data across 522M requests.
49
49
 
50
50
  - **Optimize**: All the images are not only compressed on-the-fly to reduce their size and save bandwith, but also optimized to maintain a high-quality ratio. They are ready for immediate use, enhancing the overall optimization of your website or application.
51
51
 
52
52
  - **Integration**: The service seamlessly incorporates into your current applications or websites with ease. We offer straightforward documentation and comprehensive support to ensure a quick and effortless onboarding experience.
53
53
 
54
- It's proudly powered by [microlink.io](https://microlink.io), the headless browser API that handles all the heavy lifting behind the scenes to ensure your avatars are always ready.
54
+ It's proudly powered by [microlink.io](https://microlink.io/), the headless browser API that handles all the heavy lifting behind the scenes to ensure your avatars are always ready.
55
55
 
56
56
  ## Quick start
57
57
 
@@ -67,8 +67,8 @@ Use the `/:provider/:key` format for all lookups. You can read more about availa
67
67
 
68
68
  ### TTL
69
69
 
70
- Type: `number`|`string`<br/>
71
- Default: `'24h'`<br/>
70
+ Type: `number` or `string`<br>
71
+ Default: `'24h'`<br>
72
72
  Range: from `'1h'` to `'28d'`
73
73
 
74
74
  It determines the maximum quantity of time an avatar is considered fresh.
@@ -81,7 +81,7 @@ The same resource will continue to be used until reach TTL expiration. After tha
81
81
 
82
82
  ### Fallback
83
83
 
84
- Type: `string`|`boolean`
84
+ Type: `string` or `boolean`
85
85
 
86
86
  When it can't be possible to get a user avatar, a fallback image is returned instead, and it can be personalized to fit better with your website or application style.
87
87
 
@@ -115,7 +115,7 @@ e.g., [unavatar.io/github/kikobeats?json](https://unavatar.io/github/kikobeats?j
115
115
 
116
116
  ## Pricing
117
117
 
118
- The service is **FREE** for everyone, no registration required, with a daily rate limit of **50 requests** per IP address.
118
+ The service is **FREE** for everyone, no registration required, with a daily rate limit of **50 requests** per IP address.
119
119
 
120
120
  For preventing abusive usage, the service has associated a daily rate limit based on requests IP address.
121
121
 
@@ -125,25 +125,23 @@ You can verify for your rate limit state checking the following headers in the r
125
125
  - `x-rate-limit-remaining`: The number of requests remaining in the current rate limit window.
126
126
  - `x-rate-limit-reset`: The time at which the current rate limit window resets in UTC epoch seconds.
127
127
 
128
- For higher usage, the **[PRO](https://unavatar.io/checkout)** plan is a usage-based plan billed monthly that removes rate limits and unlocks custom TTL.
128
+ For higher usage, the plan is a usage-based plan billed monthly that removes rate limits and unlocks custom TTL.
129
129
 
130
- Every request has a cost in tokens (**$0.001 per token**) based on the proxy tier needed to resolve the avatar:
130
+ Every request has a cost in tokens (**\$0.001 per token**) based on the proxy tier needed to resolve the avatar:
131
131
 
132
- | Proxy tier | Tokens | Cost |
133
- | ----------- | :----: | :----: |
134
- | Origin | 1 | $0.001 |
135
- | Datacenter | +2 | $0.003 |
136
- | Residential | +4 | $0.007 |
132
+ | Proxy tier | Tokens | Cost |
133
+ |-------------|--------|---------|
134
+ | Origin | 1 | \$0.001 |
135
+ | Datacenter | +2 | \$0.003 |
136
+ | Residential | +4 | \$0.007 |
137
137
 
138
138
  The proxy tier used is returned in the `x-proxy-tier` response header, and the total cost in the `x-unavatar-cost` header.
139
139
 
140
- ```bash
141
- $ curl -I -H "x-api-key: YOUR_API_KEY" https://unavatar.io/instagram/kikobeats
140
+ $ curl -I -H "x-api-key: YOUR_API_KEY" https://unavatar.io/instagram/kikobeats
142
141
 
143
- x-pricing-tier: pro
144
- x-proxy-tier: origin
145
- x-unavatar-cost: 1
146
- ```
142
+ x-pricing-tier: pro
143
+ x-proxy-tier: origin
144
+ x-unavatar-cost: 1
147
145
 
148
146
  To upgrade, visit [unavatar.io/checkout](https://unavatar.io/checkout). After completing the payment, you'll receive an API key.
149
147
 
@@ -151,19 +149,19 @@ To upgrade, visit [unavatar.io/checkout](https://unavatar.io/checkout). After co
151
149
 
152
150
  ### Apple Music
153
151
 
154
- It resolves user avatar against **music.apple.com**.
152
+ Get artwork for any Apple Music artist, album, or song. Search by name or look up directly by numeric Apple Music ID.
155
153
 
156
154
  e.g., [unavatar.io/apple-music/daft%20punk](https://unavatar.io/apple-music/daft%20punk)
157
155
 
158
- The endpoint supports explictiy type as part of the input.
156
+ The endpoint supports explicit type as part of the input.
159
157
 
160
158
  If explicit type is not provided, it searches `artist` and `song` (in that order).
161
159
 
162
- Available types:
160
+ Available URI format inputs:
163
161
 
164
162
  - artist
165
- - by artist name: [unavatar.io/apple-music/artist:daft%20punk](https://unavatar.io/apple-music/artist:daft%20punk)
166
- - by numeric artist ID: [unavatar.io/apple-music/artist:5468295](https://unavatar.io/apple-music/artist:5468295)
163
+ - by artist name: [unavatar.io/apple-music/artist:daft%20punk](https://unavatar.io/apple-music/artist:daft%20punk)
164
+ - by numeric artist ID: [unavatar.io/apple-music/artist:5468295](https://unavatar.io/apple-music/artist:5468295)
167
165
  - album
168
166
  - by album name: [unavatar.io/apple-music/album:discovery](https://unavatar.io/apple-music/album:discovery)
169
167
  - by album ID: [unavatar.io/apple-music/album:78691923](https://unavatar.io/apple-music/album:78691923)
@@ -173,122 +171,155 @@ Available types:
173
171
 
174
172
  ### Bluesky
175
173
 
176
- It resolves user avatar against **bsky.app**.
174
+ Get any Bluesky user's profile picture by their handle. Domain-style handles are supported.
177
175
 
178
- e.g., [unavatar.io/bluesky/pfrazee.com](https://unavatar.io/bluesky/pfrazee.com)
176
+ Available inputs:
177
+
178
+ - User handle, e.g., [unavatar.io/bluesky/pfrazee.com](https://unavatar.io/bluesky/pfrazee.com)
179
+ - Domain handle, e.g., [unavatar.io/bluesky/bsky.app](https://unavatar.io/bluesky/bsky.app)
179
180
 
180
181
  ### DeviantArt
181
182
 
182
- It resolves user avatar against **deviantart.com**.
183
+ Get any DeviantArt user's profile picture by their username.
184
+
185
+ Available inputs:
183
186
 
184
- e.g., [unavatar.io/deviantart/spyed](https://unavatar.io/deviantart/spyed)
187
+ - Username, e.g., [unavatar.io/deviantart/spyed](https://unavatar.io/deviantart/spyed)
185
188
 
186
189
  ### Dribbble
187
190
 
188
- It resolves user avatar against **dribbble.com**.
191
+ Get any Dribbble designer's profile picture by their username.
189
192
 
190
- e.g., [unavatar.io/dribbble/omidnikrah](https://unavatar.io/dribbble/omidnikrah)
193
+ Available inputs:
194
+
195
+ - Username, e.g., [unavatar.io/dribbble/omidnikrah](https://unavatar.io/dribbble/omidnikrah)
191
196
 
192
197
  ### DuckDuckGo
193
198
 
194
- It resolves user avatar using **duckduckgo.com**.
199
+ Get the favicon or logo for any domain via DuckDuckGo's icon service. Useful as a fallback when a domain doesn't expose its favicon directly.
200
+
201
+ Available inputs:
195
202
 
196
- e.g., [unavatar.io/duckduckgo/gummibeer.dev](https://unavatar.io/duckduckgo/gummibeer.dev)
203
+ - Domain, e.g., [unavatar.io/duckduckgo/gummibeer.dev](https://unavatar.io/duckduckgo/gummibeer.dev)
197
204
 
198
205
  ### GitHub
199
206
 
200
- It resolves user avatar against **github.com**.
207
+ Get any GitHub user or organization's profile picture by their username.
201
208
 
202
- e.g., [unavatar.io/github/mdo](https://unavatar.io/github/mdo)
209
+ Available inputs:
210
+
211
+ - User, e.g., [unavatar.io/github/mdo](https://unavatar.io/github/mdo)
212
+ - Organization, e.g., [unavatar.io/github/vercel](https://unavatar.io/github/vercel)
203
213
 
204
214
  ### GitLab
205
215
 
206
- It resolves user avatar against **gitlab.com**.
216
+ Get any GitLab user or group's profile picture by their username.
207
217
 
208
- e.g., [unavatar.io/gitlab/inkscape](https://unavatar.io/gitlab/inkscape)
218
+ Available inputs:
219
+
220
+ - User, e.g., [unavatar.io/gitlab/sytses](https://unavatar.io/gitlab/sytses)
221
+ - Group, e.g., [unavatar.io/gitlab/inkscape](https://unavatar.io/gitlab/inkscape)
222
+
223
+ ### LinkedIn
224
+
225
+ Get any LinkedIn user's profile picture by their public profile slug.
226
+
227
+ Available inputs:
228
+
229
+ - Profile slug, e.g., [unavatar.io/linkedin/kikobeats](https://unavatar.io/linkedin/kikobeats)
209
230
 
210
231
  ### Google
211
232
 
212
- It resolves user avatar using **google.com**.
233
+ Get the favicon or logo for any domain using Google's favicon service.
213
234
 
214
- e.g., [unavatar.io/google/netflix.com](https://unavatar.io/google/netflix.com)
235
+ Available inputs:
236
+
237
+ - Domain, e.g., [unavatar.io/google/netflix.com](https://unavatar.io/google/netflix.com)
215
238
 
216
239
  ### Gravatar
217
240
 
218
- It resolves user avatar against **gravatar.com**.
241
+ Get any user's avatar by their email address via Gravatar. The most widely used global avatar service — if your users have a Gravatar set up, this is the fastest way to retrieve it.
219
242
 
220
- e.g., [unavatar.io/gravatar/hello@microlink.io](https://unavatar.io/gravatar/hello@microlink.io)
243
+ Available inputs:
221
244
 
222
- ### Instagram
245
+ - Email address, e.g., [unavatar.io/gravatar/hello@microlink.io](https://unavatar.io/gravatar/hello@microlink.io)
223
246
 
224
- It resolves user avatar against **instagram.com**.
247
+ ### Instagram
225
248
 
226
- e.g., [unavatar.io/instagram/willsmith](https://unavatar.io/instagram/willsmith)
249
+ Get any Instagram user's profile picture by their username. No authentication or API tokens needed — just pass the username.
227
250
 
228
- ### LinkedIn
251
+ Available inputs:
229
252
 
230
- It resolves user avatar against **linkedin.com**.
253
+ - Username, e.g., [unavatar.io/instagram/willsmith](https://unavatar.io/instagram/willsmith)
231
254
 
232
- e.g., [unavatar.io/linkedin/kikobeats](https://unavatar.io/linkedin/kikobeats)
255
+ ### Microlink
233
256
 
234
- ### Mastodon
257
+ Extract the logo or representative image from any URL. The page is rendered and the best available image is selected — useful for getting brand logos from any website.
235
258
 
236
- It resolves user avatar from any **Mastodon** instance using the public account lookup API.
259
+ Available inputs:
237
260
 
238
- Because Mastodon is federated, the input must include both the username and the server. The following formats are supported:
261
+ - Domain, e.g., [unavatar.io/microlink/microlink.io](https://unavatar.io/microlink/microlink.io)
239
262
 
240
- - `user@server`: [unavatar.io/mastodon/kpwags@hachyderm.io](https://unavatar.io/mastodon/kpwags@hachyderm.io)
263
+ ### Mastodon
241
264
 
242
- ### Microlink
265
+ Get any Mastodon user's profile picture from any instance using the public account lookup API. Pass the handle as `user@server` so the account resolves on the correct home instance.
243
266
 
244
- It resolves user avatar using **microlink.io**.
267
+ Available inputs:
245
268
 
246
- e.g., [unavatar.io/microlink/microlink.io](https://unavatar.io/microlink/microlink.io)
269
+ - user@server, e.g., [unavatar.io/mastodon/kpwags@hachyderm.io](https://unavatar.io/mastodon/kpwags@hachyderm.io)
247
270
 
248
271
  ### OnlyFans
249
272
 
250
- It resolves user avatar using **onlyfans.com**.
273
+ Get any OnlyFans creator's profile picture by their username.
274
+
275
+ Available inputs:
251
276
 
252
- e.g., [unavatar.io/onlyfans/amandaribas](https://unavatar.io/onlyfans/amandaribas)
277
+ - Username, e.g., [unavatar.io/onlyfans/amandaribas](https://unavatar.io/onlyfans/amandaribas)
253
278
 
254
279
  ### OpenStreetMap
255
280
 
256
- It resolves user avatar using **openstreetmap.org**.
281
+ Get any OpenStreetMap contributor's profile picture. Accepts either a numeric user ID or a username.
257
282
 
258
- The input accepts:
283
+ Available inputs:
259
284
 
260
285
  - Numeric user ID, e.g., [unavatar.io/openstreetmap/98672](https://unavatar.io/openstreetmap/98672)
261
- - Username e.g., [unavatar.io/openstreetmap/Terence%20Eden](https://unavatar.io/openstreetmap/Terence%20Eden)
286
+ - Username, e.g., [unavatar.io/openstreetmap/Terence%20Eden](https://unavatar.io/openstreetmap/Terence%20Eden)
262
287
 
263
288
  ### Patreon
264
289
 
265
- It resolves user avatar against **patreon.com**.
290
+ Get any Patreon creator's profile picture by their username.
291
+
292
+ Available inputs:
266
293
 
267
- e.g., [unavatar.io/patreon/kikobeats](https://unavatar.io/patreon/kikobeats)
294
+ - Username, e.g., [unavatar.io/patreon/kikobeats](https://unavatar.io/patreon/kikobeats)
268
295
 
269
296
  ### Reddit
270
297
 
271
- It resolves user avatar against **reddit.com**.
298
+ Get any Reddit user's avatar by their username.
272
299
 
273
- e.g., [unavatar.io/reddit/kikobeats](https://unavatar.io/reddit/kikobeats)
300
+ Available inputs:
301
+
302
+ - Username, e.g., [unavatar.io/reddit/kikobeats](https://unavatar.io/reddit/kikobeats)
274
303
 
275
304
  ### SoundCloud
276
305
 
277
- It resolves user avatar against **soundcloud.com**.
306
+ Get any SoundCloud artist's profile picture by their username.
307
+
308
+ Available inputs:
278
309
 
279
- e.g., [unavatar.io/soundcloud/gorillaz](https://unavatar.io/soundcloud/gorillaz)
310
+ - Username, e.g., [unavatar.io/soundcloud/gorillaz](https://unavatar.io/soundcloud/gorillaz)
280
311
 
281
312
  ### Spotify
282
313
 
283
- It resolves user avatar against **open.spotify.com**.
314
+ Get artwork for any Spotify entity — users, artists, albums, playlists, shows, episodes, or tracks. Look up by username or Spotify ID.
284
315
 
285
316
  e.g., [unavatar.io/spotify/kikobeats](https://unavatar.io/spotify/kikobeats)
286
317
 
287
- The endpoint supports explictiy type as part of the input.
318
+ The endpoint supports explicit type as part of the input.
288
319
 
289
320
  If explicit type is not provided, it defaults to `user`.
290
321
 
291
- Available types:
322
+ Available URI format inputs:
292
323
 
293
324
  - `user`: [unavatar.io/spotify/kikobeats](https://unavatar.io/spotify/kikobeats)
294
325
  - `artist`: [unavatar.io/spotify/artist:6sFIWsNpZYqbRiDnNOkZCA](https://unavatar.io/spotify/artist:6sFIWsNpZYqbRiDnNOkZCA)
@@ -300,40 +331,52 @@ Available types:
300
331
 
301
332
  ### Substack
302
333
 
303
- It resolves user avatar against **substack.com**.
334
+ Get any Substack author's profile picture by their publication username.
335
+
336
+ Available inputs:
304
337
 
305
- e.g., [unavatar.io/substack/bankless](https://unavatar.io/substack/bankless)
338
+ - Publication username, e.g., [unavatar.io/substack/bankless](https://unavatar.io/substack/bankless)
306
339
 
307
340
  ### Telegram
308
341
 
309
- It resolves user avatar against **telegram.com**.
342
+ Get any Telegram user's profile picture by their username.
310
343
 
311
- e.g., [unavatar.io/telegram/drsdavidsoft](https://unavatar.io/telegram/drsdavidsoft)
344
+ Available inputs:
345
+
346
+ - Username, e.g., [unavatar.io/telegram/drsdavidsoft](https://unavatar.io/telegram/drsdavidsoft)
312
347
 
313
348
  ### TikTok
314
349
 
315
- It resolves user avatar against **tiktok.com**.
350
+ Get any TikTok user's profile picture by their username. No authentication or API tokens needed — just pass the username.
351
+
352
+ Available inputs:
316
353
 
317
- e.g., [unavatar.io/tiktok/carlosazaustre](https://unavatar.io/tiktok/carlosazaustre)
354
+ - Username, e.g., [unavatar.io/tiktok/carlosazaustre](https://unavatar.io/tiktok/carlosazaustre)
318
355
 
319
356
  ### Twitch
320
357
 
321
- It resolves user avatar against **twitch.tv**.
358
+ Get any Twitch streamer's profile picture by their username.
322
359
 
323
- e.g., [unavatar.io/twitch/midudev](https://unavatar.io/twitch/midudev)
360
+ Available inputs:
361
+
362
+ - Username, e.g., [unavatar.io/twitch/midudev](https://unavatar.io/twitch/midudev)
324
363
 
325
364
  ### Vimeo
326
365
 
327
- It resolves user avatar against **vimeo.com**.
366
+ Get any Vimeo user's profile picture by their username.
367
+
368
+ Available inputs:
328
369
 
329
- e.g., [unavatar.io/vimeo/staff](https://unavatar.io/vimeo/staff)
370
+ - Username, e.g., [unavatar.io/vimeo/staff](https://unavatar.io/vimeo/staff)
330
371
 
331
372
  ### WhatsApp
332
373
 
333
- It resolves user avatar against **whatsapp.com**.
374
+ Get the profile picture for a WhatsApp phone number, channel, chat, or group.
334
375
 
335
376
  The input supports a URI format `type:id`. When no type is provided, it defaults to `phone`.
336
377
 
378
+ Available URI format inputs:
379
+
337
380
  - `phone` (default): [unavatar.io/whatsapp/34612345678](https://unavatar.io/whatsapp/34612345678)
338
381
  - `channel`: [unavatar.io/whatsapp/channel:0029VaABC1234abcDEF56789](https://unavatar.io/whatsapp/channel:0029VaABC1234abcDEF56789)
339
382
  - `chat`: [unavatar.io/whatsapp/chat:ABC1234DEFghi](https://unavatar.io/whatsapp/chat:ABC1234DEFghi)
@@ -341,13 +384,15 @@ The input supports a URI format `type:id`. When no type is provided, it defaults
341
384
 
342
385
  ### X/Twitter
343
386
 
344
- It resolves user avatar against **x.com**.
387
+ Get any X (formerly Twitter) user's profile picture by their username.
388
+
389
+ Available inputs:
345
390
 
346
- e.g., [unavatar.io/x/kikobeats](https://unavatar.io/x/kikobeats)
391
+ - Username, e.g., [unavatar.io/x/kikobeats](https://unavatar.io/x/kikobeats)
347
392
 
348
393
  ### YouTube
349
394
 
350
- It resolves user avatar against **youtube.com**.
395
+ Get any YouTube channel's thumbnail by their handle, legacy username, or channel ID.
351
396
 
352
397
  e.g., [unavatar.io/youtube/casey](https://unavatar.io/youtube/casey)
353
398
 
@@ -368,29 +413,29 @@ However, you can get a [json](#json) as response payload.
368
413
 
369
414
  When an endpoint returns JSON, the shape is predictable so you can parse it reliably in your app:
370
415
 
371
- | Field | Type | Present in | Description |
372
- | --------- | -------------- | ----------------------------- | ------------------------------------------------ |
373
- | `status` | `string` | all JSON responses | One of: `success`, `fail`, `error`. |
374
- | `message` | `string` | all JSON responses | Human-readable summary for display/logging. |
375
- | `data` | `object` | `success` | Response payload for successful requests. |
376
- | `code` | `string` | `fail`, `error` | Stable machine-readable error code. |
377
- | `more` | `string (URL)` | most `fail`/`error` responses | Documentation URL with troubleshooting details. |
378
- | `report` | `string` | some `error` responses | Support contact channel (for example `mailto:`). |
416
+ | Field | Type | Present in | Description |
417
+ |----|----|----|----|
418
+ | `status` | `string` | all JSON responses | One of: `success`, `fail`, `error`. |
419
+ | `message` | `string` | all JSON responses | Human-readable summary for display/logging. |
420
+ | `data` | `object` | `success` | Response payload for successful requests. |
421
+ | `code` | `string` | `fail`, `error` | Stable machine-readable error code. |
422
+ | `more` | `string (URL)` | most `fail`/`error` responses | Documentation URL with troubleshooting details. |
423
+ | `report` | `string` | some `error` responses | Support contact channel (for example `mailto:`). |
379
424
 
380
425
  ## Response Headers
381
426
 
382
427
  These headers help you understand pricing, limits, and request diagnostics.
383
428
 
384
- | Header | Purpose |
385
- | ------------------------ | --------------------------------------------------------- |
386
- | `x-pricing-tier` | `free` or `pro` — the plan used for this request |
387
- | `x-timestamp` | Server timestamp when request was received |
388
- | `x-unavatar-cost` | Token cost of the request (avatar routes only) |
389
- | `x-proxy-tier` | Proxy tier used: `origin`, `datacenter`, or `residential` |
390
- | `x-rate-limit-limit` | Maximum requests allowed per window (free tier only) |
391
- | `x-rate-limit-remaining` | Remaining requests in current window (free tier only) |
392
- | `x-rate-limit-reset` | UTC epoch seconds when window resets (free tier only) |
393
- | `retry-after` | Seconds until rate limit resets (only on 429 responses) |
429
+ | Header | Purpose |
430
+ |----|----|
431
+ | `x-pricing-tier` | `free` or `pro` — the plan used for this request |
432
+ | `x-timestamp` | Server timestamp when request was received |
433
+ | `x-unavatar-cost` | Token cost of the request (avatar routes only) |
434
+ | `x-proxy-tier` | Proxy tier used: `origin`, `datacenter`, or `residential` |
435
+ | `x-rate-limit-limit` | Maximum requests allowed per window (free tier only) |
436
+ | `x-rate-limit-remaining` | Remaining requests in current window (free tier only) |
437
+ | `x-rate-limit-reset` | UTC epoch seconds when window resets (free tier only) |
438
+ | `retry-after` | Seconds until rate limit resets (only on 429 responses) |
394
439
 
395
440
  ## Response Errors
396
441
 
@@ -405,7 +450,7 @@ Expected errors are known operational cases returned with stable codes.
405
450
  - `report` (when present) indicates how to contact support for server errors.
406
451
 
407
452
  | HTTP | Code | Typical trigger |
408
- | ---- | -------------------- | ------------------------------------------- |
453
+ |------|----------------------|---------------------------------------------|
409
454
  | 400 | `ESESSIONID` | Missing `session_id` in `/checkout/success` |
410
455
  | 400 | `ESESSION` | Checkout session not paid or not found |
411
456
  | 400 | `ESIGNATURE` | Missing `stripe-signature` header |
@@ -429,4 +474,4 @@ Expected errors are known operational cases returned with stable codes.
429
474
 
430
475
  ## Contact
431
476
 
432
- If you have any suggestion or bug to report, please contact to ust mailing to hello@unavatar.io.
477
+ If you have any suggestion or bug to report, please contact to ust mailing to [hello@unavatar.io](mailto:hello@unavatar.io).
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@unavatar/core",
3
3
  "description": "Get unified user avatar from social networks, including Instagram, SoundCloud, Telegram, Twitter, YouTube & more.",
4
4
  "homepage": "https://unavatar.io",
5
- "version": "3.7.63",
5
+ "version": "3.7.65",
6
6
  "main": "src/index.js",
7
7
  "exports": {
8
8
  ".": "./src/index.js",
@@ -121,7 +121,7 @@
121
121
  "@keyvhq/multi": "~2.1.15",
122
122
  "@keyvhq/offline": "~2.2.0",
123
123
  "@keyvhq/redis": "~2.1.15",
124
- "@metascraper/helpers": "~5.49.24",
124
+ "@metascraper/helpers": "~5.50.0",
125
125
  "@microlink/mql": "~0.15.1",
126
126
  "@microlink/ping-url": "~1.4.16",
127
127
  "browserless": "~10.12.0",