> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Rechercher de l'audio Instagram

> Recherchez dans le catalogue audio sous licence d'Instagram une piste à joindre à un Reel

export const InstagramAudioNotice = () => <Warning>
  <strong>Requires Instagram linked through Facebook Login.</strong> Instagram's Audio API is only available to accounts connected via <strong>Facebook Login</strong>, which needs a Facebook Page connected to the Instagram account. Accounts connected with <strong>Instagram Login</strong> (the Ayrshare default) cannot search, look up, or attach audio, and every audio request returns <code>code: 514</code>.
  <br /><br />
  This is a Meta restriction, not an Ayrshare one. Meta's documentation states the Audio API "is only available on the Instagram API with Facebook Login. It is not supported on the Instagram API with Instagram Login." No permission or plan upgrade changes it.
  <br /><br />
  <strong>Three things are required:</strong>
  <br />
  1. An Instagram <strong>Business</strong> or <strong>Creator</strong> account<br />
  2. A <strong>Facebook Page connected</strong> to that Instagram account<br />
  3. Instagram linked to Ayrshare with <strong>Instagram Login disabled</strong>, so the Facebook Login flow is used
  <br /><br />
  See the <a href="/docs/dashboard/connect-social-accounts/instagram#music-attach-eligibility-facebook-login-required">step-by-step setup guide</a>.
</Warning>;

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/docs/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Recherchez par mot-clé dans le catalogue audio d'Instagram. Utilisez l'`audioId` renvoyé avec [`instagramOptions.audioConfiguration`](/docs/apis/post/social-networks/instagram#adding-music-to-a-reel) pour joindre la piste lors de la publication d'un Reel.

<InstagramAudioNotice />

## Paramètres d'en-tête

<HeaderAPI />

## Paramètres de requête

<ParamField query="query" type="string" required>
  Mot-clé à rechercher, comme un nom d'artiste ou de piste. Une valeur vide ou composée uniquement
  d'espaces renvoie `code: 101`.
</ParamField>

<ParamField query="audioType" type="string" default="music">
  Le catalogue dans lequel effectuer la recherche. Soit `music` pour les pistes commerciales sous
  licence, soit `original_sound` pour l'audio provenant des Reels d'autres créateurs. Toute autre
  valeur renvoie `code: 101`.
</ParamField>

<ParamField query="limit" type="integer">
  Nombre maximum de pistes à renvoyer, de `1` à `100`. Les valeurs non entières ou hors plage
  renvoient `code: 101`. Si omis, la valeur par défaut d'Instagram s'applique.
</ParamField>

## Champs de réponse

Instagram ne renvoie pas tous les champs pour chaque piste ; considérez donc tous les champs de piste, à l'exception d'`audioId`, comme facultatifs.

<ResponseField name="status" type="string">
  `success` lorsque la recherche a abouti. Une recherche sans correspondance dans le catalogue reste un succès.
</ResponseField>

<ResponseField name="query" type="string">
  Le mot-clé recherché, renvoyé en écho.
</ResponseField>

<ResponseField name="audio" type="array">
  Les pistes correspondantes. Un tableau vide signifie que la recherche a été exécutée sans correspondance.

  <Expandable title="Champs de piste">
    <ResponseField name="audioId" type="string">
      L'identifiant à passer comme `audioConfiguration.audioId` lors de la publication d'un Reel.
    </ResponseField>

    <ResponseField name="title" type="string">Titre de la piste.</ResponseField>
    <ResponseField name="displayArtist" type="string">Nom de l'artiste tel qu'Instagram l'affiche.</ResponseField>
    <ResponseField name="durationMs" type="integer">Durée de la piste en millisecondes.</ResponseField>
    <ResponseField name="thumbnailUrl" type="string">URL de la miniature de la pochette.</ResponseField>
    <ResponseField name="audioType" type="string">Soit `music`, soit `original_sound`.</ResponseField>

    <ResponseField name="isAdsEligible" type="boolean">
      Indique si la piste peut être utilisée dans une publicité. La musique sous licence est souvent
      indisponible pour les publicités même lorsqu'elle est disponible pour un Reel organique.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
    "status": "success",
    "query": "summer",
    "audio": [
      {
        "audioId": "17901234567890123",
        "title": "Summer Nights",
        "displayArtist": "The Example Band",
        "durationMs": 32000,
        "thumbnailUrl": "https://scontent.example.com/cover.jpg",
        "audioType": "music",
        "isAdsEligible": true
      }
    ]
  }
  ```

  ```json 200: No matches theme={"system"}
  {
    "status": "success",
    "query": "asdfghjkl",
    "audio": []
  }
  ```

  ```json 400: Instagram Login account theme={"system"}
  {
    "status": "error",
    "code": 514,
    "action": "post",
    "message": "Adding music to a Reel requires an Instagram account connected via Facebook Login. This profile is connected with Instagram Login, which Meta does not permit for music attach, search, or lookup. Please relink Instagram using Facebook Login and grant the instagram_content_publish permission, then try again.",
    "platform": "instagram"
  }
  ```
</ResponseExample>

## Erreurs

| Code | Signification                                                                                                                                                                                |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 101  | `query` manquant ou vide, `audioType` non reconnu, ou `limit` en dehors de 1 à 100.                                                                                                          |
| 156  | Instagram n'est pas connecté à ce profil.                                                                                                                                                    |
| 161  | L'autorisation Instagram a expiré ou a été révoquée. Reconnectez le compte.                                                                                                                  |
| 239  | Instagram a rejeté la requête pour une raison liée au compte, y compris une piste indisponible. Sur la recherche, cela renvoie 239 plutôt que le 517 renvoyé par l'endpoint de consultation. |
| 258  | Instagram a renvoyé une réponse malformée ou un échec non mappé.                                                                                                                             |
| 425  | La connexion ne dispose pas d'une autorisation Instagram requise. Reconnectez le compte et accordez toutes les autorisations.                                                                |
| 435  | La limite de débit d'Instagram a été atteinte. Attendez avant de réessayer.                                                                                                                  |
| 514  | Instagram est connecté avec Instagram Login. L'API Audio nécessite Facebook Login.                                                                                                           |

Les codes 514 à 518 sont décrits dans [Erreurs audio des Reels Instagram](/docs/errors/errors-ayrshare#instagram-reels-audio-errors) ; les autres figurent dans la [référence des erreurs Ayrshare](/docs/errors/errors-ayrshare).

## Étapes suivantes

<Card title="Joindre la piste à un Reel" icon="music" href="/docs/apis/post/social-networks/instagram#adding-music-to-a-reel" horizontal />

<Card title="Consulter une seule piste" icon="magnifying-glass" href="/docs/apis/media/get-instagram-audio" horizontal />
