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

# Metadatos de un audio de Instagram

> Consulta los detalles de una sola pista de audio de Instagram por su id

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

Recupera los detalles de una pista de audio por su `audioId`. Úsalo para confirmar que un id almacenado sigue siendo válido, o para mostrar el título y la carátula de una pista antes de publicar.

<InstagramAudioNotice />

## Parámetros del header

<HeaderAPI />

## Parámetros de ruta

<ParamField path="audioId" type="string" required>
  El id de la pista, tal como lo devuelve la [búsqueda de audio](/docs/apis/media/search-instagram-audio). Un id
  que Instagram no reconoce devuelve `code: 517`.
</ParamField>

## Campos de respuesta

Los campos de la pista se devuelven de forma plana en el objeto de respuesta, no anidados. Instagram no devuelve todos los campos para todas las pistas, así que trata todos los campos excepto `audioId` como opcionales.

<ResponseField name="status" type="string">`success` cuando la pista fue encontrada.</ResponseField>
<ResponseField name="audioId" type="string">El id de la pista, devuelto como eco.</ResponseField>
<ResponseField name="title" type="string">Título de la pista.</ResponseField>
<ResponseField name="displayArtist" type="string">Nombre del artista tal como lo muestra Instagram.</ResponseField>
<ResponseField name="durationMs" type="integer">Duración de la pista en milisegundos.</ResponseField>
<ResponseField name="thumbnailUrl" type="string">URL de la miniatura de la carátula.</ResponseField>
<ResponseField name="audioType" type="string">Puede ser `music` u `original_sound`.</ResponseField>

<ResponseField name="isAdsEligible" type="boolean">
  Si la pista puede usarse en un anuncio.
</ResponseField>

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

  ```json 400: Track unavailable theme={"system"}
  {
    "status": "error",
    "code": 517,
    "action": "post",
    "message": "The selected audio track is unavailable. It may be an invalid audio id, restricted in your region, or not licensed for this use. Please choose a different track using the Instagram audio search endpoint and try again.",
    "platform": "instagram"
  }
  ```
</ResponseExample>

<Note>
  **La disponibilidad depende de la región.** Meta devuelve el mismo error para un id que no existe,
  uno sin licencia en la región de la cuenta y uno sin licencia para este uso. Los tres reportan `517`,
  por lo que una pista que se resuelve para una cuenta puede fallar legítimamente para otra.
  Consulta un id en lugar de asumir que uno almacenado sigue funcionando.
</Note>

## Errores

| Código | Significado |
| - | - |
| 156 | Instagram no está vinculado a este perfil. |
| 161 | La autorización de Instagram expiró o fue revocada. Vuelve a vincular la cuenta. |
| 239 | Instagram rechazó la solicitud por un motivo a nivel de cuenta. |
| 258 | Instagram devolvió una respuesta malformada o un fallo no mapeado. |
| 425 | A la conexión le falta un permiso requerido de Instagram. Vuelve a vincular y concede todos los permisos. |
| 435 | Se alcanzó el límite de tasa de Instagram. Espera antes de reintentar. |
| 514 | Instagram está vinculado con Instagram Login. La Audio API requiere Facebook Login. |
| 516 | El `audioId` falta o está vacío. |
| 517 | Instagram no reconoce el id, o la pista no está disponible para esta cuenta. |

Los códigos 514 a 518 se describen en [Errores de audio de Instagram Reels](/docs/errors/errors-ayrshare#instagram-reels-audio-errors); el resto están en la [referencia de errores de Ayrshare](/docs/errors/errors-ayrshare).

## Próximos pasos

<Card title="Busca una pista" icon="magnifying-glass" href="/docs/apis/media/search-instagram-audio" horizontal />

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.