GenuineAIGenuineAI
For usersFor developers
  • Overview
  • Guides
  • How-to
  • API reference
Documentation
  • Quickstart
  • Authentication
  • Errors
  • Rate limits
  • API reference
Platform
  • Platform overview
  • Solutions
  • Pricing
  • Sign in
Company
  • Status
  • Trust Center
  • Contact
  • Terms of Service
  • Privacy Policy

© 2026 GenuineAI Ventures LLC

support@genuinehq.com
Overview
Core
Media library
    Files
    Uploads
    Stock photos
    Downloads
    File versions
    File analysis
    Media analysis schemas
    Faces
      List facesgetDelete a facedeleteUpdate a facepatchLink a face to a personpatchSearch files by facepost
    Albums
    People
    Media tags
    Share links
    Publications
    Distribution control
AI
Documents
Knowledge
Creative
Website & content
Automation
Customer channels
Administration
Schemas
GenuineAI API
GenuineAI API

Faces

Faces detected in a photo. A face is a detection until it is linked to a person — naming and merging are in People.


List faces

GET
https://api.genuineai.app/api/v1
/files/{id}/faces

Beta — this operation may change on 30 days notice. See versioning.

Returns the faces detected in one photo, most confident first, each with the person it was matched to. fd_low_quality marks a face too blurry to match reliably.

List faces › path Parameters

id
​string · uuid · required

List faces › query Parameters

cursor
​string · maxLength: 512 · pattern: ^[A-Za-z0-9_-]+$
limit
​integer
offset
​integer · min: 0
sort
​string · minLength: 1 · maxLength: 64 · pattern: ^-?[a-z0-9_]+$

List faces › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List faces › Responses

Success

​Face[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/files/{id}/faces
curl https://api.genuineai.app/api/v1/files/:id/faces \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "fd_id": "00000000-0000-0000-0000-000000000000", "fd_file": "fd_file", "fd_person": "fd_person", "fd_confidence": 0, "fd_match_distance": "fd_match_distance", "fd_assigned_at": "2024-08-25T15:00:00Z", "fd_thumbnail": "fd_thumbnail", "fd_box": "fd_box", "fd_metadata": {}, "fd_age": "fd_age", "fd_gender": "fd_gender", "fd_gender_confidence": 0, "fd_expression": "fd_expression", "fd_expression_confidence": 0, "fd_sharpness": "fd_sharpness", "fd_created": "2024-08-25T15:00:00Z", "fd_low_quality": true, "fp_id": "00000000-0000-0000-0000-000000000000", "fp_name": "fp_name" } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Delete a face

DELETE
https://api.genuineai.app/api/v1
/files/{id}/faces/{face_id}

Beta — this operation may change on 30 days notice. See versioning.

Removes a detection that is not a face, or not one worth keeping. The photo is untouched.

Delete a face › path Parameters

face_id
​string · uuid · required
id
​string · uuid · required

Delete a face › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Delete a face › Responses

Success

No data returned
DELETE/files/{id}/faces/{face_id}
curl https://api.genuineai.app/api/v1/files/:id/faces/:face_id \ --request DELETE \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

Update a face

PATCH
https://api.genuineai.app/api/v1
/files/{id}/faces/{face_id}

Beta — this operation may change on 30 days notice. See versioning.

Adjusts the detection itself — its box or how it is treated. Who it belongs to is set separately.

Update a face › path Parameters

face_id
​string · uuid · required
id
​string · uuid · required

Update a face › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Update a face › Request Body optional

fd_age
​integer · min: 0 · max: 150
fd_gender
​string
fd_expression
​string

Update a face › Responses

Success

No data returned
PATCH/files/{id}/faces/{face_id}
curl https://api.genuineai.app/api/v1/files/:id/faces/:face_id \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "fd_age": 0, "fd_gender": "fd_gender", "fd_expression": "fd_expression" }'
Example Request Body
{ "fd_age": 0, "fd_gender": "fd_gender", "fd_expression": "fd_expression" }
json
Example Responses
No example specified for this content type

Link a face to a person

PATCH
https://api.genuineai.app/api/v1
/files/{id}/faces/{face_id}/link

Beta — this operation may change on 30 days notice. See versioning.

Links this detection to a person. A detection belongs to the file it was found in; the person is a separate resource, and this is the link between them.

Link a face to a person › path Parameters

face_id
​string · uuid · required
id
​string · uuid · required

Link a face to a person › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Link a face to a person › Request Body optional

person_index
​integer · min: 0

Link a face to a person › Responses

Success

No data returned
PATCH/files/{id}/faces/{face_id}/link
curl https://api.genuineai.app/api/v1/files/:id/faces/:face_id/link \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "person_index": 0 }'
Example Request Body
{ "person_index": 0 }
json
Example Responses
No example specified for this content type

Search files by face

POST
https://api.genuineai.app/api/v1
/files/face-search

Beta — this operation may change on 30 days notice. See versioning.

Search files by face › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Search files by face › Request Body optional

threshold
​number · min: 0 · max: 1
limit
​string · pattern: ^-?[0-9]+(\.[0-9]+)?…
offset
​string · pattern: ^-?[0-9]+(\.[0-9]+)?…

Search files by face › Responses

Success

No data returned
POST/files/face-search
curl https://api.genuineai.app/api/v1/files/face-search \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "threshold": 0, "limit": "limit", "offset": "offset" }'
Example Request Body
{ "threshold": 0, "limit": "limit", "offset": "offset" }
json
Example Responses
No example specified for this content type

Media analysis schemasAlbums