Deel · Capability
Endpoints — subpackage_milestones
Endpoints — subpackage_milestones. 4 operations. Lead operation: Create a Milestone. Self-contained Naftiko capability covering one Deel business surface.
What You Can Do
POST
Createcontractmilestone
— Create a Milestone
/v1/contracts/{contract-id}/milestones
GET
Getcontractmilestones
— Retrieve Milestones by Contract
/v1/contracts/{contract-id}/milestones
DELETE
Deletecontractmilestone
— Delete a Milestone
/v1/contracts/{contract-id}/milestones/{milestone-id}
GET
Getcontractmilestonebyid
— Retrieve a single milestone
/v1/contracts/{contract-id}/milestones/{milestone-id}
MCP Tools
create-milestone
Create a Milestone
retrieve-milestones-contract
Retrieve Milestones by Contract
read-only
idempotent
delete-milestone
Delete a Milestone
idempotent
retrieve-single-milestone
Retrieve a single milestone
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Endpoints — subpackage_milestones
description: 'Endpoints — subpackage_milestones. 4 operations. Lead operation: Create a Milestone. Self-contained Naftiko
capability covering one Deel business surface.'
tags:
- Deel
- subpackage_milestones
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DEEL_API_KEY: DEEL_API_KEY
capability:
consumes:
- type: http
namespace: contracts-endpoints-subpackage-milestones
baseUri: https://api.letsdeel.com/rest/v2
description: Endpoints — subpackage_milestones business capability. Self-contained, no shared references.
resources:
- name: contracts-contract_id-milestones
path: /contracts/{contract_id}/milestones
operations:
- name: createcontractmilestone
method: POST
description: Create a Milestone
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: path
type: string
description: The unique identifier of the Deel contract where the milestone will be added.
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: getcontractmilestones
method: GET
description: Retrieve Milestones by Contract
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: path
type: string
description: The unique identifier of the Deel contract for which milestones are being retrieved.
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: contracts-contract_id-milestones-milestone_id
path: /contracts/{contract_id}/milestones/{milestone_id}
operations:
- name: deletecontractmilestone
method: DELETE
description: Delete a Milestone
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: path
type: string
description: The unique identifier of the Deel contract from which the milestone will be deleted.
required: true
- name: milestone_id
in: path
type: string
description: The unique identifier of the milestone that is to be deleted.
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
- name: getcontractmilestonebyid
method: GET
description: Retrieve a single milestone
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: contract_id
in: path
type: string
description: Deel contract id.
required: true
- name: milestone_id
in: path
type: string
description: ID of milestone to return
required: true
- name: Authorization
in: header
type: string
description: '## Authentication'
required: true
authentication:
type: bearer
token: '{{env.DEEL_API_KEY}}'
exposes:
- type: rest
namespace: contracts-endpoints-subpackage-milestones-rest
port: 8080
description: REST adapter for Endpoints — subpackage_milestones. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/contracts/{contract-id}/milestones
name: contracts-contract-id-milestones
description: REST surface for contracts-contract_id-milestones.
operations:
- method: POST
name: createcontractmilestone
description: Create a Milestone
call: contracts-endpoints-subpackage-milestones.createcontractmilestone
with:
contract_id: rest.contract_id
Authorization: rest.Authorization
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: GET
name: getcontractmilestones
description: Retrieve Milestones by Contract
call: contracts-endpoints-subpackage-milestones.getcontractmilestones
with:
contract_id: rest.contract_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- path: /v1/contracts/{contract-id}/milestones/{milestone-id}
name: contracts-contract-id-milestones-milestone-id
description: REST surface for contracts-contract_id-milestones-milestone_id.
operations:
- method: DELETE
name: deletecontractmilestone
description: Delete a Milestone
call: contracts-endpoints-subpackage-milestones.deletecontractmilestone
with:
contract_id: rest.contract_id
milestone_id: rest.milestone_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- method: GET
name: getcontractmilestonebyid
description: Retrieve a single milestone
call: contracts-endpoints-subpackage-milestones.getcontractmilestonebyid
with:
contract_id: rest.contract_id
milestone_id: rest.milestone_id
Authorization: rest.Authorization
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: contracts-endpoints-subpackage-milestones-mcp
port: 9090
transport: http
description: MCP adapter for Endpoints — subpackage_milestones. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: create-milestone
description: Create a Milestone
hints:
readOnly: false
destructive: false
idempotent: false
call: contracts-endpoints-subpackage-milestones.createcontractmilestone
with:
contract_id: tools.contract_id
Authorization: tools.Authorization
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-milestones-contract
description: Retrieve Milestones by Contract
hints:
readOnly: true
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-milestones.getcontractmilestones
with:
contract_id: tools.contract_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: delete-milestone
description: Delete a Milestone
hints:
readOnly: false
destructive: true
idempotent: true
call: contracts-endpoints-subpackage-milestones.deletecontractmilestone
with:
contract_id: tools.contract_id
milestone_id: tools.milestone_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.
- name: retrieve-single-milestone
description: Retrieve a single milestone
hints:
readOnly: true
destructive: false
idempotent: true
call: contracts-endpoints-subpackage-milestones.getcontractmilestonebyid
with:
contract_id: tools.contract_id
milestone_id: tools.milestone_id
Authorization: tools.Authorization
outputParameters:
- type: object
mapping: $.