Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/zerotier-network-member-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
description: 'ZeroTier Central Network Management Portal API.<p>All API requests must have an API token header specified in the <code>Authorization: token xxxxx</code> format. You can generate your API key by logging into <a href="https://my.zerotier.com">ZeroTier Central</a> and creating a token on the Account page.</p><p>eg. <code>curl -X GET -H "Authorization: token xxxxx" https://api.zerotier.com/api/v1/network</code></p><p><h3>Rate Limiting</h3></p><p>The ZeroTier Central API implements rate limiting. Paid users are limited to 100 requests per second. Free users are limited to 20 requests per second.</p> <p> You can get the OpenAPI spec here as well: <code>https://docs.zerotier.com/api/central/ref-v1.json</code></p>'
version: v1
title: ZeroTier Central controller Network Member API
contact:
name: ZeroTier Support Discussion Forum
url: https://discuss.zerotier.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.zerotier.com/api/v1
description: Production Server
security:
- tokenAuth: []
tags:
- name: network-member
description: Network member operations
paths:
/network/{networkID}/member:
get:
tags:
- network-member
summary: Returns a list of Members on the network.
operationId: getNetworkMemberList
parameters:
- name: networkID
description: ID of the network to return
in: path
required: true
schema:
type: string
responses:
'200':
description: member list get success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Member'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/AccessDeniedError'
'404':
$ref: '#/components/responses/NotFound'
/network/{networkID}/member/{memberID}:
get:
tags:
- network-member
operationId: getNetworkMember
summary: Return an individual member on a network
parameters:
- name: networkID
description: ID of the network
in: path
required: true
schema:
type: string
- name: memberID
description: ID of the member
in: path
required: true
schema:
type: string
responses:
'200':
description: member get success
content:
application/json:
schema:
$ref: '#/components/schemas/Member'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/AccessDeniedError'
'404':
$ref: '#/components/responses/NotFound'
post:
tags:
- network-member
operationId: updateNetworkMember
summary: Modify a network member
parameters:
- name: networkID
description: ID of the network
in: path
required: true
schema:
type: string
- name: memberID
description: ID of the member
in: path
required: true
schema:
type: string
requestBody:
description: Member object JSON
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Member'
responses:
'200':
description: member changed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Member'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/AccessDeniedError'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- network-member
operationId: deleteNetworkMember
summary: Delete a network member
parameters:
- name: networkID
description: ID of the network
in: path
required: true
schema:
type: string
- name: memberID
description: ID of the member
in: path
required: true
schema:
type: string
responses:
'200':
description: member deleted
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/AccessDeniedError'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
NotFound:
description: Item not found
UnauthorizedError:
description: Authorization required
AccessDeniedError:
description: Access denied
schemas:
MemberConfig:
type: object
properties:
activeBridge:
type:
- boolean
- 'null'
readOnly: false
description: Allow the member to be a bridge on the network
example: false
authorized:
type:
- boolean
- 'null'
readOnly: false
description: Is the member authorized on the network
example: true
capabilities:
type:
- array
- 'null'
items:
type: integer
creationTime:
type:
- integer
- 'null'
format: int64
readOnly: true
description: Time the member was created or first tried to join the network
example: 1599853509872
id:
type:
- string
- 'null'
readOnly: true
description: ID of the member node. This is the 10 digit identifier that identifies a ZeroTier node.
example: abcdef01234
identity:
type:
- string
- 'null'
readOnly: true
description: Public Key of the member's Identity
example: abcdef0123:0:abcdef0123abcdef0123abcdef0123abcdef0123abcdef0123abcdef0123abcdef0123
ipAssignments:
type:
- array
- 'null'
readOnly: false
description: List of assigned IP addresses
items:
type: string
example:
- 10.0.0.3
lastAuthorizedTime:
type:
- integer
- 'null'
format: int64
readOnly: true
description: Time the member was authorized on the network
example: 1599853637989
lastDeauthorizedTime:
type:
- integer
- 'null'
format: int64
readOnly: true
description: Time the member was deauthorized on the network
example: 0
noAutoAssignIps:
type:
- boolean
- 'null'
readOnly: false
description: Exempt this member from the IP auto assignment pool on a Network
example: false
revision:
type:
- integer
- 'null'
readOnly: true
description: Member record revision count
example: 123
ssoExempt:
type:
- boolean
- 'null'
readOnly: false
description: Allow the member to be authorized without OIDC/SSO
example: false
tags:
type:
- array
- 'null'
items:
type: array
items:
anyOf:
- type: integer
- type: boolean
readOnly: false
description: Array of 2 member tuples of tag [ID, tag value]
example:
- - 123
- 456
vMajor:
type:
- integer
- 'null'
readOnly: true
description: Major version of the client
example: 1
vMinor:
type:
- integer
- 'null'
readOnly: true
description: Minor version of the client
example: 6
vRev:
type:
- integer
- 'null'
readOnly: true
description: Revision number of the client
example: 3
vProto:
type:
- integer
- 'null'
readOnly: true
description: Protocol version of the client
example: 12
Member:
type: object
properties:
id:
type:
- string
- 'null'
example: 8056c2e21c000001-abcdef0123
description: concatenation of network ID and member ID
readOnly: true
deprecated: true
clock:
type:
- integer
- 'null'
format: int64
example: 1612993759070
readOnly: true
networkId:
type:
- string
- 'null'
example: 8056c2e21c000001
readOnly: true
nodeId:
type:
- string
- 'null'
example: abcdef01234
description: ZeroTier ID of the member
readOnly: true
controllerId:
type:
- string
- 'null'
example: 8056c2e21c
readOnly: true
deprecated: true
hidden:
type:
- boolean
- 'null'
example: false
description: Whether or not the member is hidden in the UI
name:
type:
- string
- 'null'
example: my-cray-supercomputer
readOnly: false
description: User defined name of the member
description:
type:
- string
- 'null'
example: My super awesome cray that I got ZeroTier to run on
readOnly: false
description: User defined description of the member
config:
$ref: '#/components/schemas/MemberConfig'
lastOnline:
type:
- integer
- 'null'
format: int64
readOnly: true
description: 'Last seen time of the member (milliseconds since epoch). Note: This data is considered ephemeral and may be reset to 0 at any time without warning.'
example: 1612993673254
deprecated: true
lastSeen:
type:
- integer
- 'null'
format: int64
readOnly: true
description: 'Time the member last checked in with the network controller in milliseconds since epoch. Note: This data is considered ephemeral and may be reset to 0 at any time without warning.'
example: 1612993673254
physicalAddress:
type:
- string
- 'null'
readOnly: true
description: 'IP address the member last spoke to the controller via (milliseconds since epoch). Note: This data is considered ephemeral and may be reset to 0 at any time without warning.'
example: 8.8.8.8
clientVersion:
type:
- string
- 'null'
readOnly: true
description: ZeroTier version the member is running
example: 1.6.3
protocolVersion:
type:
- integer
- 'null'
readOnly: true
description: ZeroTier protocol version
example: 12
supportsRulesEngine:
type:
- boolean
- 'null'
readOnly: true
description: Whether or not the client version is new enough to support the rules engine (1.4.0+)
securitySchemes:
tokenAuth:
type: http
scheme: token