Docs
API referencePeople and H R

Get a document

Preview· P9
GET
/hr-documents/{document_id}

Returns one of a person's standard documents as metadata.

Scope: documents:read · Plan: Pro and Enterprise in live mode; every plan in test mode.

Authorization

headerAuthorizationBearer <token>

Send Authorization: Bearer <token> on every request. The token is one of:

PrefixWhat it isWhere it may be used
agoo_sk_live_Secret key, live modeYour servers only
agoo_sk_test_Secret key, test modeYour servers only
agoo_pk_live_Publishable key, live modeBrowsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people.
agoo_pk_test_Publishable key, test modeAs above, in test mode

Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.

Scope: documents:read

Path Parameters

document_id*string

The document's ID.

Match^hrdoc_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example"hrdoc_01m6k2a4c6e8g0j2r4n6q8s0tv"

Response Body

The document.

application/json
  1. response

One version of a person's HR document, without the file (Download a document). Through the API, standard documents only: identity documents, disciplinary letters and health documents stay inside Agoo.

id*HrDocumentId

An HR document ID (TypeID with the hrdoc prefix): one version of a document.

Match^hrdoc_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example"hrdoc_01m6k2a4c6e8g0j2r4n6q8s0tv"
object*"hr_document"
Value in"hr_document"
person_id*PersonId

A person ID (TypeID with the person prefix).

Match^person_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example"person_01kjsesxm0e4zbyvkr7bcfxbfg"
type*

A document's type, as the document names it.

title*string
version*integer
Range1 <= value
supersedes_id*|

The version it replaced.

status*string

checking until its virus scan passes; then current (or expired past its date); superseded once a newer version is in force; refused when the scan or the check of its bytes failed (its file was deleted).

Value in"checking""current""expired""superseded""refused"
visibility*"standard"

Through the API, standard documents only.

Value in"standard"
issued_on*|
Formatdate
expires_on*|
Formatdate
content_type*string
Value in"application/pdf""image/jpeg""image/png""image/webp"
byte_size*integer
sha256*string

Hex SHA-256 of the file, so a copy proves itself.

created_at*string
Formatdate-time
updated_at*string
Formatdate-time
curl -X GET 'https://api.agoohq.com/v1/hr-documents/hrdoc_01m6k2a4c6e8g0j2r4n6q8s0tv'
{  "id": "hrdoc_01m6k2a4c6e8g0j2r4n6q8s0tv",  "object": "hr_document",  "person_id": "person_01kjw4mg80efgb5aqbsqnxhtbh",  "type": {    "id": "hrdoctype_01m6k1z8b0d2f4h6k8m0p2r4tw",    "name": "Professional licence",    "category": "licence"  },  "title": "Medical and Dental Council licence",  "version": 2,  "supersedes_id": "hrdoc_01m3f8c0e2g4j6r8n0q2s4v6wy",  "status": "current",  "visibility": "standard",  "issued_on": "2026-01-02",  "expires_on": "2026-12-31",  "content_type": "application/pdf",  "byte_size": 176004,  "sha256": "9f2c0b8e4d1a7c3e5b6f8a0d2c4e6f8a1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a",  "created_at": "2026-01-04T09:12:00Z",  "updated_at": "2026-01-04T09:14:00Z"}