GIPHY-compatible API

Passez de Giphy à Heypster sans réécrire votre intégration

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`.

/v1

Paths compatibles avec GIPHY

JSON

Schéma pensé pour limiter les régressions

Fetch

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`);

API Quickstart Guide

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`.

Raccourci utile: si votre code appelle déjà une variable du type `GIPHY_API_BASE_URL`, remplacez-la par `https://heypster-gif.com/giphy` et gardez ensuite les mêmes suffixes `/v1/...`.

1. Tester une recherche

curl "https://heypster-gif.com/giphy/v1/gifs/search?api_key=YOUR_HEYPSTER_API_KEY&q=party&limit=12&lang=fr"

2. Faire la même chose côté JavaScript

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;
}

3. Utiliser les mêmes renditions que Giphy

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;

4. Autres endpoints disponibles

# 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"

GIF Endpoints

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.

Search Endpoint

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.

Trending Endpoint

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.

Translate Endpoint

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.

Random Endpoint

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.

Get GIF by ID / IDs

À 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.

Autocomplete, Categories & Related Tags

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.

Trending Searches & Random ID

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.

Emoji API

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`.

Schéma de réponse

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"
  }
}

Best Practices

  • Conservez le même parser GIPHY tant que votre application lit surtout `data`, `pagination`, `meta` et `images`.
  • Ne consommez que les déclinaisons nécessaires pour limiter la bande passante côté web et mobile.
  • Gardez `limit` et `offset` côté client pour préserver un comportement identique pendant la migration.
  • Mettez en cache les suggestions et les tendances côté serveur si votre trafic ou vos quotas l’exigent.

Support & accompagnement

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