# Quest Management

#### **API Functions**

* Get all quests:

  ```javascript
  function getCommunityQuests(api: AxiosInstance, id: string, filters?: Filters);
  ```
* Get quest details:

  ```javascript
  function getQuestDetails(api: AxiosInstance, id: string);
  ```
* Submit quest:

  ```javascript
  function postCompleteQuest(api: AxiosInstance, id: string, payload: Payload);
  ```

***

#### **Headless Quest Components**

* **Quest Page**:

  ```javascript
  import { ListQuests } from "@xborglabs/ui-shared/dist/client";

  <ListQuests communityId={community.communityId}>
    {({ filters, data, status }) => (
      <>
        <QuestFilterBar filters={filters} />
        <CommunityCategorizedQuests quests={data} status={status} />
      </>
    )}
  </ListQuests>

  ```
* **Quest Detail Page**:

  ```javascript
  import { QuestDetail } from "@xborglabs/ui-shared/dist/client";

  <QuestDetail qid={questId as string}>
    {({ context }) => <></>}
  </QuestDetail>
  ```
