API KeysCredits

Credits

Kiểm tra số dư Credits, gói tài khoản, hạn mức sử dụng và quyền truy cập tính năng bằng API Key.


Credits

Credits API giúp bạn kiểm tra tài khoản còn đủ tài nguyên để thực hiện các tác vụ trên Notex hay không.

Bạn có thể sử dụng API này để:

  • Hiển thị số Credits hiện có.
  • Xác định gói tài khoản hiện tại.
  • Theo dõi lượng tài nguyên đã sử dụng.
  • Kiểm tra giới hạn của từng loại tác vụ.
  • Xác định tính năng nào được bật trong gói hiện tại.

Base URL:

https://api.notexapp.com

Gửi API Key trong header X-API-Key:

-H "X-API-Key: ntx_live_..."

Mọi thông tin Credits và quota trả về đều thuộc tài khoản đã tạo API Key.

Response format

Các endpoint sử dụng response wrapper chung:

interface ApiResponse<T> {
  statusCode: number;
  message?: string;
  data: T;
}

Get credit information

GET /v2/credits/me

Trả về thông tin tổng quan về gói tài khoản và số Credits hiện có.

Endpoint này phù hợp khi bạn cần:

  • Hiển thị số dư Credits.
  • Kiểm tra tài khoản có phải người dùng trả phí hay không.
  • Xác định gói đang sử dụng.
  • Kiểm tra thời điểm gia hạn tiếp theo.
  • Kiểm tra trước khi gửi một tác vụ cần dùng Credits.

Request

Endpoint không yêu cầu query parameter hoặc request body.

curl https://api.notexapp.com/v2/credits/me \
  -H "X-API-Key: ntx_live_..."

Example response

{
  "statusCode": 200,
  "data": {
    "plan_code": "pro",
    "plan_name": "Pro",
    "total_credits": 1250,
    "reward_credits": 200,
    "purchased_credits": 500,
    "has_purchased": true,
    "is_paid_user": true,
    "renew_date": "2026-08-01T00:00:00Z"
  }
}

Response fields

FieldTypeDescription
plan_codestringMã gói tài khoản hiện tại
plan_namestringTên hiển thị của gói, nếu có
total_creditsnumberTổng số Credits khả dụng hiện tại
reward_creditsnumberCredits thưởng hoặc tích lũy, nếu có
purchased_creditsnumberCredits được mua thêm, nếu có
has_purchasedbooleanTài khoản đã từng mua gói hoặc Credits hay chưa
is_paid_userbooleanTài khoản có quyền truy cập tính năng trả phí hay không
renew_datestring | nullThời điểm gia hạn hoặc làm mới gói theo ISO 8601 UTC

Plan codes

Một số mã gói phổ biến:

plan_codeGói
freeFree
pro_litePro Lite
proPro
plusPlus
businessBusiness
business_plusBusiness Plus
lifetimeLifetime

Hệ thống có thể bổ sung thêm mã gói mới trong tương lai. Không nên giới hạn logic tích hợp chỉ trong danh sách trên.

TypeScript types


Get quota usage

GET /v2/credits/quota

Trả về hạn mức, mức sử dụng và quyền truy cập tính năng của tài khoản trong gói hiện tại.

Endpoint này phù hợp khi bạn cần:

  • Kiểm tra tài khoản còn bao nhiêu lượt hoặc phút sử dụng.
  • Hiển thị tiến độ sử dụng quota.
  • Kiểm tra giới hạn tối đa cho một note.
  • Xác định tính năng nào được gói hiện tại hỗ trợ.
  • Ngăn request vượt quá giới hạn trước khi gửi lên Notex.

Request

Endpoint không yêu cầu query parameter hoặc request body.

curl https://api.notexapp.com/v2/credits/quota \
  -H "X-API-Key: ntx_live_..."

Response structure

Quota được chia thành nhiều nhóm:

FieldÝ nghĩa
quota_snapshotHạn mức được cấp trong chu kỳ hiện tại
quota_per_note_snapshotSố lần có thể sử dụng từng tính năng trên một note
quota_lifetime_snapshotHạn mức được tính trong toàn bộ vòng đời tài khoản
per_note_capsGiới hạn tối đa cho một note hoặc một đầu vào
period_usage_counterSố tài nguyên đã sử dụng trong chu kỳ
features_snapshotTính năng được bật hoặc tắt theo gói

Example response

{
  "statusCode": 200,
  "data": {
    "plan_code": "pro",
    "quota_snapshot": {
      "notes": 200,
      "recording_minutes": 1000,
      "meeting_minutes": 500,
      "nova_chat_single_note": 300
    },
    "quota_per_note_snapshot": {
      "create_mindmap": 3,
      "create_slideshow": 2,
      "create_flashcards_sets": 5,
      "create_quizzes_sets": 5,
      "create_podcast": 1,
      "note_translation": 3
    },
    "quota_lifetime_snapshot": {
      "live_transcribe": 100
    },
    "per_note_caps": {
      "recording_minutes_per_note": 180,
      "youtube_max_duration": 7200,
      "document_max_megabytes": 100,
      "images_max_input": 20
    },
    "period_usage_counter": {
      "recording_minutes_used": 320,
      "meeting_minutes_used": 120,
      "notes_created": 46,
      "nova_chat_single_note": 80
    },
    "periodStartDate": "2026-07-01T00:00:00Z",
    "resetDate": "2026-08-01T00:00:00Z",
    "features_snapshot": {
      "integrate_notion": true,
      "live_transcribe": true,
      "share_note_public": true,
      "connect_google_calendar": true
    },
    "hasPurchased": true
  }
}

Các field bên trong từng nhóm có thể thay đổi tùy theo gói tài khoản. Field không áp dụng có thể không xuất hiện trong response.

Quota theo chu kỳ

quota_snapshot chứa hạn mức được cấp trong chu kỳ hiện tại.

FieldĐơn vịDescription
notessố noteSố note có thể tạo
notes_with_multiple_filessố noteSố note có thể chứa nhiều file
recording_minutesphútTổng thời lượng ghi âm
meeting_minutesphútTổng thời lượng cuộc họp
live_meetingsố cuộc họpSố cuộc họp trực tiếp
nova_chat_single_notesố lượtLượt AI Chat trên một note
nova_chat_all_notessố lượtLượt AI Chat trên toàn bộ notes

Số lượng đã sử dụng được trả về trong period_usage_counter.

Ví dụ tính số phút ghi âm còn lại:

const remainingRecordingMinutes =
  (quota.quota_snapshot.recording_minutes ?? 0) -
  (quota.period_usage_counter.recording_minutes_used ?? 0);

Quota theo từng note

quota_per_note_snapshot mô tả số lần một tính năng có thể được sử dụng trên mỗi note.

Các tính năng có thể bao gồm:

FieldDescription
create_mindmapTạo mindmap
create_slideshowTạo slideshow
create_flashcards_setsTạo bộ flashcards
create_quizzes_setsTạo bộ quiz
create_shortsTạo video ngắn
create_podcastTạo podcast
regenerate_summaryTạo lại nội dung tóm tắt
note_translationDịch note

Ví dụ, giá trị sau cho biết mỗi note có thể tạo tối đa hai slideshow:

{
  "create_slideshow": 2
}

Giới hạn trên mỗi note

per_note_caps chứa các giới hạn cứng áp dụng cho một note hoặc một đầu vào.

FieldĐơn vịDescription
recording_minutes_per_notephútThời lượng ghi âm tối đa cho một note
meeting_minutes_per_notephútThời lượng meeting tối đa cho một note
youtube_max_durationgiâyThời lượng tối đa của video YouTube
document_max_megabytesMBDung lượng tối đa của tài liệu
images_max_inputsố ảnhSố ảnh tối đa trong một request
short_max_secondsgiâyĐộ dài tối đa của video ngắn
podcast_max_secondsgiâyĐộ dài tối đa của podcast

Nên kiểm tra các giá trị này trước khi upload file hoặc tạo nội dung để tránh request thất bại.

Feature access

features_snapshot cho biết tài khoản có được phép sử dụng một tính năng hay không.

{
  "integrate_notion": true,
  "bot_auto_join": false,
  "share_note_public": true
}
Giá trịÝ nghĩa
trueTài khoản được phép sử dụng tính năng
falseTính năng không khả dụng trong gói hiện tại
Không có fieldKhông nên giả định tính năng được hỗ trợ

Một số feature flags hiện có:

FieldTính năng
integrate_notionTích hợp Notion
integrate_google_docsTích hợp Google Docs
live_transcribePhiên âm trực tiếp
bot_auto_joinBot tự động tham gia meeting
share_note_publicChia sẻ note công khai
share_note_specificChia sẻ note với người cụ thể
share_note_organizationChia sẻ note trong tổ chức
summary_note_with_templateTóm tắt theo template
connect_google_calendarKết nối Google Calendar
connect_outlook_calendarKết nối Outlook Calendar

Quota reset

Hai field sau mô tả chu kỳ quota hiện tại:

FieldTypeDescription
periodStartDatestringThời điểm bắt đầu chu kỳ
resetDatestringThời điểm quota được làm mới tiếp theo

Cả hai sử dụng định dạng ISO 8601 UTC.

TypeScript types

Credits và quota khác nhau như thế nào?

EndpointDùng để kiểm tra
GET /v2/credits/meGói tài khoản và số dư Credits hiện tại
GET /v2/credits/quotaHạn mức, mức đã dùng, giới hạn và quyền truy cập tính năng

Trong phần lớn tích hợp, bạn chỉ cần:

  1. Gọi /v2/credits/me để hiển thị số Credits.
  2. Gọi /v2/credits/quota trước tác vụ cần kiểm tra giới hạn cụ thể.
  3. Tải lại dữ liệu sau khi tác vụ hoàn tất.

Notes

  • Các field quota là tùy chọn và có thể khác nhau giữa các gói.
  • Không nên hard-code hạn mức trong ứng dụng.
  • Luôn sử dụng dữ liệu mới nhất từ API trước các tác vụ quan trọng.
  • total_credits không thay thế cho quota của từng tính năng.
  • Một tài khoản còn Credits vẫn có thể đạt giới hạn quota của một tính năng cụ thể.
  • Chỉ gọi API từ backend hoặc server được kiểm soát.
  • Không đưa API Key vào frontend hoặc mã nguồn công khai.