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

# Xác thực JSON

> Gửi JSON để xác thực xem có được định dạng đúng hay không

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

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

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

Gửi JSON để xác thực xem có được định dạng đúng hay không.
Bạn có thể xác thực JSON của mình bằng cách sử dụng linter trực tuyến, như [https://jsonlint.com/](https://jsonlint.com/) hoặc bằng cách sử dụng [Postman](/testing/postman).

Nếu bạn sử dụng công cụ không cần code như Bubble hoặc Make hoặc nhận được phản hồi 500 "Bad Request", endpoint này hữu ích để debug yêu cầu JSON.

## Tham số Header

<HeaderAPI noProfileKey={true} />

<ul class="custom-bullets">
  <li>Gửi dữ liệu dưới dạng văn bản. Nếu sử dụng Postman, hãy chắc chắn chọn "Text" làm loại.</li>
  <li>Đặt `"Content-Type": "text/plain"`.</li>
</ul>

## Ví dụ yêu cầu

Gửi bất kỳ json nào đến endpoint này để xác thực nó.

Dưới đây là một ví dụ về JSON không hợp lệ khi sử dụng Postman. Bạn có thể phát hiện ra không? Thiếu dấu phẩy ở cuối tham số thứ hai `platforms`.

Hãy chắc chắn đặt `Content-Type` trong header là `text/plain` và chọn "Text" khi gửi.

<img class="center" src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/apis/validate/json.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=97c9aba02aba44ee47247c295523d259" alt="Postman Validate JSON" width="1200" height="610" data-path="images/apis/validate/json.webp" />

<RequestExample />

<ResponseExample>
  ```json 200: OK Valid JSON theme={"system"}
  {
      "status": "success",
      "message": "Valid JSON. Nice Job!"
  }
  ```

  ```json 400: Bad Request Invalid JSON theme={"system"}
  {
    "status": "error",
    "message": "JSON is not valid. Unexpected end of JSON input while parsing near '{\"test\": \"happy}'"
  }
  ```
</ResponseExample>
