Chuyển đến nội dung chính

Tài liệu API Fileverity

Tham chiếu API

Mọi endpoint của Fileverity API với tham số, schema yêu cầu và phản hồi, mã lỗi và ví dụ, được tạo từ đặc tả OpenAPI 3.1.

Xem dạng MarkdownCập nhật 2026-11-04

Tài liệu tham chiếu này được tạo từ tài liệu OpenAPI 3.1 của API, có tại https://api.fileverity.com/v1/openapi.json, nên luôn khớp với API. Để tìm hiểu các khái niệm và hướng dẫn, hãy bắt đầu từ Tổng quan.

Quy ước

Base URL: https://api.fileverity.com/v1. Xác thực mọi yêu cầu bằng Authorization: Bearer <key>. Các lỗi dùng chung một định dạng, được mô tả trong Lỗi. Mọi phản hồi đều có header x-request-id, và các phản hồi đã xác thực có kèm các header giới hạn tốc độ được mô tả trong Giới hạn tốc độ và header. Các đối tượng lồng nhau mở ra trong các mục có thể thu gọn bên dưới bảng.

Phát hiện văn bản

Phát hiện văn bản do AI viết

POST https://api.fileverity.com/v1/text/detections

Phân loại văn bản thuần túy là do AI viết, một phần do AI viết hoặc do người viết, và trả về các đoạn do AI viết. Văn bản được đánh giá rồi loại bỏ; văn bản không được lưu. Việc tính phí đếm code point Unicode theo đơn vị 1.000 ký tự, làm tròn lên cho mỗi yêu cầu. Các yêu cầu bị từ chối trước khi đánh giá không bị tính phí. Khóa thử nghiệm trả về một kết quả cố định là văn bản do người viết và không bị tính phí.

Tham số

TênVị tríKiểuBắt buộcMô tả
Idempotency-KeyheaderstringKhôngKhóa duy nhất tối đa 255 ký tự. Gửi lại yêu cầu với cùng khóa và cùng nội dung trong vòng 24 giờ sẽ trả về phản hồi đầu tiên kèm header idempotent-replayed: true; cùng khóa nhưng nội dung khác trả về 409.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
modelstringKhôngMã mô hình hoặc mã snapshot. Mặc định "fvdoc-3-text".
textstringCóVăn bản thuần túy, tối thiểu 100 từ và tối đa 100.000 ký tự.
languagemột trong "en", "fr", "de", "es", "zh", nullKhôngMã ISO 639-1. Tự động nhận diện nếu không truyền. Mặc định null.

Phản hồi

Trạng tháiMô tảNội dung
200Kết quả phát hiện.TextDetection
400Yêu cầu không hợp lệ. Mã lỗi: invalid_json, missing_parameter, text_too_short, unsupported_language, invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
402Số dư hoặc hạn mức chi tiêu hằng tháng của khóa không đủ cho yêu cầu. Mã lỗi: insufficient_balance, spend_limit_reached.Error
404Không tìm thấy tài nguyên. Mã lỗi: model_not_found.Error
409Xung đột với trạng thái hiện tại. Mã lỗi: idempotency_mismatch, idempotency_in_progress.Error
413Vượt quá giới hạn kích thước. Mã lỗi: text_too_long.Error
415Media type hoặc định dạng tệp không được hỗ trợ. Mã lỗi: unsupported_media_type.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error
502Không thể hoàn tất lượt phân tích; không bị tính phí. Mã lỗi: analysis_failed.Error
503Tạm thời không khả dụng hoặc đang bận; không bị tính phí. Hãy thử lại sau số giây ghi trong header retry-after. Mã lỗi: service_unavailable.Error

Phản hồi 200: TextDetection

TrườngKiểuBắt buộcMô tả
idstringCó
object"text.detection"Có
createdintegerCóDấu thời gian Unix.
modelstringCóSnapshot đã tạo ra kết quả.
livemodebooleanCóFalse đối với khóa thử nghiệm.
languagemột trong "en", "fr", "de", "es", "zh"Có
verdictmột trong "ai", "mixed", "human"Cóai: toàn bộ văn bản có vẻ do AI viết; mixed: có các đoạn do AI viết trong văn bản do người viết; human: không tìm thấy đoạn nào do AI viết.
scorenumberCóĐiểm của mô hình cho đoạn giống văn bản do AI viết nhất. Tối thiểu 0. Tối đa 1.
ai_fractionnumberCóTỷ lệ văn bản được đánh giá nằm trong các đoạn do AI viết. Tối thiểu 0. Tối đa 1.
segmentsmảng objectCóCác đoạn do AI viết, dưới dạng vị trí (offset) trong văn bản đã gửi, tính theo code point Unicode. Ranh giới mang tính tương đối và có thể bao gồm các câu liền kề.
usageobjectCó
segments: các trường
TrườngKiểuBắt buộcMô tả
startintegerCó
endintegerCóKhông bao gồm (exclusive).
scorenumberCóTối thiểu 0. Tối đa 1.
usage: các trường
TrườngKiểuBắt buộcMô tả
charactersintegerCóSố code point Unicode đã được đánh giá.
free_charactersintegerCóSố ký tự nằm trong phần lượt dùng thử miễn phí của bạn, không bị tính phí.
billed_unitsintegerCóSố đơn vị 1.000 ký tự thực tế bị tính phí, sau khi trừ ký tự miễn phí; billed_units × đơn giá là chi phí.

Mã lỗi

Mã lỗiTrạng thái
invalid_json400
missing_parameter400
unsupported_media_type415
text_too_short400
text_too_long413
unsupported_language400
model_not_found404
insufficient_balance402
spend_limit_reached402
service_unavailable503
analysis_failed502
invalid_parameter400
idempotency_mismatch409
idempotency_in_progress409
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/text/detections \  -H "Authorization: Bearer $FILEVERITY_API_KEY" \  -H "Content-Type: application/json" \  -d "$(jq -Rs '{text: .}' essay.txt)"
{  "id": "tdet_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "text.detection",  "created": 1793664000,  "model": "fvdoc-3-text-2026-11-03",  "livemode": true,  "language": "en",  "verdict": "mixed",  "score": 0.97,  "ai_fraction": 0.41,  "segments": [    {      "start": 212,      "end": 433,      "score": 0.97    },    {      "start": 579,      "end": 790,      "score": 0.93    }  ],  "usage": {    "characters": 1412,    "free_characters": 0,    "billed_units": 2  }}

Tệp

Tải tệp lên

POST https://api.fileverity.com/v1/files

Tải một tệp lên để phân tích. Gửi các tệp tối đa 4 MB dưới dạng multipart/form-data trong trường file; phản hồi có trạng thái uploaded. Các tệp lớn hơn 4 MB phải được tải lên bằng URL ký trước (pre-signed URL). Gửi JSON gồm filename, content_type và bytes (tài liệu tối đa 50 MB); phản hồi có trạng thái pending và một đối tượng upload chứa URL ký trước: hãy gửi các byte của tệp tới URL đó bằng PUT cùng các header đã cho trước khi URL hết hạn. Tệp bị xóa khi một lượt phân tích bắt đầu và chậm nhất sau 24 giờ. Một không gian làm việc có thể giữ tối đa 50 tệp chưa hết hạn và 200 MB cho mỗi chế độ cùng lúc.

Tham số

TênVị tríKiểuBắt buộcMô tả
Idempotency-KeyheaderstringKhôngKhóa duy nhất tối đa 255 ký tự. Gửi lại yêu cầu với cùng khóa và cùng nội dung trong vòng 24 giờ sẽ trả về phản hồi đầu tiên kèm header idempotent-replayed: true; cùng khóa nhưng nội dung khác trả về 409.

Nội dung yêu cầu: multipart/form-data, bắt buộc

TrườngKiểuBắt buộcMô tả
filestringCóĐịnh dạng binary.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
filenamestringKhông
content_typestringCóMIME type của tệp, ví dụ image/jpeg hoặc application/pdf.
bytesintegerCóKích thước chính xác tính bằng byte. Tối thiểu 1. Tối đa 52.428.800.

Phản hồi

Trạng tháiMô tảNội dung
201Tệp.File
400Yêu cầu không hợp lệ. Mã lỗi: invalid_json, missing_parameter, invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
409Xung đột với trạng thái hiện tại. Mã lỗi: idempotency_mismatch, idempotency_in_progress.Error
413Vượt quá giới hạn kích thước. Mã lỗi: file_too_large.Error
415Media type hoặc định dạng tệp không được hỗ trợ. Mã lỗi: unsupported_media_type, unsupported_file.Error
422Không thể xử lý tệp. Mã lỗi: invalid_file.Error
429Quá nhiều yêu cầu. Mã lỗi: pending_files_limit, rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 201: File

TrườngKiểuBắt buộcMô tả
idstringCó
object"file"Có
filenamestring hoặc nullCó
bytesinteger hoặc nullCó
content_typestringCó
statusmột trong "pending", "uploaded"Cópending cho đến khi các byte gửi tới URL ký trước đã được nhận đủ.
livemodebooleanCóTệp chỉ hiển thị với các khóa cùng chế độ.
createdintegerCóDấu thời gian Unix.
expires_atintegerCóDấu thời gian Unix mà sau đó tệp bị xóa.
uploadobjectKhôngCó trong phản hồi cho yêu cầu tải lên dạng JSON.
upload: các trường
TrườngKiểuBắt buộcMô tả
urlstringCóKhóa thử nghiệm nhận một URL giữ chỗ (test: true); không có gì được tải lên hoặc lưu.
method"PUT"Có
headersobject có giá trị stringCó
expires_atintegerCóDấu thời gian Unix.
testtrueKhông

Mã lỗi

Mã lỗiTrạng thái
invalid_json400
missing_parameter400
unsupported_media_type415
unsupported_file415
invalid_file422
file_too_large413
pending_files_limit429
invalid_parameter400
idempotency_mismatch409
idempotency_in_progress409
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/files \  -H "Authorization: Bearer $FILEVERITY_API_KEY" \  -F file=@claim-photo.jpg
{  "id": "file_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "file",  "filename": "claim-photo.jpg",  "bytes": 2481920,  "content_type": "image/jpeg",  "status": "uploaded",  "livemode": true,  "created": 1793700000,  "expires_at": 1793786400}

Lấy thông tin tệp

GET https://api.fileverity.com/v1/files/{id}

Trả về tệp và cho biết các byte của tệp đã được nhận đủ hay chưa.

Tham số

TênVị tríKiểuBắt buộcMô tả
idpathstringCóMã tệp.

Phản hồi

Trạng tháiMô tảNội dung
200Tệp.File
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: not_found.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: File

TrườngKiểuBắt buộcMô tả
idstringCó
object"file"Có
filenamestring hoặc nullCó
bytesinteger hoặc nullCó
content_typestringCó
statusmột trong "pending", "uploaded"Cópending cho đến khi các byte gửi tới URL ký trước đã được nhận đủ.
livemodebooleanCóTệp chỉ hiển thị với các khóa cùng chế độ.
createdintegerCóDấu thời gian Unix.
expires_atintegerCóDấu thời gian Unix mà sau đó tệp bị xóa.
uploadobjectKhôngCó trong phản hồi cho yêu cầu tải lên dạng JSON.
upload: các trường
TrườngKiểuBắt buộcMô tả
urlstringCóKhóa thử nghiệm nhận một URL giữ chỗ (test: true); không có gì được tải lên hoặc lưu.
method"PUT"Có
headersobject có giá trị stringCó
expires_atintegerCóDấu thời gian Unix.
testtrueKhông

Mã lỗi

Mã lỗiTrạng thái
not_found404
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/files/file_8Hk2pQ4vN9sL1xR7cW3mY6zB \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "id": "file_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "file",  "filename": "claim-photo.jpg",  "bytes": 2481920,  "content_type": "image/jpeg",  "status": "uploaded",  "livemode": true,  "created": 1793700000,  "expires_at": 1793786400}

Xóa một tệp

DELETE https://api.fileverity.com/v1/files/{id}

Xóa một tệp đã tải lên cùng các byte đã lưu của tệp đó.

Tham số

TênVị tríKiểuBắt buộcMô tả
idpathstringCóMã tệp.

Phản hồi

Trạng tháiMô tảNội dung
200Tệp đã bị xóa.FileDeleted
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: not_found.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: FileDeleted

TrườngKiểuBắt buộcMô tả
idstringCó
object"file"Có
deletedtrueCó

Mã lỗi

Mã lỗiTrạng thái
not_found404
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl -X DELETE https://api.fileverity.com/v1/files/file_8Hk2pQ4vN9sL1xR7cW3mY6zB \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "id": "file_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "file",  "deleted": true}

Phân tích

Tạo lượt phân tích

POST https://api.fileverity.com/v1/analyses

Phân tích một tệp đã tải lên bằng fvimg-2 (ảnh) hoặc fvdoc-3 (tài liệu). Một lượt phân tích là một lượt kiểm tra ảnh hoặc tài liệu. Phản hồi là 202 với trạng thái processing; kết quả được gửi qua webhook hoặc bằng cách truy vấn định kỳ GET /analyses/{id}. Gửi Prefer: wait=N (tối đa 60 giây) để giữ yêu cầu cho đến khi có kết quả; một lượt phân tích đã hoàn tất trả về 200. Giá được tạm giữ khi lượt phân tích được tạo và được hoàn lại nếu lượt phân tích thất bại hoặc bị hủy. Kết quả được giữ trong 7 ngày. Khi hệ thống đang bận, API trả về 503 service_unavailable kèm header retry-after và không tính phí: hãy thử lại với cùng Idempotency-Key, và chạy lần lượt từng lượt phân tích ảnh để đạt thông lượng tốt nhất. Khóa thử nghiệm trả về kết quả mẫu và không bao giờ bị tính phí; báo cáo mẫu chỉ chứa một vài trường.

Tham số

TênVị tríKiểuBắt buộcMô tả
Idempotency-KeyheaderstringKhôngKhóa duy nhất tối đa 255 ký tự. Gửi lại yêu cầu với cùng khóa và cùng nội dung trong vòng 24 giờ sẽ trả về phản hồi đầu tiên kèm header idempotent-replayed: true; cùng khóa nhưng nội dung khác trả về 409.
PreferheaderstringKhôngwait=N giữ yêu cầu tối đa N giây (tối đa 60) cho đến khi lượt phân tích hoàn tất.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
modelmột trong "fvimg-2", "fvimg-2-2026-10-30", "fvdoc-3", "fvdoc-3-2026-11-03"CóMã mô hình hoặc mã snapshot. fvimg-2 phân tích ảnh, fvdoc-3 phân tích tài liệu.
filestringCóMã của một tệp đã tải lên.
metadataobject có giá trị stringKhôngTối đa 16 cặp chuỗi (key tối đa 40 ký tự, value tối đa 500) được trả về trong lượt phân tích và trong webhook.
optionsobjectKhông
options: các trường
TrườngKiểuBắt buộcMô tả
passwordstringKhôngMật khẩu của tài liệu đã mã hóa. Độ dài tối đa 256.
localemột trong "en", "fr", "de", "es", "zh", "vi", "ar"KhôngNgôn ngữ của các phát hiện về tài liệu. Mặc định "en".

Phản hồi

Trạng tháiMô tảNội dung
200Lượt phân tích đã hoàn tất.Analysis
202Lượt phân tích đang được xử lý.Analysis
400Yêu cầu không hợp lệ. Mã lỗi: invalid_json, missing_parameter, file_not_found, invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
402Số dư hoặc hạn mức chi tiêu hằng tháng của khóa không đủ cho yêu cầu. Mã lỗi: insufficient_balance, spend_limit_reached.Error
404Không tìm thấy tài nguyên. Mã lỗi: model_not_found.Error
409Xung đột với trạng thái hiện tại. Mã lỗi: idempotency_mismatch, idempotency_in_progress.Error
413Vượt quá giới hạn kích thước. Mã lỗi: file_too_large, too_many_pixels, too_many_pages, document_too_long.Error
415Media type hoặc định dạng tệp không được hỗ trợ. Mã lỗi: unsupported_media_type, unsupported_file.Error
422Không thể xử lý tệp. Mã lỗi: invalid_file, password_required, wrong_password, not_examinable.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error
502Không thể hoàn tất lượt phân tích; không bị tính phí. Mã lỗi: analysis_failed.Error
503Tạm thời không khả dụng hoặc đang bận; không bị tính phí. Hãy thử lại sau số giây ghi trong header retry-after. Mã lỗi: service_unavailable.Error

Phản hồi 200: Analysis

TrườngKiểuBắt buộcMô tả
idstringCó
object"analysis"Có
createdintegerCóDấu thời gian Unix.
modelstringCóSnapshot đã tạo ra kết quả.
livemodebooleanCó
statusmột trong "processing", "succeeded", "failed", "canceled"Có
fileobjectCó
report_idstring hoặc nullCóMã báo cáo có thể xác minh, FV-XXXX-XXXX-XXXX.
report_urlstring hoặc nullCóTrang xác minh công khai của báo cáo.
summaryImageSummary hoặc DocumentSummary hoặc nullCóKết luận ngắn gọn, ổn định: ImageSummary cho ảnh, DocumentSummary cho tài liệu, null cho đến khi lượt phân tích thành công.
resultobject hoặc nullCóXuất hiện khi status là succeeded và cho đến khi kết quả hết hạn.
errorobject hoặc nullCó
progressobject hoặc nullCó
usageobjectCó
metadataobject hoặc nullCó
completed_atinteger hoặc nullCó
expires_atinteger hoặc nullCóDấu thời gian Unix mà sau đó kết quả bị xóa.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
bytesinteger hoặc nullKhông
formatstring hoặc nullKhông
summary (ImageSummary): các trường
TrườngKiểuBắt buộcMô tả
levelmột trong "L0", "L1", "L2", "L3", "L4", "L5"CóMức độ rủi ro, từ L0 đến L5.
assessmentmột trong "authentic_untouched", "authentic_locally_edited", "ai_generated", "undetermined"Có
actionmột trong "accept", "review", "reject", "resubmit"Có
aimột trong "labelled", "very_likely", "suspected", "undecided", "low", "very_low", "not_evaluated"CóPhát hiện về nội dung do AI tạo ra.
editmột trong "detected", "suspected", "suspected_record", "review", "generative", "minor", "none", "not_applicable", "not_evaluated"CóPhát hiện về chỉnh sửa cục bộ.
summary (DocumentSummary): các trường
TrườngKiểuBắt buộcMô tả
kind"docpro"Có
levelmột trong "L0", "L1", "L2", "L3", "L4", "L5"CóMức độ rủi ro, từ L0 đến L5.
actionmột trong "accept", "note", "review", "reject", "resubmit"Cónote: hãy đối chiếu nội dung AI được đánh dấu trong báo cáo với chính sách của bạn.
reasonstring hoặc nullCóPhát hiện hoặc điều kiện đằng sau mức này, ví dụ clean hoặc incomplete, hoặc mã của một phát hiện.
findingsmảng stringCóMã của các phát hiện quan trọng.
pagesintegerCóSố trang trong tài liệu.
imagesintegerCóSố ảnh nhúng đã được kiểm tra.
textmột trong "ai_generated", "mixed", "human", "inconclusive", nullCóKết luận về văn bản của tài liệu, hoặc null nếu văn bản không được đánh giá.
strongtrueKhôngXuất hiện khi một phát hiện được liệt kê là mạnh.
result: các trường
TrườngKiểuBắt buộcMô tả
reportImageReport hoặc DocumentReportKhôngBáo cáo đầy đủ. report.schema là fileverity.report/1 cho ảnh và fileverity.docpro/1 cho tài liệu.
stamped_atinteger hoặc nullKhôngDấu thời gian Unix của dấu thời gian RFC 3161 được cấp cho báo cáo, hoặc null.
report (ImageReport): các trường
TrườngKiểuBắt buộcMô tả
schema"fileverity.report/1"Có
idstringCóMã báo cáo, FV-XXXX-XXXX-XXXX.
sampletrueKhôngCó trong các báo cáo mẫu cố định mà khóa thử nghiệm trả về.
issuedAtstringKhôngThời điểm báo cáo được cấp, theo ISO 8601 ở UTC. Định dạng date-time.
issuerobjectKhôngĐơn vị cấp báo cáo.
fileobjectKhôngẢnh đã được kiểm tra.
proobjectKhôngKết luận. Cùng các giá trị như summary, kèm lý do.
scoreinteger hoặc nullKhôngĐiểm xác thực từ 0 đến 100, với bước nhảy 5: bằng chứng ủng hộ mạnh đến đâu việc ảnh là một ảnh chụp xác thực, chưa qua chỉnh sửa. null khi không được đánh giá.
confidencemột trong "high", "medium", "low"KhôngMức độ mà tệp này cho phép lượt phân tích xác lập được. Mức tin cậy thấp thường phản ánh chính tệp, chẳng hạn độ phân giải thấp hoặc nén mạnh.
questionsobjectKhôngBa câu hỏi mà báo cáo trả lời.
generatorobject hoặc nullKhôngCông cụ tạo ảnh AI được nêu cho ảnh này, hoặc null.
regionsmảng objectKhôngCác vùng được đánh dấu, tính bằng điểm ảnh của ảnh được hiển thị.
provenanceobjectKhôngNhững gì chính các bản ghi của tệp cho biết về nguồn gốc của tệp.
digeststringKhôngGiá trị băm của nội dung báo cáo, được trang xác minh sử dụng.
issuer: các trường
TrườngKiểuBắt buộcMô tả
namestringKhông
operatorstringKhông
verifystringKhôngTrang xác minh công khai của báo cáo.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
sha256stringKhôngGiá trị băm SHA-256 của tệp đã kiểm tra, ở dạng hex.
bytesintegerKhông
widthintegerKhôngChiều rộng tính bằng điểm ảnh như khi hiển thị.
heightintegerKhôngChiều cao tính bằng điểm ảnh như khi hiển thị.
formatstringKhông
pro: các trường
TrườngKiểuBắt buộcMô tả
levelmột trong "L0", "L1", "L2", "L3", "L4", "L5"KhôngMức độ rủi ro, từ L0 đến L5.
actionmột trong "accept", "review", "reject", "resubmit"Không
assessmentmột trong "authentic_untouched", "authentic_locally_edited", "ai_generated", "undetermined"Không
reasonstring hoặc nullKhông
questions: các trường
TrườngKiểuBắt buộcMô tả
aiobjectKhông
editobjectKhông
sourceobjectKhông
ai: các trường
TrườngKiểuBắt buộcMô tả
keymột trong "labelled", "very_likely", "suspected", "undecided", "low", "very_low", "not_evaluated"Không
basismột trong "verified", "detected", "declared", nullKhôngCơ sở của câu trả lời.
strengthmột trong "strong", "moderate", "limited", nullKhôngBằng chứng ủng hộ câu trả lời mạnh đến đâu.
likelihoodinteger hoặc nullKhôngKhả năng nội dung do AI tạo ra, từ 0 đến 100 với bước nhảy 5, hoặc null.
edit: các trường
TrườngKiểuBắt buộcMô tả
keymột trong "detected", "suspected", "suspected_record", "review", "generative", "minor", "none", "not_applicable", "not_evaluated"Không
basismột trong "verified", "detected", "declared", nullKhôngCơ sở của câu trả lời.
strengthmột trong "strong", "moderate", "limited", nullKhôngBằng chứng ủng hộ câu trả lời mạnh đến đâu.
regionsintegerKhôngSố vùng được đánh dấu.
source: các trường
TrườngKiểuBắt buộcMô tả
keystringKhông
basismột trong "verified", "detected", "declared", nullKhôngCơ sở của câu trả lời.
strengthmột trong "strong", "moderate", "limited", nullKhôngBằng chứng ủng hộ câu trả lời mạnh đến đâu.
signerstring hoặc nullKhông
aiClaimbooleanKhôngLiệu bản ghi của chính tệp có khai là do AI tạo ra hay không.
generator: các trường
TrườngKiểuBắt buộcMô tả
namestringKhông
basisstringKhôngCách xác định công cụ tạo ảnh.
regions: các trường
TrườngKiểuBắt buộcMô tả
idstringKhông
xintegerKhông
yintegerKhông
wintegerKhông
hintegerKhông
strengthmột trong "high", "medium"Không
provenance: các trường
TrườngKiểuBắt buộcMô tả
credentialsmột trong "valid", "unverified", "issues", "invalid", "removed", "none"KhôngTrạng thái của Content Credentials.
signerstring hoặc nullKhông
softwaremảng stringKhôngPhần mềm được nêu trong bản ghi của tệp.
camerastring hoặc nullKhông
capturedstring hoặc nullKhôngThời điểm chụp được ghi trong tệp, nếu có.
report (DocumentReport): các trường
TrườngKiểuBắt buộcMô tả
schema"fileverity.docpro/1"Có
idstringCóMã báo cáo, FV-XXXX-XXXX-XXXX.
sampletrueKhôngCó trong các báo cáo mẫu cố định mà khóa thử nghiệm trả về.
issuedAtstringKhôngThời điểm báo cáo được cấp, theo ISO 8601 ở UTC. Định dạng date-time.
receivedAtstringKhôngThời điểm nhận tệp, theo ISO 8601 ở UTC. Định dạng date-time.
issuerobjectKhôngĐơn vị cấp báo cáo.
fileobjectKhôngTài liệu đã được kiểm tra.
levelmột trong "L0", "L1", "L2", "L3", "L4", "L5"KhôngMức độ rủi ro, từ L0 đến L5.
actionmột trong "accept", "note", "review", "reject", "resubmit"Không
reasonstring hoặc nullKhôngPhát hiện hoặc điều kiện dẫn đến mức này.
findingsmảng objectKhôngCác phát hiện dẫn đến mức này, mỗi phát hiện kèm các trang và ảnh nhúng mà nó đề cập.
textobjectKhôngKết quả cho văn bản của tài liệu.
imagesmảng objectKhôngCác ảnh và hình đồ họa nhúng, được đánh số theo thứ tự trong tài liệu.
structureobject hoặc nullKhôngLịch sử chỉnh sửa của tệp, hoặc null khi chưa được kiểm tra.
provenanceobjectKhôngNhững gì chính các bản ghi của tệp cho biết về nguồn gốc của tệp.
digeststringKhôngGiá trị băm của nội dung báo cáo, được trang xác minh sử dụng.
issuer: các trường
TrườngKiểuBắt buộcMô tả
namestringKhông
operatorstringKhông
verifystringKhôngTrang xác minh công khai của báo cáo.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
sha256stringKhôngGiá trị băm SHA-256 của tệp đã kiểm tra, ở dạng hex.
bytesintegerKhông
formatstringKhông
pagesintegerKhông
textLayermột trong "present", "partial", "absent"KhôngLiệu tài liệu có lớp văn bản hay không.
findings: các trường
TrườngKiểuBắt buộcMô tả
idstringKhông
basismột trong "verified", "detected", "declared"Không
strengthmột trong "strong", "moderate", "limited"Không
materialbooleanKhôngLiệu phát hiện có được tính vào mức hay không.
pagesmảng integerKhông
imagesmảng integerKhông
text: các trường
TrườngKiểuBắt buộcMô tả
statusmột trong "evaluated", "insufficient_text", "unsupported_language", "no_text"Không
verdictmột trong "ai_generated", "mixed", "human", "inconclusive"KhôngXuất hiện khi status là evaluated.
wordsintegerKhông
languagesmảng stringKhông
passagesintegerKhôngSố đoạn được đánh dấu.
images: các trường
TrườngKiểuBắt buộcMô tả
nintegerKhông
pagesmảng integerKhông
kindmột trong "photo", "graphic"Không
widthintegerKhông
heightintegerKhông
levelmột trong "L0", "L1", "L2", "L3", "L4", "L5", nullKhông
assessmentmột trong "authentic_untouched", "authentic_locally_edited", "ai_generated", "undetermined", nullKhông
aimột trong "labelled", "very_likely", "suspected", "undecided", "low", "very_low", "not_evaluated", nullKhông
editmột trong "detected", "suspected", "suspected_record", "review", "generative", "minor", "none", "not_applicable", "not_evaluated", nullKhông
structure: các trường
TrườngKiểuBắt buộcMô tả
revisionsinteger hoặc nullKhông
changedPagesmảng integerKhông
addedPagesintegerKhông
signaturesintegerKhông
provenance: các trường
TrườngKiểuBắt buộcMô tả
credentialsstringKhôngTrạng thái của Content Credentials.
signerstring hoặc nullKhông
aiClaimbooleanKhôngLiệu bản ghi của chính tệp có khai là do AI tạo ra hay không.
softwaremảng stringKhông
createdstring hoặc nullKhông
modifiedstring hoặc nullKhông
revisionsinteger hoặc nullKhông
signedboolean hoặc nullKhông
error: các trường
TrườngKiểuBắt buộcMô tả
codemột trong "invalid_json", "missing_parameter", "invalid_parameter", "text_too_short", "text_too_long", "unsupported_media_type", "unsupported_language", "file_not_found", "unsupported_file", "file_too_large", "too_many_pixels", "too_many_pages", "document_too_long", "invalid_file", "password_required", "wrong_password", "not_examinable", "missing_api_key", "invalid_api_key", "insufficient_balance", "spend_limit_reached", "not_found", "model_not_found", "not_cancelable", "canceled", "idempotency_mismatch", "idempotency_in_progress", "pending_files_limit", "rate_limited", "internal_error", "analysis_failed", "service_unavailable"Không
messagestringKhông
progress: các trường
TrườngKiểuBắt buộcMô tả
stagemột trong "queued", "reading", "analyzing", "reporting"Không
doneintegerKhôngSố đơn vị đã hoàn thành trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
totalintegerKhôngSố đơn vị trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
positionintegerKhôngVị trí trong hàng đợi khi giai đoạn là queued.
usage: các trường
TrườngKiểuBắt buộcMô tả
amountintegerKhôngSố tiền bị tính phí, tính bằng cent; bằng 0 với lượt kiểm tra dùng thử miễn phí và lượt thất bại.
currency"usd"Không
fundingmột trong "trial", "balance", nullKhông

Mã lỗi

Mã lỗiTrạng thái
invalid_json400
missing_parameter400
unsupported_media_type415
model_not_found404
file_not_found400
unsupported_file415
invalid_file422
file_too_large413
too_many_pixels413
too_many_pages413
document_too_long413
password_required422
wrong_password422
not_examinable422
insufficient_balance402
spend_limit_reached402
service_unavailable503
analysis_failed502
invalid_parameter400
idempotency_mismatch409
idempotency_in_progress409
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/analyses \  -H "Authorization: Bearer $FILEVERITY_API_KEY" \  -H "Content-Type: application/json" \  -H "Prefer: wait=60" \  -d '{"model": "fvimg-2", "file": "file_8Hk2pQ4vN9sL1xR7cW3mY6zB"}'
{  "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "analysis",  "created": 1793700120,  "model": "fvimg-2-2026-10-30",  "livemode": true,  "status": "succeeded",  "file": {    "name": "claim-photo.jpg",    "bytes": 2481920,    "format": "jpeg"  },  "report_id": "FV-7K2M-9QXD-4T8R",  "report_url": "https://fileverity.com/verify/FV-7K2M-9QXD-4T8R",  "summary": {    "level": "L2",    "assessment": "authentic_untouched",    "action": "accept",    "ai": "very_low",    "edit": "none"  },  "result": {    "report": {      "schema": "fileverity.report/1",      "id": "FV-7K2M-9QXD-4T8R"    },    "stamped_at": 1793700130  },  "error": null,  "progress": null,  "usage": {    "amount": 199,    "currency": "usd",    "funding": "balance"  },  "metadata": {    "order_id": "A-10492"  },  "completed_at": 1793700131,  "expires_at": 1794304931}

Liệt kê các lượt phân tích

GET https://api.fileverity.com/v1/analyses

Liệt kê các lượt phân tích ảnh và tài liệu của không gian làm việc của bạn, mới nhất trước. Khóa thử nghiệm luôn nhận danh sách trống.

Tham số

TênVị tríKiểuBắt buộcMô tả
limitqueryintegerKhôngMặc định 20. Tối thiểu 1. Tối đa 100.
starting_afterquerystringKhôngCon trỏ (cursor): next_cursor của trang trước.
typequerymột trong "image", "document"Không

Phản hồi

Trạng tháiMô tảNội dung
200Một trang các lượt phân tích.AnalysisList
400Yêu cầu không hợp lệ. Mã lỗi: invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: AnalysisList

TrườngKiểuBắt buộcMô tả
object"list"Có
datamảng AnalysisCó
has_morebooleanCó
next_cursorstring hoặc nullCóTruyền vào starting_after để lấy trang tiếp theo.
data: các trường
TrườngKiểuBắt buộcMô tả
idstringCó
object"analysis"Có
createdintegerCóDấu thời gian Unix.
modelstringCóSnapshot đã tạo ra kết quả.
livemodebooleanCó
statusmột trong "processing", "succeeded", "failed", "canceled"Có
fileobjectCó
report_idstring hoặc nullCóMã báo cáo có thể xác minh, FV-XXXX-XXXX-XXXX.
report_urlstring hoặc nullCóTrang xác minh công khai của báo cáo.
summaryImageSummary hoặc DocumentSummary hoặc nullCóKết luận ngắn gọn, ổn định: ImageSummary cho ảnh, DocumentSummary cho tài liệu, null cho đến khi lượt phân tích thành công.
resultobject hoặc nullCóXuất hiện khi status là succeeded và cho đến khi kết quả hết hạn.
errorobject hoặc nullCó
progressobject hoặc nullCó
usageobjectCó
metadataobject hoặc nullCó
completed_atinteger hoặc nullCó
expires_atinteger hoặc nullCóDấu thời gian Unix mà sau đó kết quả bị xóa.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
bytesinteger hoặc nullKhông
formatstring hoặc nullKhông
result: các trường
TrườngKiểuBắt buộcMô tả
reportImageReport hoặc DocumentReportKhôngBáo cáo đầy đủ. report.schema là fileverity.report/1 cho ảnh và fileverity.docpro/1 cho tài liệu.
stamped_atinteger hoặc nullKhôngDấu thời gian Unix của dấu thời gian RFC 3161 được cấp cho báo cáo, hoặc null.
error: các trường
TrườngKiểuBắt buộcMô tả
codemột trong "invalid_json", "missing_parameter", "invalid_parameter", "text_too_short", "text_too_long", "unsupported_media_type", "unsupported_language", "file_not_found", "unsupported_file", "file_too_large", "too_many_pixels", "too_many_pages", "document_too_long", "invalid_file", "password_required", "wrong_password", "not_examinable", "missing_api_key", "invalid_api_key", "insufficient_balance", "spend_limit_reached", "not_found", "model_not_found", "not_cancelable", "canceled", "idempotency_mismatch", "idempotency_in_progress", "pending_files_limit", "rate_limited", "internal_error", "analysis_failed", "service_unavailable"Không
messagestringKhông
progress: các trường
TrườngKiểuBắt buộcMô tả
stagemột trong "queued", "reading", "analyzing", "reporting"Không
doneintegerKhôngSố đơn vị đã hoàn thành trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
totalintegerKhôngSố đơn vị trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
positionintegerKhôngVị trí trong hàng đợi khi giai đoạn là queued.
usage: các trường
TrườngKiểuBắt buộcMô tả
amountintegerKhôngSố tiền bị tính phí, tính bằng cent; bằng 0 với lượt kiểm tra dùng thử miễn phí và lượt thất bại.
currency"usd"Không
fundingmột trong "trial", "balance", nullKhông

Mã lỗi

Mã lỗiTrạng thái
invalid_parameter400
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl "https://api.fileverity.com/v1/analyses?limit=20&type=image" \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "object": "list",  "data": [    {      "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB",      "object": "analysis",      "created": 1793700120,      "model": "fvimg-2-2026-10-30",      "livemode": true,      "status": "succeeded",      "file": {        "name": "claim-photo.jpg",        "bytes": 2481920,        "format": "jpeg"      },      "report_id": "FV-7K2M-9QXD-4T8R",      "report_url": "https://fileverity.com/verify/FV-7K2M-9QXD-4T8R",      "summary": {        "level": "L2",        "assessment": "authentic_untouched",        "action": "accept",        "ai": "very_low",        "edit": "none"      },      "result": {        "report": {          "schema": "fileverity.report/1",          "id": "FV-7K2M-9QXD-4T8R"        },        "stamped_at": 1793700130      },      "error": null,      "progress": null,      "usage": {        "amount": 199,        "currency": "usd",        "funding": "balance"      },      "metadata": {        "order_id": "A-10492"      },      "completed_at": 1793700131,      "expires_at": 1794304931    }  ],  "has_more": false,  "next_cursor": null}

Lấy thông tin một lượt phân tích

GET https://api.fileverity.com/v1/analyses/{id}

Trả về lượt phân tích, kèm kết quả khi lượt phân tích đã thành công và cho đến khi kết quả hết hạn.

Tham số

TênVị tríKiểuBắt buộcMô tả
idpathstringCóMã lượt phân tích.

Phản hồi

Trạng tháiMô tảNội dung
200Lượt phân tích.Analysis
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: not_found.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: Analysis

TrườngKiểuBắt buộcMô tả
idstringCó
object"analysis"Có
createdintegerCóDấu thời gian Unix.
modelstringCóSnapshot đã tạo ra kết quả.
livemodebooleanCó
statusmột trong "processing", "succeeded", "failed", "canceled"Có
fileobjectCó
report_idstring hoặc nullCóMã báo cáo có thể xác minh, FV-XXXX-XXXX-XXXX.
report_urlstring hoặc nullCóTrang xác minh công khai của báo cáo.
summaryImageSummary hoặc DocumentSummary hoặc nullCóKết luận ngắn gọn, ổn định: ImageSummary cho ảnh, DocumentSummary cho tài liệu, null cho đến khi lượt phân tích thành công.
resultobject hoặc nullCóXuất hiện khi status là succeeded và cho đến khi kết quả hết hạn.
errorobject hoặc nullCó
progressobject hoặc nullCó
usageobjectCó
metadataobject hoặc nullCó
completed_atinteger hoặc nullCó
expires_atinteger hoặc nullCóDấu thời gian Unix mà sau đó kết quả bị xóa.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
bytesinteger hoặc nullKhông
formatstring hoặc nullKhông
result: các trường
TrườngKiểuBắt buộcMô tả
reportImageReport hoặc DocumentReportKhôngBáo cáo đầy đủ. report.schema là fileverity.report/1 cho ảnh và fileverity.docpro/1 cho tài liệu.
stamped_atinteger hoặc nullKhôngDấu thời gian Unix của dấu thời gian RFC 3161 được cấp cho báo cáo, hoặc null.
error: các trường
TrườngKiểuBắt buộcMô tả
codemột trong "invalid_json", "missing_parameter", "invalid_parameter", "text_too_short", "text_too_long", "unsupported_media_type", "unsupported_language", "file_not_found", "unsupported_file", "file_too_large", "too_many_pixels", "too_many_pages", "document_too_long", "invalid_file", "password_required", "wrong_password", "not_examinable", "missing_api_key", "invalid_api_key", "insufficient_balance", "spend_limit_reached", "not_found", "model_not_found", "not_cancelable", "canceled", "idempotency_mismatch", "idempotency_in_progress", "pending_files_limit", "rate_limited", "internal_error", "analysis_failed", "service_unavailable"Không
messagestringKhông
progress: các trường
TrườngKiểuBắt buộcMô tả
stagemột trong "queued", "reading", "analyzing", "reporting"Không
doneintegerKhôngSố đơn vị đã hoàn thành trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
totalintegerKhôngSố đơn vị trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
positionintegerKhôngVị trí trong hàng đợi khi giai đoạn là queued.
usage: các trường
TrườngKiểuBắt buộcMô tả
amountintegerKhôngSố tiền bị tính phí, tính bằng cent; bằng 0 với lượt kiểm tra dùng thử miễn phí và lượt thất bại.
currency"usd"Không
fundingmột trong "trial", "balance", nullKhông

Mã lỗi

Mã lỗiTrạng thái
not_found404
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/analyses/an_8Hk2pQ4vN9sL1xR7cW3mY6zB \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "analysis",  "created": 1793700120,  "model": "fvimg-2-2026-10-30",  "livemode": true,  "status": "succeeded",  "file": {    "name": "claim-photo.jpg",    "bytes": 2481920,    "format": "jpeg"  },  "report_id": "FV-7K2M-9QXD-4T8R",  "report_url": "https://fileverity.com/verify/FV-7K2M-9QXD-4T8R",  "summary": {    "level": "L2",    "assessment": "authentic_untouched",    "action": "accept",    "ai": "very_low",    "edit": "none"  },  "result": {    "report": {      "schema": "fileverity.report/1",      "id": "FV-7K2M-9QXD-4T8R"    },    "stamped_at": 1793700130  },  "error": null,  "progress": null,  "usage": {    "amount": 199,    "currency": "usd",    "funding": "balance"  },  "metadata": {    "order_id": "A-10492"  },  "completed_at": 1793700131,  "expires_at": 1794304931}

Hủy một lượt phân tích

POST https://api.fileverity.com/v1/analyses/{id}/cancel

Hủy một lượt phân tích tài liệu đang xử lý và hoàn lại khoản tạm giữ của lượt đó. Các lượt phân tích ảnh không thể hủy sau khi đã được tạo.

Tham số

TênVị tríKiểuBắt buộcMô tả
idpathstringCóMã lượt phân tích.
Idempotency-KeyheaderstringKhôngKhóa duy nhất tối đa 255 ký tự. Gửi lại yêu cầu với cùng khóa và cùng nội dung trong vòng 24 giờ sẽ trả về phản hồi đầu tiên kèm header idempotent-replayed: true; cùng khóa nhưng nội dung khác trả về 409.

Phản hồi

Trạng tháiMô tảNội dung
200Lượt phân tích đã bị hủy.Analysis
400Yêu cầu không hợp lệ. Mã lỗi: invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: not_found.Error
409Xung đột với trạng thái hiện tại. Mã lỗi: not_cancelable, idempotency_mismatch, idempotency_in_progress.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: Analysis

TrườngKiểuBắt buộcMô tả
idstringCó
object"analysis"Có
createdintegerCóDấu thời gian Unix.
modelstringCóSnapshot đã tạo ra kết quả.
livemodebooleanCó
statusmột trong "processing", "succeeded", "failed", "canceled"Có
fileobjectCó
report_idstring hoặc nullCóMã báo cáo có thể xác minh, FV-XXXX-XXXX-XXXX.
report_urlstring hoặc nullCóTrang xác minh công khai của báo cáo.
summaryImageSummary hoặc DocumentSummary hoặc nullCóKết luận ngắn gọn, ổn định: ImageSummary cho ảnh, DocumentSummary cho tài liệu, null cho đến khi lượt phân tích thành công.
resultobject hoặc nullCóXuất hiện khi status là succeeded và cho đến khi kết quả hết hạn.
errorobject hoặc nullCó
progressobject hoặc nullCó
usageobjectCó
metadataobject hoặc nullCó
completed_atinteger hoặc nullCó
expires_atinteger hoặc nullCóDấu thời gian Unix mà sau đó kết quả bị xóa.
file: các trường
TrườngKiểuBắt buộcMô tả
namestring hoặc nullKhông
bytesinteger hoặc nullKhông
formatstring hoặc nullKhông
result: các trường
TrườngKiểuBắt buộcMô tả
reportImageReport hoặc DocumentReportKhôngBáo cáo đầy đủ. report.schema là fileverity.report/1 cho ảnh và fileverity.docpro/1 cho tài liệu.
stamped_atinteger hoặc nullKhôngDấu thời gian Unix của dấu thời gian RFC 3161 được cấp cho báo cáo, hoặc null.
error: các trường
TrườngKiểuBắt buộcMô tả
codemột trong "invalid_json", "missing_parameter", "invalid_parameter", "text_too_short", "text_too_long", "unsupported_media_type", "unsupported_language", "file_not_found", "unsupported_file", "file_too_large", "too_many_pixels", "too_many_pages", "document_too_long", "invalid_file", "password_required", "wrong_password", "not_examinable", "missing_api_key", "invalid_api_key", "insufficient_balance", "spend_limit_reached", "not_found", "model_not_found", "not_cancelable", "canceled", "idempotency_mismatch", "idempotency_in_progress", "pending_files_limit", "rate_limited", "internal_error", "analysis_failed", "service_unavailable"Không
messagestringKhông
progress: các trường
TrườngKiểuBắt buộcMô tả
stagemột trong "queued", "reading", "analyzing", "reporting"Không
doneintegerKhôngSố đơn vị đã hoàn thành trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
totalintegerKhôngSố đơn vị trong giai đoạn hiện tại, nếu biết; nếu không thì là 0.
positionintegerKhôngVị trí trong hàng đợi khi giai đoạn là queued.
usage: các trường
TrườngKiểuBắt buộcMô tả
amountintegerKhôngSố tiền bị tính phí, tính bằng cent; bằng 0 với lượt kiểm tra dùng thử miễn phí và lượt thất bại.
currency"usd"Không
fundingmột trong "trial", "balance", nullKhông

Mã lỗi

Mã lỗiTrạng thái
not_found404
not_cancelable409
invalid_parameter400
idempotency_mismatch409
idempotency_in_progress409
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl -X POST https://api.fileverity.com/v1/analyses/an_8Hk2pQ4vN9sL1xR7cW3mY6zB/cancel \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "id": "an_8Hk2pQ4vN9sL1xR7cW3mY6zB",  "object": "analysis",  "created": 1793700120,  "model": "fvimg-2-2026-10-30",  "livemode": true,  "status": "canceled",  "file": {    "name": "claim-photo.jpg",    "bytes": 2481920,    "format": "jpeg"  },  "report_id": null,  "report_url": null,  "summary": null,  "result": null,  "error": {    "code": "canceled",    "message": "The analysis was canceled. You were not charged."  },  "progress": null,  "usage": {    "amount": 0,    "currency": "usd",    "funding": null  },  "metadata": null,  "completed_at": 1793700135,  "expires_at": null}

Tải xuống báo cáo PDF

GET https://api.fileverity.com/v1/analyses/{id}/report.pdf

Trả về báo cáo PDF có dấu niêm phong của một lượt phân tích thành công trong khi kết quả của nó còn được lưu. Khóa thử nghiệm nhận 404. Bằng chứng của tài liệu như ảnh các trang có sẵn trong 3 giờ sau lượt phân tích; sau đó PDF không còn chứa phần này, được báo hiệu bằng x-evidence-included: false.

Tham số

TênVị tríKiểuBắt buộcMô tả
idpathstringCóMã lượt phân tích.
localequerymột trong "en", "fr", "de", "es", "zh", "vi", "ar"KhôngMặc định "en".

Phản hồi

Trạng tháiMô tảNội dung
200Báo cáo PDF.Tệp PDF
400Yêu cầu không hợp lệ. Mã lỗi: invalid_parameter.Error
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: not_found.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Mã lỗi

Mã lỗiTrạng thái
invalid_parameter400
not_found404
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl "https://api.fileverity.com/v1/analyses/an_8Hk2pQ4vN9sL1xR7cW3mY6zB/report.pdf?locale=en" \  -H "Authorization: Bearer $FILEVERITY_API_KEY" \  -o Fileverity-FV-7K2M-9QXD-4T8R.pdf

Mô hình

Liệt kê các mô hình

GET https://api.fileverity.com/v1/models

Liệt kê các mô hình khả dụng với khóa API của bạn.

Phản hồi

Trạng tháiMô tảNội dung
200Các mô hình khả dụng.ModelList
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: ModelList

TrườngKiểuBắt buộcMô tả
object"list"Có
datamảng ModelCó
data: các trường
TrườngKiểuBắt buộcMô tả
idstringCó
object"model"Có
createdintegerCóDấu thời gian Unix của snapshot hiện tại.
owned_bystringCó
namestringCó
typemột trong "image", "document", "text"Có
descriptionstringCó
snapshotstringCóSnapshot có ghi ngày mà mã mô hình hiện đang trỏ tới.
statusmột trong "available", "preview", "deprecated"Có
inputobjectCóĐầu vào được chấp nhận. Với tệp, đó là các định dạng và giới hạn kích thước; với văn bản, đó là các ngôn ngữ và giới hạn độ dài.
outputobjectCó
pricingobjectCó
input: các trường
TrườngKiểuBắt buộcMô tả
formatsmảng stringKhông
max_bytesintegerKhông
max_megapixelsintegerKhông
max_pagesintegerKhông
languagesmảng stringKhông
min_wordsintegerKhông
max_charactersintegerKhông
output: các trường
TrườngKiểuBắt buộcMô tả
schemastringCóSchema của báo cáo trong kết quả phân tích.
pricing: các trường
TrườngKiểuBắt buộcMô tả
currency"usd"Có
unitstringCó
unit_amountintegerCóGiá mỗi đơn vị, tính bằng cent.

Mã lỗi

Mã lỗiTrạng thái
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/models \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "object": "list",  "data": [    {      "id": "fvimg-2",      "object": "model",      "created": 1793318400,      "owned_by": "fileverity",      "name": "FVIMG V2",      "type": "image",      "description": "Image authenticity analysis. Detects AI generation and local edits, checks content credentials and metadata, and returns a verifiable report.",      "snapshot": "fvimg-2-2026-10-30",      "status": "available",      "input": {        "formats": [          "jpeg",          "png",          "webp"        ],        "max_bytes": 10485760,        "max_megapixels": 40      },      "output": {        "schema": "fileverity.report/1"      },      "pricing": {        "currency": "usd",        "unit": "image",        "unit_amount": 199      }    },    {      "id": "fvdoc-3",      "object": "model",      "created": 1793664000,      "owned_by": "fileverity",      "name": "FVDOC V3",      "type": "document",      "description": "Document fraud analysis. Evaluates AI-written text, embedded photos, edit history and signatures, and returns a verifiable report.",      "snapshot": "fvdoc-3-2026-11-03",      "status": "available",      "input": {        "formats": [          "pdf",          "docx",          "doc",          "rtf",          "odt",          "pptx",          "txt"        ],        "max_bytes": 52428800,        "max_pages": 100      },      "output": {        "schema": "fileverity.docpro/1"      },      "pricing": {        "currency": "usd",        "unit": "document",        "unit_amount": 599      }    },    {      "id": "fvdoc-3-text",      "object": "model",      "created": 1793664000,      "owned_by": "fileverity",      "name": "FVDOC V3 Text",      "type": "text",      "description": "AI-written text detection. Classifies plain text as AI-written, partly AI-written or human-written and marks the AI-written passages.",      "snapshot": "fvdoc-3-text-2026-11-03",      "status": "available",      "input": {        "languages": [          "en",          "fr",          "de",          "es",          "zh"        ],        "min_words": 100,        "max_characters": 100000      },      "output": {        "schema": "fileverity.text-detection/1"      },      "pricing": {        "currency": "usd",        "unit": "1000_characters",        "unit_amount": 14      }    }  ]}

Lấy thông tin một mô hình

GET https://api.fileverity.com/v1/models/{model}

Lấy thông tin một mô hình theo mã mô hình hoặc mã snapshot của nó.

Tham số

TênVị tríKiểuBắt buộcMô tả
modelpathstringCóMã mô hình hoặc mã snapshot.

Phản hồi

Trạng tháiMô tảNội dung
200Mô hình.Model
401Thiếu khóa API hoặc khóa API không hợp lệ. Mã lỗi: missing_api_key, invalid_api_key.Error
404Không tìm thấy tài nguyên. Mã lỗi: model_not_found.Error
429Quá nhiều yêu cầu. Mã lỗi: rate_limited.Error
500Lỗi nội bộ; không bị tính phí. Mã lỗi: internal_error.Error

Phản hồi 200: Model

TrườngKiểuBắt buộcMô tả
idstringCó
object"model"Có
createdintegerCóDấu thời gian Unix của snapshot hiện tại.
owned_bystringCó
namestringCó
typemột trong "image", "document", "text"Có
descriptionstringCó
snapshotstringCóSnapshot có ghi ngày mà mã mô hình hiện đang trỏ tới.
statusmột trong "available", "preview", "deprecated"Có
inputobjectCóĐầu vào được chấp nhận. Với tệp, đó là các định dạng và giới hạn kích thước; với văn bản, đó là các ngôn ngữ và giới hạn độ dài.
outputobjectCó
pricingobjectCó
input: các trường
TrườngKiểuBắt buộcMô tả
formatsmảng stringKhông
max_bytesintegerKhông
max_megapixelsintegerKhông
max_pagesintegerKhông
languagesmảng stringKhông
min_wordsintegerKhông
max_charactersintegerKhông
output: các trường
TrườngKiểuBắt buộcMô tả
schemastringCóSchema của báo cáo trong kết quả phân tích.
pricing: các trường
TrườngKiểuBắt buộcMô tả
currency"usd"Có
unitstringCó
unit_amountintegerCóGiá mỗi đơn vị, tính bằng cent.

Mã lỗi

Mã lỗiTrạng thái
model_not_found404
missing_api_key401
invalid_api_key401
rate_limited429
internal_error500

Ví dụ

curl https://api.fileverity.com/v1/models/fvimg-2 \  -H "Authorization: Bearer $FILEVERITY_API_KEY"
{  "id": "fvimg-2",  "object": "model",  "created": 1793318400,  "owned_by": "fileverity",  "name": "FVIMG V2",  "type": "image",  "description": "Image authenticity analysis. Detects AI generation and local edits, checks content credentials and metadata, and returns a verifiable report.",  "snapshot": "fvimg-2-2026-10-30",  "status": "available",  "input": {    "formats": [      "jpeg",      "png",      "webp"    ],    "max_bytes": 10485760,    "max_megapixels": 40  },  "output": {    "schema": "fileverity.report/1"  },  "pricing": {    "currency": "usd",    "unit": "image",    "unit_amount": 199  }}

Sự kiện webhook

Fileverity gửi các sự kiện này tới các endpoint webhook của bạn. Quy tắc xác minh và gửi nằm trong Webhook.

Sự kiện analysis.completed

Được gửi tới các endpoint webhook của bạn theo đặc tả Standard Webhooks: các header webhook-id, webhook-timestamp và webhook-signature (v1,<base64 của HMAC-SHA256 trên id.timestamp.body>, dùng phần base64 của khóa bí mật whsec_ làm khóa). Hãy phản hồi bằng bất kỳ mã 2xx nào trong vòng 10 giây; các lần thất bại được thử lại với độ trễ tăng dần theo cấp số nhân (exponential backoff) trong 3 ngày.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
idstringCóCũng được gửi dưới dạng header webhook-id; dùng để loại bỏ các yêu cầu thử lại trùng lặp.
object"event"Có
typemột trong "analysis.completed", "analysis.failed", "balance.low"Có
createdintegerCóDấu thời gian Unix.
dataAnalysis hoặc BalanceLowCóCác sự kiện analysis.* chứa cùng đối tượng với GET /analyses/{id}, trong đó result luôn là null; hãy lấy kết quả bằng endpoint đó. Các sự kiện balance.low chứa số dư và ngưỡng, tính bằng cent.
data (BalanceLow): các trường
TrườngKiểuBắt buộcMô tả
balanceintegerCóSố dư tính bằng cent.
thresholdintegerCóNgưỡng cảnh báo tính bằng cent.

Sự kiện analysis.failed

Được gửi tới các endpoint webhook của bạn theo đặc tả Standard Webhooks: các header webhook-id, webhook-timestamp và webhook-signature (v1,<base64 của HMAC-SHA256 trên id.timestamp.body>, dùng phần base64 của khóa bí mật whsec_ làm khóa). Hãy phản hồi bằng bất kỳ mã 2xx nào trong vòng 10 giây; các lần thất bại được thử lại với độ trễ tăng dần theo cấp số nhân (exponential backoff) trong 3 ngày.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
idstringCóCũng được gửi dưới dạng header webhook-id; dùng để loại bỏ các yêu cầu thử lại trùng lặp.
object"event"Có
typemột trong "analysis.completed", "analysis.failed", "balance.low"Có
createdintegerCóDấu thời gian Unix.
dataAnalysis hoặc BalanceLowCóCác sự kiện analysis.* chứa cùng đối tượng với GET /analyses/{id}, trong đó result luôn là null; hãy lấy kết quả bằng endpoint đó. Các sự kiện balance.low chứa số dư và ngưỡng, tính bằng cent.

Sự kiện balance.low

Được gửi tới các endpoint webhook của bạn theo đặc tả Standard Webhooks: các header webhook-id, webhook-timestamp và webhook-signature (v1,<base64 của HMAC-SHA256 trên id.timestamp.body>, dùng phần base64 của khóa bí mật whsec_ làm khóa). Hãy phản hồi bằng bất kỳ mã 2xx nào trong vòng 10 giây; các lần thất bại được thử lại với độ trễ tăng dần theo cấp số nhân (exponential backoff) trong 3 ngày.

Nội dung yêu cầu: application/json, bắt buộc

TrườngKiểuBắt buộcMô tả
idstringCóCũng được gửi dưới dạng header webhook-id; dùng để loại bỏ các yêu cầu thử lại trùng lặp.
object"event"Có
typemột trong "analysis.completed", "analysis.failed", "balance.low"Có
createdintegerCóDấu thời gian Unix.
dataAnalysis hoặc BalanceLowCóCác sự kiện analysis.* chứa cùng đối tượng với GET /analyses/{id}, trong đó result luôn là null; hãy lấy kết quả bằng endpoint đó. Các sự kiện balance.low chứa số dư và ngưỡng, tính bằng cent.
curl https://api.fileverity.com/v1/openapi.json