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

# Pesquisar áudio do Instagram

> Pesquise no catálogo de áudio licenciado do Instagram uma faixa para anexar a um 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} />

Pesquise no catálogo de áudio do Instagram por palavra-chave. Use o `audioId` retornado com [`instagramOptions.audioConfiguration`](/docs/apis/post/social-networks/instagram#adding-music-to-a-reel) para anexar a faixa ao publicar um Reel.

<InstagramAudioNotice />

## Parâmetros do header

<HeaderAPI />

## Parâmetros de query

<ParamField query="query" type="string" required>
  Palavra-chave a pesquisar, como o nome de um artista ou de uma faixa. Um valor vazio ou composto
  apenas por espaços retorna `code: 101`.
</ParamField>

<ParamField query="audioType" type="string" default="music">
  Qual catálogo pesquisar. Use `music` para faixas comerciais licenciadas ou `original_sound` para
  áudio extraído de Reels de outros criadores. Qualquer outro valor retorna `code: 101`.
</ParamField>

<ParamField query="limit" type="integer">
  Número máximo de faixas a retornar, de `1` a `100`. Valores não inteiros ou fora do intervalo
  retornam `code: 101`. Quando omitido, aplica-se o padrão do próprio Instagram.
</ParamField>

## Campos de resposta

O Instagram não retorna todos os campos para todas as faixas, portanto trate todos os campos da faixa, exceto `audioId`, como opcionais.

<ResponseField name="status" type="string">
  `success` quando a pesquisa foi concluída. Uma pesquisa sem correspondências no catálogo ainda é um sucesso.
</ResponseField>

<ResponseField name="query" type="string">
  A palavra-chave pesquisada, ecoada de volta.
</ResponseField>

<ResponseField name="audio" type="array">
  Faixas correspondentes. Um array vazio significa que a pesquisa foi executada e não encontrou nada.

  <Expandable title="Campos da faixa">
    <ResponseField name="audioId" type="string">
      O id a passar como `audioConfiguration.audioId` ao publicar um Reel.
    </ResponseField>

    <ResponseField name="title" type="string">Título da faixa.</ResponseField>
    <ResponseField name="displayArtist" type="string">Nome do artista conforme o Instagram o exibe.</ResponseField>
    <ResponseField name="durationMs" type="integer">Duração da faixa em milissegundos.</ResponseField>
    <ResponseField name="thumbnailUrl" type="string">URL do thumbnail da arte de capa.</ResponseField>
    <ResponseField name="audioType" type="string">`music` ou `original_sound`.</ResponseField>

    <ResponseField name="isAdsEligible" type="boolean">
      Se a faixa pode ser usada em um anúncio. Músicas licenciadas frequentemente não estão disponíveis
      para anúncios mesmo quando estão disponíveis para um Reel orgânico.
    </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>

## Erros

| Code | Significado                                                                                                                                                                                        |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 101  | `query` ausente ou vazio, um `audioType` não reconhecido ou um `limit` fora do intervalo de 1 a 100.                                                                                               |
| 156  | O Instagram não está vinculado a este perfil.                                                                                                                                                      |
| 161  | A autorização do Instagram expirou ou foi revogada. Revincule a conta.                                                                                                                             |
| 239  | O Instagram rejeitou a requisição por um motivo em nível de conta, incluindo uma faixa indisponível. Na pesquisa, isso é reportado como 239, e não como o 517 retornado pelo endpoint de consulta. |
| 258  | O Instagram retornou uma resposta malformada ou uma falha não mapeada.                                                                                                                             |
| 425  | A conexão está sem uma permissão obrigatória do Instagram. Revincule e conceda todas as permissões.                                                                                                |
| 435  | O limite de taxa do Instagram foi atingido. Aguarde antes de tentar novamente.                                                                                                                     |
| 514  | O Instagram está vinculado com Instagram Login. A Audio API exige Facebook Login.                                                                                                                  |

Os códigos 514 a 518 estão descritos em [Erros de áudio de Reels do Instagram](/docs/errors/errors-ayrshare#instagram-reels-audio-errors); os demais estão na [referência de erros do Ayrshare](/docs/errors/errors-ayrshare).

## Próximos passos

<Card title="Anexar a faixa a um Reel" icon="music" href="/docs/apis/post/social-networks/instagram#adding-music-to-a-reel" horizontal />

<Card title="Consultar uma única faixa" icon="magnifying-glass" href="/docs/apis/media/get-instagram-audio" horizontal />
