Deel · Capability
Endpoints — subpackage_people
Endpoints — subpackage_people. 6 operations. Lead operation: Create a direct employee. Self-contained Naftiko capability covering one Deel business surface.
What You Can Do
POST
Createadirectemployee
— Create a direct employee
/v1/people
GET
Getpeople
— List of People
/v1/people
GET
Getmycurrentpersonalprofile
— Get my current personal profile
/v1/people/me
GET
Getpersonbyid
— Retrieve a single person
/v1/people/{hris-profile-id}
PUT
Updatepersonworkinglocation
— Update working location
/v1/people/{id}/working-location
POST
Createpersonwithoutcontract
— Create a person without a contract
/v1/pwac
MCP Tools
create-direct-employee
Create a direct employee
list-people
List of People
read-only
idempotent
get-my-current-personal-profile
Get my current personal profile
read-only
idempotent
retrieve-single-person
Retrieve a single person
read-only
idempotent
update-working-location
Update working location
idempotent
create-person-without-contract
Create a person without a contract
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Endpoints — subpackage_people
description: 'Endpoints — subpackage_people. 6 operations. Lead operation: Create a direct employee. Self-contained Naftiko
capability covering one Deel business surface.'
tags:
- Deel
- subpackage_people
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DEEL_API_KEY: DEEL_API_KEY
capability:
consumes:
- type: http
namespace: platform-endpoints-subpackage-people
baseUri: https://api.letsdeel.com/rest/v2
description: Endpoints — subpackage_people business capability. Self-contained, no shared references.
resources:
- name: people
path: /people
operations:
- name: createadirectemployee
method: POST
description: Create a direct employee
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: getpeople
method: GET
description: List of People
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: offset
in: query
type: integer
description: Return a page of results with given number of records.
- name: limit
in: query
type: integer
description: Return a page of results with given number of records.
- name: search
in: query
type: string
description: Include a contract if by name or contractor name contains given search term.
- name: teams
in: query
type: array
description: Filter the results based on the team(group) the users contract is associated with
- name: fields
in: query
type: array
description: Pick the fields you want to see in the response in order to avoid a bloated people list output. Supports
dot notation (e.g., 'employments[0].contract_status') t
- name: sort_by
in: query
type: string
description: Sort people by given field name.
- name: sort_order
in: query
type: string
description: Order direction of results; ascending or descending.
- name: hiring_statuses
in: query
type: array
description: Employee's current hiring status.
- name: band_placements
in: query
type: array
description: Employee's current band placement.
- name: comparative_ratios_from
in: query
type: number
description: Employee's minimum band placement
- name: comparative_ratios_to
in: query
type: number
description: Employee's maximum band placement
- name: hiring_types
in: query
type: array
description: Filter people by hiring types
- name: person_statuses
in: query
type: array
description: Filter people by person (worker profile) lifecycle status.
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: people-me
path: /people/me
operations:
- name: getmycurrentpersonalprofile
method: GET
description: Get my current personal profile
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: people-hris_profile_id
path: /people/{hris_profile_id}
operations:
- name: getpersonbyid
method: GET
description: Retrieve a single person
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: hris_profile_id
in: path
type: string
description: Unique identifier for the person.
required: true
- name: include_custom_fields
in: query
type: boolean
description: Include custom fields in the response.
- name: include_worker_relations
in: query
type: boolean
description: Include worker relations in the response.
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: people-id-working-location
path: /people/{id}/working-location
operations:
- name: updatepersonworkinglocation
method: PUT
description: Update working location
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Hris profile ID
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: pwac
path: /pwac
operations:
- name: createpersonwithoutcontract
method: POST
description: Create a person without a contract
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: bearer
token: '{{env.DEEL_API_KEY}}'
exposes:
- type: rest
namespace: platform-endpoints-subpackage-people-rest
port: 8080
description: REST adapter for Endpoints — subpackage_people. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/people
name: people
description: REST surface for people.
operations:
- method: POST
name: createadirectemployee
description: Create a direct employee
call: platform-endpoints-subpackage-people.createadirectemployee
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: getpeople
description: List of People
call: platform-endpoints-subpackage-people.getpeople
with:
offset: rest.offset
limit: rest.limit
search: rest.search
teams: rest.teams
fields: rest.fields
sort_by: rest.sort_by
sort_order: rest.sort_order
hiring_statuses: rest.hiring_statuses
band_placements: rest.band_placements
comparative_ratios_from: rest.comparative_ratios_from
comparative_ratios_to: rest.comparative_ratios_to
hiring_types: rest.hiring_types
person_statuses: rest.person_statuses
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/people/me
name: people-me
description: REST surface for people-me.
operations:
- method: GET
name: getmycurrentpersonalprofile
description: Get my current personal profile
call: platform-endpoints-subpackage-people.getmycurrentpersonalprofile
with:
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/people/{hris-profile-id}
name: people-hris-profile-id
description: REST surface for people-hris_profile_id.
operations:
- method: GET
name: getpersonbyid
description: Retrieve a single person
call: platform-endpoints-subpackage-people.getpersonbyid
with:
hris_profile_id: rest.hris_profile_id
include_custom_fields: rest.include_custom_fields
include_worker_relations: rest.include_worker_relations
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/people/{id}/working-location
name: people-id-working-location
description: REST surface for people-id-working-location.
operations:
- method: PUT
name: updatepersonworkinglocation
description: Update working location
call: platform-endpoints-subpackage-people.updatepersonworkinglocation
with:
id: rest.id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/pwac
name: pwac
description: REST surface for pwac.
operations:
- method: POST
name: createpersonwithoutcontract
description: Create a person without a contract
call: platform-endpoints-subpackage-people.createpersonwithoutcontract
with:
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: platform-endpoints-subpackage-people-mcp
port: 9090
transport: http
description: MCP adapter for Endpoints — subpackage_people. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: create-direct-employee
description: Create a direct employee
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-people.createadirectemployee
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-people
description: List of People
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-people.getpeople
with:
offset: tools.offset
limit: tools.limit
search: tools.search
teams: tools.teams
fields: tools.fields
sort_by: tools.sort_by
sort_order: tools.sort_order
hiring_statuses: tools.hiring_statuses
band_placements: tools.band_placements
comparative_ratios_from: tools.comparative_ratios_from
comparative_ratios_to: tools.comparative_ratios_to
hiring_types: tools.hiring_types
person_statuses: tools.person_statuses
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: get-my-current-personal-profile
description: Get my current personal profile
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-people.getmycurrentpersonalprofile
with:
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: retrieve-single-person
description: Retrieve a single person
hints:
readOnly: true
destructive: false
idempotent: true
call: platform-endpoints-subpackage-people.getpersonbyid
with:
hris_profile_id: tools.hris_profile_id
include_custom_fields: tools.include_custom_fields
include_worker_relations: tools.include_worker_relations
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: update-working-location
description: Update working location
hints:
readOnly: false
destructive: false
idempotent: true
call: platform-endpoints-subpackage-people.updatepersonworkinglocation
with:
id: tools.id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-person-without-contract
description: Create a person without a contract
hints:
readOnly: false
destructive: false
idempotent: false
call: platform-endpoints-subpackage-people.createpersonwithoutcontract
with:
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.