Equinix · Capability
Metal API — Projects
Metal API — Projects. 11 operations. Lead operation: Retrieve all projects. Self-contained Naftiko capability covering one Equinix business surface.
What You Can Do
GET
Findprojects
— Retrieve all projects
/v1/projects
POST
Createproject
— Create a project
/v1/projects
DELETE
Deleteproject
— Delete the project
/v1/projects/{id}
GET
Findprojectbyid
— Retrieve a project
/v1/projects/{id}
PUT
Updateproject
— Update the project
/v1/projects/{id}
GET
Findprojectcustomdata
— Retrieve the custom metadata of a project
/v1/projects/{id}/customdata
POST
Createtransferrequest
— Create a transfer request
/v1/projects/{id}/transfers
GET
Findprojectinvitations
— Retrieve project invitations
/v1/projects/{project-id}/invitations
POST
Createprojectinvitation
— Create an invitation for a project
/v1/projects/{project-id}/invitations
GET
Findipreservationcustomdata
— Retrieve the custom metadata of an IP Reservation
/v1/projects/{project-id}/ips/{id}/customdata
GET
Findprojectmemberships
— Retrieve project memberships
/v1/projects/{project-id}/memberships
MCP Tools
retrieve-all-projects
Retrieve all projects
read-only
idempotent
create-project
Create a project
delete-project
Delete the project
idempotent
retrieve-project
Retrieve a project
read-only
idempotent
update-project
Update the project
idempotent
retrieve-custom-metadata-project
Retrieve the custom metadata of a project
read-only
idempotent
create-transfer-request
Create a transfer request
retrieve-project-invitations
Retrieve project invitations
read-only
idempotent
create-invitation-project
Create an invitation for a project
retrieve-custom-metadata-ip-reservation
Retrieve the custom metadata of an IP Reservation
read-only
idempotent
retrieve-project-memberships
Retrieve project memberships
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Metal API — Projects
description: 'Metal API — Projects. 11 operations. Lead operation: Retrieve all projects. Self-contained Naftiko capability
covering one Equinix business surface.'
tags:
- Equinix
- Projects
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
EQUINIX_API_KEY: EQUINIX_API_KEY
capability:
consumes:
- type: http
namespace: metal-projects
baseUri: https://api.equinix.com/metal/v1
description: Metal API — Projects business capability. Self-contained, no shared references.
resources:
- name: projects
path: /projects
operations:
- name: findprojects
method: GET
description: Retrieve all projects
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Filter results by name.
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: exclude
in: query
type: array
description: Nested attributes to exclude. Excluded objects will return only the href
- name: page
in: query
type: integer
description: Page to return
- name: per_page
in: query
type: integer
description: Items returned per page
- name: createproject
method: POST
description: Create a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: exclude
in: query
type: array
description: Nested attributes to exclude. Excluded objects will return only the href
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: projects-id
path: /projects/{id}
operations:
- name: deleteproject
method: DELETE
description: Delete the project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Project UUID
required: true
- name: findprojectbyid
method: GET
description: Retrieve a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Project UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: exclude
in: query
type: array
description: Nested attributes to exclude. Excluded objects will return only the href
- name: updateproject
method: PUT
description: Update the project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Project UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: exclude
in: query
type: array
description: Nested attributes to exclude. Excluded objects will return only the href
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: projects-id-customdata
path: /projects/{id}/customdata
operations:
- name: findprojectcustomdata
method: GET
description: Retrieve the custom metadata of a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: Project UUID
required: true
- name: projects-id-transfers
path: /projects/{id}/transfers
operations:
- name: createtransferrequest
method: POST
description: Create a transfer request
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: UUID of the project to be transferred
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: projects-project_id-invitations
path: /projects/{project_id}/invitations
operations:
- name: findprojectinvitations
method: GET
description: Retrieve project invitations
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: page
in: query
type: integer
description: Page to return
- name: per_page
in: query
type: integer
description: Items returned per page
- name: project_id
in: path
type: string
description: Project UUID
required: true
- name: createprojectinvitation
method: POST
description: Create an invitation for a project
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_id
in: path
type: string
description: Project UUID
required: true
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: projects-project_id-ips-id-customdata
path: /projects/{project_id}/ips/{id}/customdata
operations:
- name: findipreservationcustomdata
method: GET
description: Retrieve the custom metadata of an IP Reservation
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_id
in: path
type: string
description: Project UUID
required: true
- name: id
in: path
type: string
description: Ip Reservation UUID
required: true
- name: projects-project_id-memberships
path: /projects/{project_id}/memberships
operations:
- name: findprojectmemberships
method: GET
description: Retrieve project memberships
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: search
in: query
type: string
description: Search by member full name, id and email.
- name: include
in: query
type: array
description: Nested attributes to include. Included objects will return their full
- name: page
in: query
type: integer
description: Page to return
- name: per_page
in: query
type: integer
description: Items returned per page
- name: project_id
in: path
type: string
description: Project UUID
required: true
authentication:
type: apikey
key: X-Auth-Token
value: '{{env.EQUINIX_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: metal-projects-rest
port: 8080
description: REST adapter for Metal API — Projects. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/projects
name: projects
description: REST surface for projects.
operations:
- method: GET
name: findprojects
description: Retrieve all projects
call: metal-projects.findprojects
with:
name: rest.name
include: rest.include
exclude: rest.exclude
page: rest.page
per_page: rest.per_page
outputParameters:
- type: object
mapping: $.
- method: POST
name: createproject
description: Create a project
call: metal-projects.createproject
with:
include: rest.include
exclude: rest.exclude
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{id}
name: projects-id
description: REST surface for projects-id.
operations:
- method: DELETE
name: deleteproject
description: Delete the project
call: metal-projects.deleteproject
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- method: GET
name: findprojectbyid
description: Retrieve a project
call: metal-projects.findprojectbyid
with:
id: rest.id
include: rest.include
exclude: rest.exclude
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updateproject
description: Update the project
call: metal-projects.updateproject
with:
id: rest.id
include: rest.include
exclude: rest.exclude
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{id}/customdata
name: projects-id-customdata
description: REST surface for projects-id-customdata.
operations:
- method: GET
name: findprojectcustomdata
description: Retrieve the custom metadata of a project
call: metal-projects.findprojectcustomdata
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{id}/transfers
name: projects-id-transfers
description: REST surface for projects-id-transfers.
operations:
- method: POST
name: createtransferrequest
description: Create a transfer request
call: metal-projects.createtransferrequest
with:
id: rest.id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/invitations
name: projects-project-id-invitations
description: REST surface for projects-project_id-invitations.
operations:
- method: GET
name: findprojectinvitations
description: Retrieve project invitations
call: metal-projects.findprojectinvitations
with:
include: rest.include
page: rest.page
per_page: rest.per_page
project_id: rest.project_id
outputParameters:
- type: object
mapping: $.
- method: POST
name: createprojectinvitation
description: Create an invitation for a project
call: metal-projects.createprojectinvitation
with:
project_id: rest.project_id
include: rest.include
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/ips/{id}/customdata
name: projects-project-id-ips-id-customdata
description: REST surface for projects-project_id-ips-id-customdata.
operations:
- method: GET
name: findipreservationcustomdata
description: Retrieve the custom metadata of an IP Reservation
call: metal-projects.findipreservationcustomdata
with:
project_id: rest.project_id
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project-id}/memberships
name: projects-project-id-memberships
description: REST surface for projects-project_id-memberships.
operations:
- method: GET
name: findprojectmemberships
description: Retrieve project memberships
call: metal-projects.findprojectmemberships
with:
search: rest.search
include: rest.include
page: rest.page
per_page: rest.per_page
project_id: rest.project_id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: metal-projects-mcp
port: 9090
transport: http
description: MCP adapter for Metal API — Projects. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: retrieve-all-projects
description: Retrieve all projects
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findprojects
with:
name: tools.name
include: tools.include
exclude: tools.exclude
page: tools.page
per_page: tools.per_page
outputParameters:
- type: object
mapping: $.
- name: create-project
description: Create a project
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-projects.createproject
with:
include: tools.include
exclude: tools.exclude
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-project
description: Delete the project
hints:
readOnly: false
destructive: true
idempotent: true
call: metal-projects.deleteproject
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: retrieve-project
description: Retrieve a project
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findprojectbyid
with:
id: tools.id
include: tools.include
exclude: tools.exclude
outputParameters:
- type: object
mapping: $.
- name: update-project
description: Update the project
hints:
readOnly: false
destructive: false
idempotent: true
call: metal-projects.updateproject
with:
id: tools.id
include: tools.include
exclude: tools.exclude
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-custom-metadata-project
description: Retrieve the custom metadata of a project
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findprojectcustomdata
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: create-transfer-request
description: Create a transfer request
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-projects.createtransferrequest
with:
id: tools.id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-project-invitations
description: Retrieve project invitations
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findprojectinvitations
with:
include: tools.include
page: tools.page
per_page: tools.per_page
project_id: tools.project_id
outputParameters:
- type: object
mapping: $.
- name: create-invitation-project
description: Create an invitation for a project
hints:
readOnly: false
destructive: false
idempotent: false
call: metal-projects.createprojectinvitation
with:
project_id: tools.project_id
include: tools.include
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: retrieve-custom-metadata-ip-reservation
description: Retrieve the custom metadata of an IP Reservation
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findipreservationcustomdata
with:
project_id: tools.project_id
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: retrieve-project-memberships
description: Retrieve project memberships
hints:
readOnly: true
destructive: false
idempotent: true
call: metal-projects.findprojectmemberships
with:
search: tools.search
include: tools.include
page: tools.page
per_page: tools.per_page
project_id: tools.project_id
outputParameters:
- type: object
mapping: $.