←Home/Docs
⌕

Tài liệu tham khảo API

Other

GET/v1/legal/documents

List / filter legal documents

ParamInRequired
doc_typequeryno
agencyqueryno
fieldqueryno
eff_statusqueryno
issued_fromqueryno
issued_toqueryno
effective_fromqueryno
effective_toqueryno
qqueryno
sortqueryno
cursorqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/documents/{ref}

Get a single document

ParamInRequired
refpathyes
includequeryno
atqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/documents/{ref}/units

Get a document's units

ParamInRequired
refpathyes
revisionqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/documents/{ref}/effectivity

Get a document's effectivity timeline

ParamInRequired
refpathyes
atqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/documents/{ref}/relations

Get a document's relation graph

ParamInRequired
refpathyes
directionqueryno
typesqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/search

Search legal units (full-text, semantic, or hybrid)

ParamInRequired
qqueryyes
modequeryno
doc_typequeryno
fieldqueryno
eff_statusqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/changes

Change-event feed

ParamInRequired
sincequeryyes
typesqueryno
subtypesqueryno
doc_typequeryno
fieldqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/legal/export

Bulk export (NDJSON)

ParamInRequired
doc_typequeryno
fieldqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/bidding/packages

List / filter bidding packages

ParamInRequired
qqueryno
categoryqueryno
selection_methodqueryno
notice_typequeryno
province_codequeryno
investorqueryno
min_budgetqueryno
max_budgetqueryno
statusqueryno
closing_afterqueryno
sortqueryno
cursorqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/bidding/packages/{tbmt_code}

Get a single bidding package

ParamInRequired
tbmt_codepathyes
includequeryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/bidding/packages/{tbmt_code}/history

Get revision and change-event history for a bidding package

ParamInRequired
tbmt_codepathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/bidding/investors

Aggregate investor and winning bidder statistics

ParamInRequired
qqueryno
province_codequeryno
rolequeryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/bidding/search

Search bidding units (GET query params — FTS, semantic, or hybrid)

ParamInRequired
qqueryyes
modequeryno
categoryqueryno
province_codequeryno
statusqueryno
min_budgetqueryno
max_budgetqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/v1/bidding/search

Search bidding units (POST JSON body — FTS, semantic, or hybrid)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/usage

Current-period usage

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/me

Caller identity

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/webhooks

List webhook subscriptions

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/v1/webhooks

Create a webhook subscription

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/v1/webhooks/{subscription_id}

Delete a webhook subscription

ParamInRequired
subscription_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/v1/webhooks/{subscription_id}/test

Send a signed test event

ParamInRequired
subscription_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/webhooks/{subscription_id}/deliveries

List webhook delivery attempts

ParamInRequired
subscription_idpathyes
cursorqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/v1/webhooks/{subscription_id}/deliveries/{delivery_id}/redeliver

Redeliver a webhook delivery

ParamInRequired
subscription_idpathyes
delivery_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/billing/providers

List available billing payment providers

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/billing/checkout

Start a PayPal subscription checkout

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/billing/cancel

Cancel at period end

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/billing

Get billing snapshot

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PATCH/portal/billing/tax-info

Update org VAT tax info (PATCH)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PUT/portal/billing/tax-info

Update org VAT tax info (PUT)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/paypal/webhook

PayPal webhook receiver

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/signup

Create an account

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/login

Log in with email + password

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/logout

Log out

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/auth/me

Current account + current org + all org memberships

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/verify

Confirm an email-verify token

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/verify/resend

Resend the email-verify link

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/forgot

Request a password-reset email

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/reset

Reset a password from a reset-password token

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/auth/habify/start

Start Habify Hub OIDC login (GET)

ParamInRequired
nextqueryno
redirect_uriqueryno
promptqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/habify/start

Start Habify Hub OIDC login (POST)

ParamInRequired
nextqueryno
redirect_uriqueryno
promptqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/auth/habify/callback

Complete Habify Hub OIDC callback (exchange code + PKCE verifier)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PATCH/portal/account

Update the calling account's display name

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/account/password

Change the calling account's password

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/keys

List the current org's API keys

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/keys

Create an API key

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/portal/keys/{key_id}

Revoke an API key

ParamInRequired
key_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/org

Get the current org's settings

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PATCH/portal/org

Update the current org's settings

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/portal/org

Delete the current org (danger zone)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/members

List org members and pending invites

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/invites

Invite a teammate by email

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/invites/{invite_id}/resend

Resend a pending invite

ParamInRequired
invite_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/portal/invites/{invite_id}

Cancel a pending invite

ParamInRequired
invite_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/invites/accept

Accept an invite by token

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PATCH/portal/members/{account_id}

Change a member's role

ParamInRequired
account_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/portal/members/{account_id}

Remove a member from the org

ParamInRequired
account_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/usage

Current-org usage: per-day and per-endpoint breakdown

ParamInRequired
periodqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/overview

Portal dashboard overview

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/webhooks

List the current org's webhook subscriptions

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/webhooks

Create a webhook subscription

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

PATCH/portal/webhooks/{subscription_id}

Edit or pause/resume a webhook subscription

ParamInRequired
subscription_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

DELETE/portal/webhooks/{subscription_id}

Delete a webhook subscription

ParamInRequired
subscription_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/webhooks/{subscription_id}/deliveries

List webhook delivery attempts

ParamInRequired
subscription_idpathyes
cursorqueryno
limitqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/webhooks/{subscription_id}/test

Send a signed test event

ParamInRequired
subscription_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/webhooks/{subscription_id}/deliveries/{delivery_id}/redeliver

Redeliver a webhook delivery

ParamInRequired
subscription_idpathyes
delivery_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/sources

Per-source health grid (Ops home)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/queue-stats

Pipeline queue stats (Ops home)

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/runs

List crawl runs

ParamInRequired
sourcequeryno
statusqueryno
sincequeryno
limitqueryno
offsetqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/runs/{run_id}

Crawl run detail

ParamInRequired
run_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/runs/run/{source_key}

Run a source now

ParamInRequired
source_keypathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/failures

Parse-failure queue, grouped by error signature

ParamInRequired
statusqueryno
limitqueryno
offsetqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/failures/{failure_id}/resolve

Flip a parse failure's status

ParamInRequired
failure_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/failures/{failure_id}/reparse

Re-parse a single parse failure's raw object

ParamInRequired
failure_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/reparse-batch

Batch-enqueue re-parse of open failures below a parser version

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/records

Search records

ParamInRequired
qqueryno
limitqueryno
offsetqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/records/{natural_key}

Record detail

ParamInRequired
natural_keypathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/records/{natural_key}/revisions/{seq_a}/{seq_b}/diff

Structural diff between two revisions

ParamInRequired
natural_keypathyes
seq_apathyes
seq_bpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/records/{natural_key}/refetch

Force a re-fetch of a record's source URL

ParamInRequired
natural_keypathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/records/{natural_key}/rebuild-effectivity

Rebuild a record's legal_effectivity timeline

ParamInRequired
natural_keypathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/provisional

Provisional-record queue

ParamInRequired
limitqueryno
offsetqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/orgs

Orgs / customers list

ParamInRequired
qqueryno
planqueryno
limitqueryno
offsetqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/orgs/{org_id}

Org detail

ParamInRequired
org_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/orgs/{org_id}/comp

Comp an org onto a plan (manual staff grant)

ParamInRequired
org_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/orgs/{org_id}/extend

Extend an org's current subscription period

ParamInRequired
org_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

POST/portal/admin/orgs/{org_id}/note

Attach a staff note to an org (log-only, D6)

ParamInRequired
org_idpathyes

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/portal/admin/telemetry

Telemetry review: top queries/endpoints, zero-result flags, MCP/plan split

ParamInRequired
sincequeryno
untilqueryno

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/meta/status

API status

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/meta/freshness

Freshness SLA

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/v1/meta/plans

Plan matrix

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

GET/llms.txt

Agent-facing API description

Response: {success, data, meta} on 2xx, {success: false, error} otherwise — see Errors & envelope.

CrawlPipe