> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bvndle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get all Rules

> Get all created Rules with this endpoint. You can also filter by status.

export const Table = ({data = []}) => <div className="text-sm font-mono">
    <div style={{
  gap: 10,
  display: "grid",
  padding: "5px 10px",
  backgroundColor: "#F7F9FB",
  color: "rgba(25,27,31,0.6)",
  gridTemplateColumns: "repeat(3, minmax(0, 1fr))"
}}>
      <span>name</span>
      <span>type</span>
      <span>Description</span>
    </div>
    {data?.map((item, idx) => <div key={idx} style={{
  gap: 10,
  display: "grid",
  padding: "8px 10px",
  color: "rgba(25,27,31,0.8)",
  gridTemplateColumns: "repeat(3, minmax(0, 1fr))"
}}>
        <span className="break-words">{item.name}</span>
        <span>{item.type}</span>
        <span>{item.desc}</span>
      </div>)}
  </div>;

export const URLBlock = ({url = "", content = [], cannotCopy = false, title = ""}) => {
  return <div style={{
    backgroundColor: "#6B3B900A",
    borderRadius: "8px",
    borderColor: "#F8F8F8"
  }} className="flex flex-col gap-4 border p-6">
      {title && <p className="font-bold text-2xl" style={{
    color: "#1C1C1C",
    marginBlock: "0px"
  }}>
          {title || ""}
        </p>}

      <div className="flex flex-col [&>*]:my-0 gap-2">
        <div className="flex items-center justify-between [&>*]:my-0" style={{
    height: "fit-content"
  }}>
          <span className="font-bold" style={{
    color: "#1C1C1CCC",
    marginBlock: "0px"
  }}>
            URL
          </span>
          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" onClick={async () => {
    await navigator.clipboard.writeText(url);
    alert("Link copied!");
  }}>
            <path d="M6 10C6 8.1144 6 7.1716 6.58579 6.58579C7.1716 6 8.1144 6 10 6H10.6667C12.5523 6 13.4951 6 14.0809 6.58579C14.6667 7.1716 14.6667 8.1144 14.6667 10V10.6667C14.6667 12.5523 14.6667 13.4951 14.0809 14.0809C13.4951 14.6667 12.5523 14.6667 10.6667 14.6667H10C8.1144 14.6667 7.1716 14.6667 6.58579 14.0809C6 13.4951 6 12.5523 6 10.6667V10Z" stroke="#191B1F" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round" />
            <path d="M11.3334 6.00016C11.3318 4.02877 11.302 3.00764 10.7282 2.30845C10.6174 2.17342 10.4936 2.04962 10.3586 1.9388C9.62096 1.3335 8.52516 1.3335 6.3335 1.3335C4.14184 1.3335 3.04602 1.3335 2.30845 1.9388C2.17342 2.04961 2.04962 2.17342 1.9388 2.30845C1.3335 3.04602 1.3335 4.14184 1.3335 6.3335C1.3335 8.52516 1.3335 9.62096 1.9388 10.3586C2.04961 10.4936 2.17342 10.6174 2.30845 10.7282C3.00764 11.302 4.02877 11.3318 6.00016 11.3334" stroke="#191B1F" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round" />
          </svg>
        </div>
        <p className="font-medium text-sm border-none" style={{
    color: "#DC5695",
    marginBlock: "0px"
  }}>
          {url}
        </p>
      </div>

      {content.length > 0 && content.map((item, idx) => <div key={idx} className="flex flex-col [&>*]:my-0 gap-2 text-sm">
            <div className="flex items-center justify-between [&>*]:my-0" style={{
    height: "fit-content"
  }}>
              <span className="font-bold" style={{
    color: "#1C1C1CCC",
    marginBlock: "0px"
  }}>
                {item?.title || ""}
              </span>
              {!cannotCopy && <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" onClick={async () => {
    await navigator.clipboard.writeText(item.caption);
    alert("content copied!");
  }}>
                  <path d="M6 10C6 8.1144 6 7.1716 6.58579 6.58579C7.1716 6 8.1144 6 10 6H10.6667C12.5523 6 13.4951 6 14.0809 6.58579C14.6667 7.1716 14.6667 8.1144 14.6667 10V10.6667C14.6667 12.5523 14.6667 13.4951 14.0809 14.0809C13.4951 14.6667 12.5523 14.6667 10.6667 14.6667H10C8.1144 14.6667 7.1716 14.6667 6.58579 14.0809C6 13.4951 6 12.5523 6 10.6667V10Z" stroke="#191B1F" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round" />
                  <path d="M11.3334 6.00016C11.3318 4.02877 11.302 3.00764 10.7282 2.30845C10.6174 2.17342 10.4936 2.04962 10.3586 1.9388C9.62096 1.3335 8.52516 1.3335 6.3335 1.3335C4.14184 1.3335 3.04602 1.3335 2.30845 1.9388C2.17342 2.04961 2.04962 2.17342 1.9388 2.30845C1.3335 3.04602 1.3335 4.14184 1.3335 6.3335C1.3335 8.52516 1.3335 9.62096 1.9388 10.3586C2.04961 10.4936 2.17342 10.6174 2.30845 10.7282C3.00764 11.302 4.02877 11.3318 6.00016 11.3334" stroke="#191B1F" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round" />
                </svg>}
            </div>
            {item.caption}
          </div>)}
    </div>;
};

####

<URLBlock
  url="https://test-api.bvndle.com/api/v1/laas/rules"
  content={[
{ title: "HTTP Method", caption: "GET" },
{
  title: "Authorization Header",
  caption: "Bearer ACCESS_TOKEN",
},
]}
/>

####

<Table
  data={[
{
  name: "limit",
  type: "number",
  desc: "Optional - Maximum number of record to get",
},
{
  name: "page",
  type: "number",
  desc: "Optional",
},
{
  name: "status",
  type: "string",
  desc: "Optional - Status To Filter By e.g active e.g inactive",
},
]}
/>

```bash cURL theme={null}
curl --request GET 'https://test-api.bvndle.com/api/v1/laas/rules/create-rule' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--data-raw '{
  "name": "Transaction Drive",
  "coinValue": "10",
  "maxNumberOfParticipant": "20000",
  "condition": "User makes 5 transactions"
}
{
  "userId": "f0c8c81d-13d3-4515-b40f-711ef91de094",
  "ruleName": "transaction drive"
}'
```

### URLs

```bash Get All (Uses default limit and page) theme={null}
https://test-api.bvndle.com/api/v1/laas/rules
```

```bash Get All with your limit and Page theme={null}
https://test-api.bvndle.com/api/v1/laas/rules?limit=100&page=1
```

```bash Get Active Rules theme={null}
https://test-api.bvndle.com/api/v1/laas/rules?limit=100&page=1
```

```bash Get Inactive Rules theme={null}
https://test-api.bvndle.com/api/v1/laas/rules?limit=100&page=1
```

<ResponseExample>
  ```json Success theme={null}
  {
    "status": "success",
    "message": "request successful",
    "data": {
      "data": [
        {
          "id": "bddd3fec-edbd-4fd9-8519-07d4a309d395",
          "name": "edited rule name",
          "coinValue": "10",
          "condition": "user writes 5 lines",
          "maxNumberOfParticipant": "20000",
          "status": "active",
          "userId": "e84fbe98-5dfa-4294-b39f-72ae0a5e1db4"
        },
        {
          "id": "35d7f062-e1c8-4285-82a9-065716cee46c",
          "name": "ogogoro",
          "coinValue": "5000",
          "condition": "drink 5litres of eagle schnapps",
          "maxNumberOfParticipant": "10",
          "status": "active",
          "userId": "e84fbe98-5dfa-4294-b39f-72ae0a5e1db4"
        },
        {
          "id": "8b2be577-3d0a-4c95-96b2-5bb687de6215",
          "name": "signup drive edited",
          "coinValue": "20",
          "condition": "Create account on our app",
          "maxNumberOfParticipant": "30000",
          "status": "inactive",
          "userId": "e84fbe98-5dfa-4294-b39f-72ae0a5e1db4"
        },
        {
          "id": "83ca0a27-9c42-4d3c-8455-ddb185082ed8",
          "name": "transaction drive",
          "coinValue": "10",
          "condition": "user makes 5 transactions",
          "maxNumberOfParticipant": "2",
          "status": "active",
          "userId": "e84fbe98-5dfa-4294-b39f-72ae0a5e1db4"
        }
      ],
      "count": 4,
      "currentpage": 1,
      "nextpage": null,
      "prevpage": null,
      "lastpage": 1
    }
  }
  ```
</ResponseExample>
