API compatible avec GIPHY
L’API Heypster reprend les primitives REST les plus utilisées de GIPHY : même logique d’endpoints, même enveloppe de réponse et même organisation des déclinaisons. Sur `heypster-gif.com`, cette couche est exposée sous le préfixe `/giphy`.
Dans la plupart des cas, la migration revient à remplacer `https://api.giphy.com` par `https://heypster-gif.com/giphy`, à changer la clé API, puis à conserver vos parseurs `data`, `pagination`, `meta` et `images`.
Chemins alignés sur GIPHY
Schéma prévu pour limiter les régressions
Migration rapide côté front et back
Principe de migration
const GIPHY_URL = 'https://api.giphy.com';
const HEYPSTER_URL = 'https://heypster-gif.com/giphy';
// même chemin, nouvel hôte
fetch(`${HEYPSTER_URL}/v1/gifs/search?api_key=YOUR_HEYPSTER_API_KEY&q=celebration`);
Les exemples ci-dessous ciblent directement la couche compatible GIPHY exposée sur `https://heypster-gif.com/giphy`. Les routes sont protégées par le middleware `giphy.apikey` ; si votre implémentation reproduit GIPHY, continuez à transmettre `api_key`.
curl "https://heypster-gif.com/giphy/v1/gifs/search?api_key=YOUR_HEYPSTER_API_KEY&q=party&limit=12&lang=fr"
const HEYPSTER_API_HOST = 'https://heypster-gif.com/giphy';
const HEYPSTER_API_KEY = 'YOUR_HEYPSTER_API_KEY';
async function searchGifs(query) {
const response = await fetch(
`${HEYPSTER_API_HOST}/v1/gifs/search?api_key=${HEYPSTER_API_KEY}&q=${encodeURIComponent(query)}&limit=12&lang=fr`
);
const payload = await response.json();
return payload.data;
}
const gif = payload.data[0];
const originalUrl = gif.images.original.url;
const originalMp4 = gif.images.original.mp4;
const originalWebp = gif.images.original.webp;
const fixedWidthUrl = gif.images.fixed_width.url;
const previewGif = gif.images.preview_gif.url;
# Catégories
curl "https://heypster-gif.com/giphy/v1/gifs/categories?api_key=YOUR_HEYPSTER_API_KEY"
# Recherches tendances
curl "https://heypster-gif.com/giphy/v1/trending/searches?api_key=YOUR_HEYPSTER_API_KEY"
# Random ID
curl "https://heypster-gif.com/giphy/v1/randomid?api_key=YOUR_HEYPSTER_API_KEY"
# Variations d’emoji
curl "https://heypster-gif.com/giphy/v2/emoji/1/variations?api_key=YOUR_HEYPSTER_API_KEY"
La structure ci-dessous reprend la logique de lecture des docs GIPHY : chaque endpoint conserve un chemin REST familier et un contrat pensé pour limiter le refactoring.
Recherche principale pour mots-clés, réactions et requêtes éditoriales. C’est l’endpoint le plus proche des intégrations GIPHY existantes.
/giphy/v1/gifs/search
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
q |
happy birthday |
Texte recherché. |
limit |
25 |
Nombre maximum de résultats. |
offset |
0 |
Pagination numérique compatible GIPHY. |
lang |
fr |
Langue utilisateur facultative. |
Retourne les GIF les plus pertinents du moment. Idéal pour les pages d’accueil, les pickers et les suggestions initiales.
/giphy/v1/gifs/trending
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
limit |
20 |
Nombre maximum de résultats. |
offset |
0 |
Pagination des tendances. |
Retourne un GIF unique correspondant à une intention. Pratique pour transformer rapidement une action en réaction animée.
/giphy/v1/gifs/translate
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
s / q |
thumbs up |
Intention ou courte expression. `s` est le paramètre principal ; `q` est accepté en repli. |
Renvoie un GIF aléatoire, éventuellement filtré par tag. Utile pour les expériences légères ou les emplacements éditoriaux.
/giphy/v1/gifs/random
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
tag |
celebration |
Tag facultatif. |
À utiliser pour recharger des GIF déjà sélectionnés, restaurer un historique ou résoudre des IDs enregistrés.
/giphy/v1/gifs/{id} and /giphy/v1/gifs?ids=...
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
id |
xT9IgDEI1iZyb2wqo8 |
Identifiant unique. |
ids |
abc,def,ghi |
Liste d’identifiants séparés par des virgules. |
Complète les requêtes utilisateur, retourne les catégories et fournit des tags liés pour enrichir les parcours de découverte.
/giphy/v1/gifs/search/tags
/giphy/v1/gifs/categories
/giphy/v1/tags/related/{term}
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
q |
par |
Préfixe de recherche pour l’autocomplete. |
term |
party |
Terme utilisé pour `/tags/related/{term}`. |
limit |
5 |
Nombre maximum de suggestions. |
offset |
0 |
Décalage numérique pour les listes compatibles GIPHY. |
Expose les requêtes tendances et un identifiant aléatoire pour les parcours compatibles avec les usages courants de GIPHY.
/giphy/v1/trending/searches
/giphy/v1/randomid
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
limit / offset |
25 / 0 |
Disponibles pour `/trending/searches`. |
none |
- |
Aucun paramètre supplémentaire pour `/randomid`. |
Retourne la collection d’emoji et les variations par identifiant pour les intégrations qui utilisent les endpoints emoji de GIPHY. Les objets suivent une forme proche des stickers GIPHY, `url` pointe directement vers l’asset image, et `/v2/emoji/{emoji_id}/variations` renvoie `data: []` lorsqu’aucune variante n’existe.
/giphy/v1/emoji
/giphy/v2/emoji
/giphy/v2/emoji/{emoji_id}/variations
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
q |
smile |
Filtre de recherche pour les collections emoji. |
limit / offset |
25 / 0 |
Disponibles sur `/v1/emoji` et `/v2/emoji`. |
emoji_id |
1 |
Identifiant pour `/v2/emoji/{emoji_id}/variations`. |
Pour une migration fluide, gardez votre logique de parsing centrée sur ces quatre blocs.
data
Tableau d’objets GIF ou objet unique selon l’endpoint.
pagination
Bloc de pagination avec `total_count`, `count` et `offset`, présent sur les endpoints de collection paginés.
meta
Informations de statut, message et identifiant de réponse.
images
Déclinaisons compatibles GIPHY prêtes à consommer. Les URLs image sont dérivées de `gif_mini`, les URLs vidéo de `h264`, avec `webp` et `mp4`, sans `webm`.
{
"data": [
{
"id": "abc123",
"title": "celebration",
"url": "https://your-heypster-app/gifs/abc123",
"slug": "celebration-abc123",
"rating": "g",
"images": {
"original": {
"url": "https://cdn.heypster.example/original-mini.gif",
"width": "",
"height": "",
"mp4": "https://cdn.heypster.example/original.mp4",
"webp": "https://cdn.heypster.example/original-mini.gif"
},
"fixed_width": {
"url": "https://cdn.heypster.example/fixed_width.gif",
"width": "",
"height": "",
"mp4": "https://cdn.heypster.example/fixed_width.mp4",
"webp": "https://cdn.heypster.example/fixed_width.gif"
},
"preview_gif": {
"url": "https://cdn.heypster.example/preview.gif"
},
"preview": {
"mp4": "https://cdn.heypster.example/preview.mp4"
}
}
}
],
"pagination": {
"total_count": 500,
"count": 25,
"offset": 0
},
"meta": {
"status": 200,
"msg": "OK",
"response_id": "heypster-response-id"
}
}