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

# ऑटोमेशन गतिविधि प्राप्त करें

> एक ऑटोमेशन के लिए कर्सर-पेजिनेटेड ऑडिट लॉग

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", "enterprise"]} maxPackRequired={false} />

<Note>
  **बीटा।** पूर्ण फ़ीचर विवरण के लिए [Automations Overview](/apis/automations/overview) देखें।
</Note>

एक ऑटोमेशन के लिए हर डिस्पैच प्रयास को लौटाता है, सबसे नया पहले। प्रत्येक पंक्ति प्राप्तकर्ता, मिलान किए गए ट्रिगर, प्रत्येक क्रिया के परिणाम और किसी भी त्रुटि को रिकॉर्ड करती है।

पिछले **30 दिनों** की पंक्तियाँ लौटाई जाती हैं। पुरानी पंक्तियाँ Firestore में मौजूद हैं (एनालिटिक्स के लिए धारण अनिश्चित है) लेकिन प्रदर्शन के लिए इस एंडपॉइंट से बाहर रखी गई हैं।

## गतिविधि पंक्ति की स्थिति

प्रत्येक पंक्ति में शीर्ष-स्तरीय `status` के साथ-साथ `actionResults[]` के अंदर प्रति-क्रिया `status` होती है।

| स्थिति         | कब रिकॉर्ड की जाती है                                                                                                             |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `pending`      | पंक्ति अभी लिखी गई थी; वर्कर ने अभी तक इसे नहीं उठाया है                                                                          |
| `in_flight`    | वर्कर वर्तमान में डिस्पैच कर रहा है                                                                                               |
| `sent`         | हर क्रिया सफल हुई                                                                                                                 |
| `failed`       | कम से कम एक क्रिया विफल हुई (और किसी को प्रमाणीकरण त्रुटि नहीं मिली)                                                              |
| `auth_error`   | Instagram एक्सेस टोकन अमान्य था; DM पुनः प्रयास नहीं किया गया                                                                     |
| `rate_limited` | दैनिक DM सीमा (टियर या प्रति-प्रोफ़ाइल) पूरी हो गई। कोई DM नहीं भेजा गया                                                          |
| `deduplicated` | यह क्रिया पहले ही इस प्राप्तकर्ता को इसकी डेडअप विंडो के भीतर भेजी जा चुकी थी (डिफ़ॉल्ट 7 दिन, प्रति-क्रिया कॉन्फ़िगर करने योग्य) |
| `skipped`      | फैन-आउट और डिस्पैच के बीच ऑटोमेशन निष्क्रिय हो गया या हटा दिया गया                                                                |

`pending` और `in_flight` क्षणिक हैं; बाकी सब टर्मिनल हैं।

## हेडर पैरामीटर

<HeaderAPI noProfileKey={false} />

## पाथ पैरामीटर

<ParamField path="id" type="string" required>
  `POST /automations` से लौटाई गई ऑटोमेशन ID।
</ParamField>

## क्वेरी पैरामीटर

<ParamField query="limit" type="number" default={25}>
  पेज साइज़। डिफ़ॉल्ट `25`, अधिकतम `100`। `[1, 100]` के बाहर के मान क्लैम्प किए जाते हैं; गैर-पूर्णांक या `≤0` HTTP 400 लौटाता है।
</ParamField>

<ParamField query="next" type="string">
  पिछली प्रतिक्रिया के `meta.pagination.next` से अपारदर्शी कर्सर। पहले अनुरोध पर छोड़ दें।

  केवल-आगे — `?previous=` पास करने पर HTTP 400 लौटाता है।
</ParamField>

## प्रतिक्रिया आकार

प्रतिक्रिया परिणाम सूची को `activity[]` में और कर्सर जानकारी को `meta.pagination` में लपेटती है:

```json theme={"system"}
{
  "status": "success",
  "automationId": "auto_9xKp2Lm4nQ",
  "activity": [ /* …rows, newest first… */ ],
  "meta": {
    "pagination": {
      "hasMore": true,
      "limit": 25,
      "next": "eyJ0aW1lIjoiMjAyNi0wNS0xMlQwOTowMDoxMS4wMDBaIiwiaWQiOiJhdXRvXzl4S3AyTG00blE6dHJnX2ExYjJjMzpjb21tZW50X3JlY2VpdmVkOjE4MDEyMzQ1Njc4OTAwMDAwIn0="
    }
  }
}
```

`meta.pagination.next` एक base64-एन्कोडेड अपारदर्शी ब्लॉब है — इसे एक ब्लैक बॉक्स के रूप में मानें और अगले अनुरोध के `?next=` में अपरिवर्तित पास करें। जब कम से कम एक और पेज मौजूद हो तो `meta.pagination.hasMore` `true` होता है।

<RequestExample>
  ```bash cURL — पहला पेज theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET "https://api.ayrshare.com/api/automations/auto_9xKp2Lm4nQ/activity?limit=25"
  ```

  ```bash cURL — अगला पेज theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET "https://api.ayrshare.com/api/automations/auto_9xKp2Lm4nQ/activity?limit=25&next=eyJ0aW1lIjoiMjAyNi0wNS0xMlQw..."
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";
  const id = "auto_9xKp2Lm4nQ";

  // Paginate through every page
  let next;
  do {
    const url = new URL(`https://api.ayrshare.com/api/automations/${id}/activity`);
    url.searchParams.set("limit", "25");
    if (next) url.searchParams.set("next", next);

    const res = await fetch(url, {
      headers: { "Authorization": `Bearer ${API_KEY}` },
    });
    const json = await res.json();
    console.log(json.activity);
    next = json.meta?.pagination?.hasMore ? json.meta.pagination.next : undefined;
  } while (next);
  ```

  ```python Python theme={"system"}
  import requests

  headers = {"Authorization": "Bearer API_KEY"}
  automation_id = "auto_9xKp2Lm4nQ"

  params = {"limit": 25}
  while True:
      r = requests.get(
          f"https://api.ayrshare.com/api/automations/{automation_id}/activity",
          params=params,
          headers=headers,
      ).json()
      print(r["activity"])
      pagination = r.get("meta", {}).get("pagination", {})
      if not pagination.get("hasMore"):
          break
      params["next"] = pagination["next"]
  ```

  ```php PHP theme={"system"}
  $id = "auto_9xKp2Lm4nQ";
  $curl = curl_init();

  curl_setopt_array($curl, [
      CURLOPT_URL => "https://api.ayrshare.com/api/automations/" . $id . "/activity?limit=25",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => "GET",
      CURLOPT_HTTPHEADER => ["Authorization: Bearer API_KEY"],
  ]);

  $response = curl_exec($curl);
  curl_close($curl);
  echo $response;
  ```
</RequestExample>

<ResponseExample>
  ```json 200: सफलता theme={"system"}
  {
    "status": "success",
    "automationId": "auto_9xKp2Lm4nQ",
    "activity": [
      {
        "id": "auto_9xKp2Lm4nQ:trg_a1b2c3:18012345678901234",
        "automationId": "auto_9xKp2Lm4nQ",
        "triggerId": "trg_a1b2c3",
        "triggerType": "comment_keyword",
        "recipientId": "17841401234567890",
        "recipientUsername": "jane_doe",
        "eventId": "18012345678901234",
        "platform": "instagram",
        "status": "sent",
        "actionResults": [
          {
            "actionId": "act_d4e5f6",
            "type": "send_dm",
            "status": "sent",
            "completedAt": "2026-05-12T09:14:48.000Z"
          }
        ],
        "keyword": "LINK",
        "commentText": "Send me the LINK please!",
        "created": "2026-05-12T09:14:22.000Z",
        "completedAt": "2026-05-12T09:14:48.000Z"
      },
      {
        "id": "auto_9xKp2Lm4nQ:trg_a1b2c3:18012345678900000",
        "automationId": "auto_9xKp2Lm4nQ",
        "triggerId": "trg_a1b2c3",
        "triggerType": "comment_keyword",
        "recipientId": "17841409876543210",
        "recipientUsername": "repeat_user",
        "eventId": "18012345678900000",
        "platform": "instagram",
        "status": "deduplicated",
        "actionResults": [],
        "keyword": "LINK",
        "commentText": "LINK again please",
        "created": "2026-05-12T09:00:11.000Z",
        "completedAt": "2026-05-12T09:00:34.000Z"
      }
    ],
    "meta": {
      "pagination": {
        "hasMore": true,
        "limit": 25,
        "next": "eyJ0aW1lIjoiMjAyNi0wNS0xMlQwOTowMDoxMS4wMDBaIiwiaWQiOiJhdXRvXzl4S3AyTG00blE6dHJnX2ExYjJjMzoxODAxMjM0NTY3ODkwMDAwMCJ9"
      }
    }
  }
  ```

  ```json 400: गलत limit theme={"system"}
  {
    "status": "error",
    "message": "limit must be a positive integer"
  }
  ```

  ```json 400: पिछला पेजिनेशन समर्थित नहीं theme={"system"}
  {
    "status": "error",
    "message": "'previous' pagination is not supported by this endpoint"
  }
  ```

  ```json 404: नहीं मिला theme={"system"}
  {
    "action": "automation",
    "status": "error",
    "code": 469,
    "message": "Automation not found"
  }
  ```
</ResponseExample>
