Pangolin (Fossorial) Site API
The Site API from Pangolin (Fossorial) — 10 operation(s) for site.
The Site API from Pangolin (Fossorial) — 10 operation(s) for site.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/pangolin-net:pangolin-net-site-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Pangolin Net Site API
version: v1
description: 'Operations tagged Site across 2 of this provider''s published API definitions: pangolin-net-openapi-remote.json, pangolin-net-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /v1
tags:
- name: Site
paths:
/org/{orgId}/site/{niceId}:
get:
description: Get a site by orgId and niceId. NiceId is a readable ID for the site and unique on a per org basis.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: string
required: true
name: orgId
in: path
- schema:
type: string
required: true
name: niceId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Get org by org id site by nice id
x-summary-source: derived
operationId: getOrgByOrgIdSiteByNiceId
x-operation-id-source: derived
servers:
- url: /v1
/site/{siteId}:
get:
description: Get a site by siteId.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: number
required: true
name: siteId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Get site by site id
x-summary-source: derived
operationId: getSiteBySiteId
x-operation-id-source: derived
delete:
description: Delete a site and all its associated data.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
- schema:
type: boolean
description: When true, also deletes all public and private resources associated with this site
required: false
description: When true, also deletes all public and private resources associated with this site
name: deleteResources
in: query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Delete site by site id
x-summary-source: derived
operationId: deleteSiteBySiteId
x-operation-id-source: derived
post:
description: Update a site.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 255
niceId:
type: string
minLength: 1
maxLength: 255
dockerSocketEnabled:
type: boolean
autoUpdateEnabled:
type: boolean
autoUpdateOverrideOrg:
type: boolean
additionalProperties: false
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create site by site id
x-summary-source: derived
operationId: postSiteBySiteId
x-operation-id-source: derived
servers:
- url: /v1
/org/{orgId}/site:
put:
description: Create a new site.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: string
required: true
name: orgId
in: path
requestBody:
content:
application/json:
example:
name: My Site
type: newt
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 255
exitNodeId:
type: integer
exclusiveMinimum: 0
niceId:
type: string
minLength: 1
maxLength: 255
pubKey:
type: string
subnet:
type: string
newtId:
type: string
secret:
type: string
address:
type: string
type:
type: string
enum:
- newt
- wireguard
- local
required:
- name
- type
additionalProperties: false
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Replace org by org id site
x-summary-source: derived
operationId: putOrgByOrgIdSite
x-operation-id-source: derived
servers:
- url: /v1
/site/{siteId}/approve:
post:
description: Approve a pending site and approve (and enable when needed) its associated resources.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create site by site id approve
x-summary-source: derived
operationId: postSiteBySiteIdApprove
x-operation-id-source: derived
servers:
- url: /v1
/site/{siteId}/reject:
post:
description: Reject a pending site by deleting it and any associated resources that are still pending.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create site by site id reject
x-summary-source: derived
operationId: postSiteBySiteIdReject
x-operation-id-source: derived
servers:
- url: /v1
/org/{orgId}/sites:
get:
description: List all sites in an organization
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: string
required: true
name: orgId
in: path
- schema:
type: integer
default: 20
description: Number of items per page
required: false
description: Number of items per page
name: pageSize
in: query
- schema:
type: integer
default: 1
description: Page number to retrieve
required: false
description: Page number to retrieve
name: page
in: query
- schema:
type: string
required: false
name: query
in: query
- schema:
type: string
enum:
- name
- megabytesIn
- megabytesOut
description: Field to sort by
required: false
description: Field to sort by
name: sort_by
in: query
- schema:
type: string
enum:
- asc
- desc
default: asc
description: Sort order
required: false
description: Sort order
name: order
in: query
- schema:
type: boolean
description: Filter by online status
required: false
description: Filter by online status
name: online
in: query
- schema:
type: string
enum:
- pending
- approved
description: Filter by site status
required: false
description: Filter by site status
name: status
in: query
- schema:
type: array
description: Filter by site labels
required: false
description: Filter by site labels
name: labels
in: query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Get org by org id sites
x-summary-source: derived
operationId: getOrgByOrgIdSites
x-operation-id-source: derived
servers:
- url: /v1
/org/{orgId}/pick-site-defaults:
get:
description: Return pre-requisite data for creating a site, such as the exit node, subnet, Newt credentials, etc.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: string
required: true
name: orgId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
properties:
exitNodeId:
type: number
address:
type: string
publicKey:
type: string
name:
type: string
listenPort:
type: number
endpoint:
type: string
subnet:
type: string
newtId:
type: string
newtSecret:
type: string
clientAddress:
type: string
required:
- exitNodeId
- address
- publicKey
- name
- listenPort
- endpoint
- subnet
- newtId
- newtSecret
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Get org by org id pick site defaults
x-summary-source: derived
operationId: getOrgByOrgIdPickSiteDefaults
x-operation-id-source: derived
servers:
- url: /v1
/site/{siteId}/restart:
post:
description: Restart a site.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create site by site id restart
x-summary-source: derived
operationId: postSiteBySiteIdRestart
x-operation-id-source: derived
servers:
- url: /v1
/org/{orgId}/reset-bandwidth:
post:
description: Reset all sites in selected organization bandwidth counters.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: string
required: true
name: orgId
in: path
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type:
- object
- 'null'
additionalProperties: {}
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create org by org id reset bandwidth
x-summary-source: derived
operationId: postOrgByOrgIdResetBandwidth
x-operation-id-source: derived
servers:
- url: /v1
/re-key/{siteId}/regenerate-site-secret:
post:
description: Regenerate the credentials for a site. For newt sites a new secret is required; for wireguard sites a new public key is required.
tags:
- Site
security:
- Bearer Auth: []
parameters:
- schema:
type: integer
exclusiveMinimum: 0
required: true
name: siteId
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
type: string
enum:
- newt
- wireguard
secret:
type: string
minLength: 1
maxLength: 255
pubKey:
type: string
disconnect:
type: boolean
default: true
required:
- type
additionalProperties: false
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
newtId:
type: string
success:
type: boolean
error:
type: boolean
message:
type: string
status:
type: number
required:
- data
- success
- error
- message
- status
summary: Create re key by site id regenerate site secret
x-summary-source: derived
operationId: postReKeyBySiteIdRegenerateSiteSecret
x-operation-id-source: derived
servers:
- url: /v1
components:
securitySchemes:
Bearer_Auth:
type: http
scheme: bearer
x-refined-from:
- pangolin-net-openapi-remote.json
- pangolin-net-openapi.json