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

# Analytics d'une publication par ID social

> Obtenez des analyses en temps réel pour des publications à l'aide de l'ID de publication social

export const XByoNotice = () => <Info>
  <strong>Targeting X/Twitter?</strong> Starting March 31, 2026, all X operations require your own API credentials. After linking X via OAuth, include these 2 headers in your request:
  <br /><br />
  <code>X-Twitter-OAuth1-Api-Key</code> — Your API Key (Consumer Key)<br />
  <code>X-Twitter-OAuth1-Api-Secret</code> — Your API Key Secret (Consumer Secret)
  <br /><br />
  <strong>One-time setup per Ayrshare account.</strong> You create one X Developer App and reuse the same API Key and Secret across every sub-profile / end-user you link. You do <em>not</em> create a new app per customer.
  <br /><br />
  Not linked yet? See the <a href="/dashboard/connect-social-accounts/x-twitter-byo-keys">full setup guide</a> to connect your X account.
  <br /><br />
  Your keys are never logged or stored by Ayrshare.
</Info>;

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="/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="/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="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

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

<XByoNotice />

Récupérez les analyses des publications qui n'ont pas été créées via Ayrshare en fournissant l'[ID de publication social](/apis/overview#social-post-id) de bas niveau.
Cet ID est retourné dans le champ `postIds` du [point de terminaison /post](/apis/post/post).

Le compte lié doit être le propriétaire de la publication pour récupérer les analyses (exception : YouTube ; voir ci-dessous). Plateformes prises en charge : `Facebook`, `Instagram`, `LinkedIn`, `Threads`, `TikTok`, `Twitter` et `YouTube`.

<ul className="custom-bullets">
  <li>
    L'appel est le même que celui du [point de terminaison Analytics d'une publication](/apis/analytics/post). La différence
    clé est que vous utilisez l'ID de publication retourné par le réseau social au lieu de l'ID Ayrshare. Incluez
    également le paramètre `searchPlatformId: true` pour indiquer au point de terminaison que vous recherchez par
    l'ID de publication social.
  </li>

  <li>
    Utilisez le [point de terminaison Get All Post History](/apis/history/overview) pour récupérer les publications et les IDs
    provenant de l'extérieur d'Ayrshare, trouvés dans le champ `id`.
  </li>

  <li>
    Recommandé uniquement pour les publications non envoyées via Ayrshare. Pour les publications envoyées via Ayrshare, utilisez le
    [point de terminaison analytics](/apis/analytics/post).
  </li>

  <li>
    Les analyses des publications Instagram qui ont été publiées avant que le compte utilisateur ne soit converti en
    compte professionnel depuis un compte personnel ont des analyses limitées.
  </li>

  <li>
    Lors de la récupération des analyses YouTube pour une publication qui n'appartient pas à votre chaîne en utilisant
    la méthode d'ID social, l'API retournera des métadonnées descriptives sur le contenu tout en affichant des zéros pour
    toutes les métriques numériques. Les informations descriptives telles que le titre, la description, les tags, le titre de la chaîne,
    le statut de confidentialité et les URLs des vignettes seront correctement renseignées, fournissant un contexte sur le
    contenu vidéo. Cependant, toutes les métriques de performance numériques, y compris les vues, les mentions J'aime, les commentaires,
    les partages, les variations d'abonnés, la durée de visionnage et les ajouts aux playlists, retourneront des valeurs nulles.
  </li>

  <li>
    Lorsque vous utilisez `postIds` pour des fils X/Twitter, l'ID de publication social de chaque tweet doit être fourni
    individuellement ; les tweets du fil ne sont pas automatiquement inclus lors d'une requête sur la publication parente.
  </li>
</ul>

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

<HeaderAPI />

## Paramètres du corps

<Note>
  Soit `id`, soit `postIds` doit être fourni. Utilisez `id` pour une seule publication ou `postIds` pour récupérer les analyses de plusieurs publications dans une seule requête.
</Note>

<ParamField body="id" type="string">
  [ID de publication social](/apis/overview#social-post-id) retourné par le [point de terminaison
  /post](/apis/post/post). Il s'agit du champ `id` pour un réseau social individuel trouvé dans le
  tableau `postIds`. Soit `id`, soit `postIds` est requis.
</ParamField>

<ParamField body="postIds" type="array">
  Tableau d'[IDs de publication sociaux](/apis/overview#social-post-id) pour récupérer les analyses de plusieurs publications dans une seule requête. Maximum de 100 IDs autorisés. Soit `id`, soit `postIds` est requis.

  ```json theme={"system"}
  {
    "postIds": ["1979851549871354062", "2011793803951137234"]
  }
  ```
</ParamField>

<ParamField body="platforms" type="array" required>
  Tableau de chaînes des plateformes pour lesquelles récupérer les analyses. Une seule valeur est autorisée.

  Valeurs disponibles :

  ```json theme={"system"}
  {
    "platforms": ["facebook", "instagram", "linkedin", "threads",
                  "tiktok", "twitter", "youtube"]
  }
  ```
</ParamField>

<ParamField body="searchPlatformId" type="boolean" default={false} required>
  Définissez sur `true` pour effectuer la recherche par l'ID de publication social.
</ParamField>

<RequestExample>
  ```json Single Post theme={"system"}
  {
      // Facebook Social Post ID
      "id": "104923907983682_108329000309742",
      "platforms": [
        // Select only one platform at a time:
        // facebook, instagram, youtube, threads, tiktok, or twitter
          "facebook"
      ],
      "searchPlatformId": true // Required
  }
  ```

  ```json Multiple Posts theme={"system"}
  {
      // Array of Social Post IDs (max 100)
      "postIds": ["1979851549871354062", "2011793803951137234"],
      "platforms": [
        // Select only one platform at a time:
        // facebook, instagram, youtube, threads, tiktok, or twitter
          "twitter"
      ],
      "searchPlatformId": true // Required
  }
  ```
</RequestExample>

<Info>
  Lorsque les métriques cumulatives (p. ex. mentions J'aime, commentaires, vues) sont temporairement indisponibles depuis le réseau social, l'API les complète automatiquement à partir des données stockées. Deux champs optionnels peuvent apparaître dans l'objet `analytics` par plateforme :

  * **`backfilledFrom`** (string, ISO 8601) — Présent lorsqu'une ou plusieurs métriques cumulatives ont été substituées à partir des données stockées. L'horodatage indique la dernière mise à jour des données stockées.
  * **`recoveredFrom`** (string, ISO 8601) — Présent lorsque la réponse d'analyse entière a été récupérée à partir des données stockées en raison d'une panne complète de l'API. L'horodatage indique la dernière mise à jour des données stockées.

  Les données stockées de plus de 4 jours sont considérées comme obsolètes et ne seront pas utilisées pour le backfill ou la récupération.
</Info>

<ResponseExample>
  ```json 200: Single Post Response theme={"system"}
  {
    /**
      The response is the same as Analytics on a Post.
      Please see that endpoint for details.

      Note: Some metrics are not available for posts not owned by the authorized account.
      For example: X does not return non-public metrics or organic metrics for Tweets not sent by the authorized user.
    */
  }
  ```

  ```json 200: Multiple Posts Response theme={"system"}
  {
      "twitter": [
          {
              "id": "1313589441919827982",    // Twitter Social Post ID
              "postUrl": "https://www.twitter.com/myaccount/1313589441919827982",
              "analytics": {
                  "created": "2022-09-07T22:12:10.000Z",
                  "entities": {
                      "urls": [
                          {
                              "start": 77,
                              "end": 96,
                              "url": "https://t.co/abc123",
                              "expandedUrl": "https://www.ayrshare.com/docs",
                              "displayUrl": "ayrshare.com/docs",
                              "unwoundUrl": "https://www.ayrshare.com/docs"
                          }
                      ],
                      "hashtags": [
                          {
                              "start": 97,
                              "end": 112,
                              "tag": "SocialMediaAPI"
                          }
                      ],
                      "mentions": [
                          {
                              "start": 113,
                              "end": 122,
                              "username": "ayrshare"
                          }
                      ]
                  },
                  "name": "Wonder World",
                  "post": "Just launched our social media campaign using Ayrshare! Check out the API at https://t.co/abc123 #SocialMediaAPI @ayrshare",
                  "publicMetrics": {
                      "retweetCount": 0,
                      "quoteCount": 0,
                      "likeCount": 0,
                      "replyCount": 0,
                      "bookmarkCount": 0,
                      "impressionCount": 23
                  },
                  "nonPublicMetrics": {
                      "userProfileClicks": 1,
                      "engagements": 1,
                      "impressionCount": 5
                  },
                  "organicMetrics": {
                      "likeCount": 0,
                      "impressionCount": 5,
                      "replyCount": 0,
                      "retweetCount": 0,
                      "userProfileClicks": 1
                  },
                  "username": "wondrous"
              },
              "lastUpdated": "2022-04-23T18:44:29.778Z",
              "nextUpdate": "2022-04-23T19:19:29.778Z"
          },
          {
              "id": "1313589441919827999",    // Twitter Social Post ID
              "postUrl": "https://www.twitter.com/myaccount/1313589441919827999",
              "analytics": {
                  "created": "2022-09-08T14:30:00.000Z",
                  "name": "Wonder World",
                  "post": "Another great day for social media automation!",
                  "publicMetrics": {
                      "retweetCount": 5,
                      "quoteCount": 2,
                      "likeCount": 15,
                      "replyCount": 3,
                      "bookmarkCount": 1,
                      "impressionCount": 150
                  },
                  "nonPublicMetrics": {
                      "userProfileClicks": 8,
                      "engagements": 12,
                      "impressionCount": 145
                  },
                  "organicMetrics": {
                      "likeCount": 15,
                      "impressionCount": 145,
                      "replyCount": 3,
                      "retweetCount": 5,
                      "userProfileClicks": 8
                  },
                  "username": "wondrous"
              },
              "lastUpdated": "2022-04-23T18:44:29.778Z",
              "nextUpdate": "2022-04-23T19:19:29.778Z"
          }
      ],
      "status": "success",
      "code": 200
  }
  ```

  ```json 200: Backfilled Response theme={"system"}
  {
      "twitter": [
          {
              "id": "1313589441919827982",
              "postUrl": "https://www.twitter.com/myaccount/1313589441919827982",
              "analytics": {
                  "created": "2022-09-07T22:12:10.000Z",
                  "name": "Wonder World",
                  "post": "Just launched our social media campaign!",
                  "publicMetrics": {
                      "retweetCount": 5,
                      "quoteCount": 2,
                      "likeCount": 15,
                      "replyCount": 3,
                      "bookmarkCount": 1,
                      "impressionCount": 150
                  },
                  "username": "wondrous",
                  "backfilledFrom": "2026-04-08T14:30:00.000Z"
              },
              "lastUpdated": "2026-04-09T10:15:00.000Z",
              "nextUpdate": "2026-04-09T10:26:00.000Z"
          }
      ],
      "status": "success",
      "code": 200
  }
  ```

  ```json 200: Recovered Response theme={"system"}
  {
      "twitter": [
          {
              "id": "1313589441919827982",
              "postUrl": "https://www.twitter.com/myaccount/1313589441919827982",
              "analytics": {
                  "created": "2022-09-07T22:12:10.000Z",
                  "name": "Wonder World",
                  "post": "Just launched our social media campaign!",
                  "publicMetrics": {
                      "retweetCount": 5,
                      "quoteCount": 2,
                      "likeCount": 15,
                      "replyCount": 3,
                      "bookmarkCount": 1,
                      "impressionCount": 150
                  },
                  "username": "wondrous",
                  "recoveredFrom": "2026-04-08T14:30:00.000Z"
              },
              "lastUpdated": "2026-04-09T10:15:00.000Z",
              "nextUpdate": "2026-04-09T10:26:00.000Z"
          }
      ],
      "status": "success",
      "code": 200
  }
  ```

  ```json 400: Bad Request theme={"system"}
  {
      "lastUpdated": "2023-12-08T03:40:31.185Z",
      "nextUpdate": "2023-12-08T03:51:31.185Z",
      "youtube": {
          "action": "post",
          "status": "error",
          "code": 186,
          "message": "Post ID not found. Please verify the top level ID returned from the /post endpoint is being sent, the Profile Key is included if applicable, and the post at the social network has not been deleted. If you are trying to retrieve a post originating outside of Ayrshare, please use the /rest-api/endpoints/analytics#analytics-by-social-id",
          "id": "dtuu-jDp4381"
      }
  }
  ```
</ResponseExample>
