GIPHY-compatible API
Heypster API 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 renditions. Sur `heypster-gif.com`, cette couche est exposée sous le préfixe `/giphy`.
Dans la majorité des cas, la migration consiste à remplacer `https://api.giphy.com` par `https://heypster-gif.com/giphy` et la clé API, puis à conserver vos parseurs `data`, `pagination`, `meta` et `images`.
Paths compatibles avec GIPHY
Schéma pensé 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';
// same path, new host
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 fixedWidthUrl = gif.images.fixed_width.url;
const previewGif = gif.images.preview_gif.url;
# Categories
curl "https://heypster-gif.com/giphy/v1/gifs/categories?api_key=YOUR_HEYPSTER_API_KEY"
# Trending searches
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"
# Emoji variations
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 garde un chemin REST familier et un contrat pensé pour réduire 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. |
rating |
g |
Filtre de contenu. |
Retourne les GIF les plus pertinents du moment. Idéal pour les pages d’accueil, pickers et 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. |
rating |
pg-13 |
Filtre éditorial ou produit. |
Retourne un GIF unique pour une intention donnée. 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 |
thumbs up |
Intention ou phrase courte. |
weirdness |
3 |
Niveau de variation si votre déploiement l’active. |
Renvoie un GIF aléatoire, éventuellement filtré par tag. Utile pour les expériences légères ou l’éditorial.
/giphy/v1/gifs/random
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
tag |
celebration |
Tag facultatif. |
rating |
g |
Filtre de contenu. |
À utiliser pour recharger des GIF déjà sélectionnés, restaurer l’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 l’expérience 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. |
Expose les requêtes tendances et un identifiant aléatoire pour les parcours compatibles avec les usages GIPHY.
/giphy/v1/trending/searches
/giphy/v1/randomid
| Paramètre | Exemple | Description |
|---|---|---|
api_key |
YOUR_HEYPSTER_API_KEY |
Clé API Heypster. |
none |
- |
Ces endpoints ne nécessitent pas d’autre paramètre de route. |
Retourne la collection emoji et les variations par identifiant pour les intégrations qui utilisent les endpoints emoji de GIPHY.
/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. |
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`.
meta
Informations de statut, message et identifiant de réponse.
images
Renditions prêtes à consommer: `original`, `fixed_width`, `fixed_height`, `downsized`, `preview_gif`.
{
"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.gif",
"width": "480",
"height": "270"
},
"fixed_width": {
"url": "https://cdn.heypster.example/fixed_width.gif",
"width": "200",
"height": "113"
},
"preview_gif": {
"url": "https://cdn.heypster.example/preview.gif"
}
}
}
],
"pagination": {
"total_count": 500,
"count": 25,
"offset": 0
},
"meta": {
"status": 200,
"msg": "OK",
"response_id": "heypster-response-id"
}
}
Si vous migrez une intégration GIPHY existante, nous pouvons vous aider à valider le mapping d’endpoints, les renditions nécessaires et les éventuels champs spécifiques à votre produit.
contact@heypster.com