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

# Lấy hàng loạt tất cả

> Truy xuất dữ liệu người dùng cho tất cả user profile

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

Truy xuất dữ liệu người dùng cho tất cả user profile. Sử dụng endpoint batch làm giải pháp thay thế cho việc gọi endpoint /user cho từng người dùng của bạn liên tiếp, việc này có thể bị giới hạn bởi rate-limits.

Endpoint sẽ trả về một URL pre-signed cho tệp chứa tất cả dữ liệu user profile. Vui lòng lưu ý thời gian trong trường `urlAvailable` cho biết khi nào tệp sẽ có thể truy cập được.

URL pre-signed sẽ hết hạn sau 7 ngày kể từ khi tạo. Một tệp mới có thể được tạo mỗi 3 giờ.

Bạn cũng có thể được thông báo khi tệp sẵn sàng qua [webhook Batch Action](/apis/webhooks/actions#batch-action).

## Tham số Header

<HeaderAPI noProfileKey />

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
      "success": true,
      "url": "https://storage.googleapis.com/batch.ayrshare.com/users/9iskiedwtOddd/users-batch-2024-01-11-22-42.json",
      "urlAvailable": "2024-01-11T22:47:36Z",
      "urlExpires": "2024-01-18T22:42:36Z",
      "lastUpdated": "2024-01-11T22:42:36.808Z",
      "nextUpdate": "2024-01-11T22:54:36.808Z"
  }
  ```

  ```json 403: Forbidden theme={"system"}
  {
    "action": "authorization",
    "status": "error",
    "code": 102,
    "message": "API Key not valid. Please be sure to send a Header Authorization containing 'Bearer API_KEY'. .../ayrshare.com/rest-api/overview#authorization"
  }
  ```
</ResponseExample>
