---
title: "Khảo sát duy nhất nên mời người dùng làm lúc này (banner / bottom sheet)"
method: GET
path: "/surveys/next"
tags: ["Surveys"]
---

# Khảo sát duy nhất nên mời người dùng làm lúc này (banner / bottom sheet)

`GET /surveys/next`

## Request

- Base URL: `https://api.fireant.vn`
- URL: `https://api.fireant.vn/surveys/next`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireant/apis/fireant-restful-api/docs/surveys/next/get.ts> (a function with typed inputs; its response is checked against the schema)

Server chọn theo quy tắc: đang hiệu lực, đúng đối tượng, displayMode Banner (1) hoặc Prompt (2),
chưa trả lời, chưa bỏ qua (Để sau còn hạn / Không quan tâm). Thứ tự ưu tiên: đang có bản nháp (hasDraft) -&gt;
priority cao -&gt; sắp hết hạn -&gt; mới publish. Client dùng displayMode để quyết định hiện banner hay bottom sheet,
dismissible để hiện nút "Để sau" / "Không quan tâm". Khách chưa đăng nhập truyền anonymousId: nhận khảo sát ẩn danh
hoặc khảo sát yêu cầu đăng nhập có showToGuests = true (client hiện "Đăng nhập để tham gia" khi isAnonymous = false).

## Query parameters

- `anonymousId` string
- `platform` string
- `appVersion` string
- `targetAudience` string
- `targetType` string
- `targetKey` string

## Response `200`

Khảo sát nên hiển thị

- FireAntApiModelsSurveysSurveyItem: Thông tin tóm tắt một khảo sát (dùng cho danh sách)
  - `surveyId` integer: ID khảo sát
  - `code` string: Mã/slug khảo sát (tùy chọn)
  - `title` string: Tiêu đề
  - `description` string: Mô tả
  - `thankYouMessage` string: Lời cảm ơn hiển thị sau khi gửi
  - `imageUrl` string: Ảnh minh họa
  - `status` 0 | 1 | 2 | 3: Trạng thái (0 = Draft, 1 = Published, 2 = Closed, 3 = Archived)
  - `isAnonymous` boolean: Cho phép trả lời không cần đăng nhập
  - `allowMultipleResponses` boolean: Cho phép một người trả lời nhiều lần
  - `showResults` boolean: Cho phép người trả lời xem kết quả tổng hợp
  - `startDate` string, date-time: Thời điểm bắt đầu nhận phản hồi (null = ngay khi publish)
  - `endDate` string, date-time: Thời điểm kết thúc nhận phản hồi (null = không giới hạn)
  - `maxResponses` integer: Số phản hồi tối đa (null = không giới hạn)
  - `targetAudience` string: Nhóm đối tượng (all, premium, ios, android...)
  - `priority` integer: Ưu tiên hiển thị (cao hơn lên trước)
  - `displayMode` 0 | 1 | 2: Cách hiển thị trên App/Web: 0 ListOnly, 1 Banner, 2 Prompt (0 = ListOnly, 1 = Banner, 2 = Prompt)
  - `dismissible` boolean: Cho phép người dùng "Để sau" / "Không quan tâm"
  - `snoozeDays` integer: Số ngày ẩn khảo sát khi người dùng chọn "Để sau"
  - `showToGuests` boolean: Khảo sát yêu cầu đăng nhập vẫn hiện với khách chưa đăng nhập (client mời đăng nhập khi bấm vào)
  - `presentationMode` 0 | 1 | 2: Chế độ trình bày: 0 cuộn một trang, 1 mỗi Section một trang, 2 mỗi câu một màn hình (0 = Scroll, 1 = SectionPages, 2 = OneByOne)
  - `settings` FireAntApiModelsSurveysSurveySettings: Thiết lập trình bày của khảo sát (JSON trong Surveys.Settings). Client dùng; bỏ trống = mặc định.
    - `autoAdvance` boolean: Tự chuyển sang câu sau khi chọn xong câu chọn một / Có-Không / thang điểm (chế độ từng câu). Mặc định true
    - `showWelcome` boolean: Hiện màn hình mở đầu (ảnh bìa, thời gian ước tính, nút Bắt đầu) ở chế độ từng câu. Mặc định true
    - `showProgress` boolean: Hiện thanh tiến độ. Mặc định true
    - `allowBack` boolean: Cho quay lại câu trước. Mặc định true
    - `celebrate` boolean: Hiệu ứng chúc mừng khi hoàn thành. Mặc định true
    - `showQuestionNumbers` boolean: Hiện số thứ tự câu hỏi. Mặc định true
    - `accentColor` string: Màu nhấn của khảo sát (#RRGGBB). Bỏ trống = màu thương hiệu của ứng dụng
    - `welcomeTitle` string: Tiêu đề màn hình mở đầu (bỏ trống = tiêu đề khảo sát)
    - `welcomeButton` string: Nhãn nút bắt đầu (bỏ trống = "Bắt đầu")
    - `estimatedMinutes` integer: Thời gian ước tính (phút) ghi đè cách tính tự động
  - `isDismissed` boolean: Người dùng hiện tại đang bỏ qua khảo sát này (Để sau còn hạn hoặc Không quan tâm)
  - `dismissedUntil` string, date-time: Ẩn đến thời điểm này (null nếu không bỏ qua hoặc ẩn hẳn)
  - `dismissCount` integer: Số người đã bỏ qua khảo sát (admin)
  - `targetCount` integer: Số đối tượng khảo sát được gắn vào (0 = khảo sát chung)
  - `targetSummary` string: Tóm tắt đối tượng gắn kèm cho admin, ví dụ "symbol:FPT, post:40203799"
  - `targets` FireAntApiModelsSurveysSurveyTargetItem[]: Đối tượng gắn kèm (có trong chi tiết và danh sách người dùng cuối)
    - `targetId` integer: ID bản ghi
    - `surveyId` integer: ID khảo sát
    - `targetType` string: Loại đối tượng (chữ thường): post, symbol, room, user, event, article, url...
    - `targetKey` string: Khóa đối tượng: postId, mã CK (viết hoa), roomId, userId, URL...
    - `orderIndex` integer: Thứ tự hiển thị
  - `questionCount` integer: Số câu hỏi
  - `responseCount` integer: Số phản hồi đã nhận
  - `hasResponded` boolean: Người dùng hiện tại đã trả lời khảo sát này chưa
  - `hasDraft` boolean: Người dùng hiện tại đang có bản nháp chưa gửi
  - `draftCount` integer: Số bản nháp đang tồn tại (admin)
  - `isActive` boolean: Khảo sát đang trong thời gian nhận phản hồi
  - `createdBy` string: Người tạo
  - `createdDate` string, date-time: Ngày tạo
  - `updatedBy` string: Người cập nhật cuối
  - `updatedDate` string, date-time: Ngày cập nhật cuối
  - `publishedDate` string, date-time: Ngày publish
  - `closedDate` string, date-time: Ngày đóng
  - `isDeleted` boolean: Đã xóa mềm

## Other responses

- `204`: Không có khảo sát nào cần mời
- `401`: Chưa đăng nhập và không có anonymousId

## Changes

- **2026-09-25** `a481789cd81c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fireant/apis/fireant-restful-api/changes/surveys/next/get.md)

---

[API](https://skmtc.dev/fireant/apis/fireant-restful-api.md) - [All operations](https://skmtc.dev/fireant/apis/fireant-restful-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireant/apis/fireant-restful-api/revisions/c9b3aa855f95?raw)
