# OriLife > Định danh cá thể bằng chính ảnh chụp nó. Một cây sầu riêng, một quả trên cây đó, một con bò — > mỗi cá thể được nhận ra bằng đặc điểm của chính nó, không tem, không QR, không mã gắn lên vật. > Đang có tuyến cho: cây, quả, con vật. Hoa và sản phẩm chế biến CHƯA có. Base URL: https://api.orilife.io ## Đọc trước khi gọi - Đặc tả máy đọc: https://api.orilife.io/openapi.json - Bản khai dịch vụ: https://api.orilife.io/.well-known/orilife.json - Tài liệu người đọc: https://api.orilife.io/docs - Trang cho người viết ứng dụng: https://api.orilife.io/ ## Gọi được ngay, không cần tài khoản - GET https://api.orilife.io/api/health — máy chủ còn sống, và trường `features` nói hôm nay làm được gì - GET https://api.orilife.io/api — liệt kê mọi cửa - GET https://api.orilife.io/api/resolve/{code} — tra một mã ORI-… - GET https://api.orilife.io/api/species/catalog — danh mục loài - POST https://api.orilife.io/api/fruit/lookup — gửi ảnh một quả, hỏi nó từ đâu ra ## Cần tài khoản Mọi cửa còn lại chạm vườn của một người cụ thể. Lấy khoá: POST /api/signup rồi POST /api/login, gửi kèm `Authorization: Bearer `. Token sống 43200 giây. ## Ba điều một tác tử nên biết trước 1. Kết quả tra mã có ba trạng thái: `public`, `restricted`, `unknown`. `unknown` KHÔNG kèm lý do, và cố ý như vậy: nếu "không có mã này" khác với "mã riêng tư" thì dò mã sẽ đếm được vườn người khác. Đừng suy ra sự tồn tại từ chỗ khác biệt, vì không có chỗ khác biệt nào. 2. Hệ trả lời "chưa chắc" thay vì đoán. Nhận được `uncertain` thì đó là kết quả thật, không phải lỗi cần thử lại. 3. Việc so khớp chỉ chạy trong phạm vi vườn của chính chủ tài khoản. Không có cửa nào tra chéo vườn người khác, kể cả khi biết mã. ## Giới hạn Một tệp 20 MB · một lô ảnh 64 MB · video 80 MB. Bị hạn tần suất thì nhận 429 kèm header `Retry-After` — đọc header đó rồi chờ đúng bấy nhiêu giây, đừng thử lại ngay.