Skip to content

ISPs

Reference for the isps endpoints of the Surfmeter API.

Surfmeter API – ISPs v1

The Surfmeter API lets you manage clients, users, capabilities, measurements, and organization-wide settings programmatically.


Servers

Description URL
https://surfmeter-server.{host}/client_admin_api/v1 https://surfmeter-server.{host}/client_admin_api/v1

ISPs


GET /isps

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.
country query string No Two-letter ISO country code filter (e.g. "AT", "DE").
name query string No Case-insensitive substring match against the ISP name. When present, the response uses the compact combobox shape (id, name, country only) and is capped at 20 results.
type query string No Filter by ISP type. Values outside the enum are ignored server-side.
verified query boolean No Filter by verified status.

Response 200 OK

{
    "isps": [
        {
            "id": 0,
            "name": "string",
            "type": "string",
            "alternative_names": [
                "string"
            ],
            "as_numbers": [
                "string"
            ],
            "country": "string",
            "is_vpn": true,
            "verified": true,
            "created_at": "string",
            "isp_contracts_count": 0
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Response for ISPs index with all ISPs and full details (no pagination)",
    "type": "object",
    "required": [
        "isps"
    ],
    "properties": {
        "isps": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "id",
                    "name",
                    "type",
                    "country"
                ],
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "alternative_names": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "as_numbers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "type": "string"
                    },
                    "is_vpn": {
                        "type": "boolean",
                        "nullable": true
                    },
                    "verified": {
                        "type": "boolean",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "isp_contracts_count": {
                        "type": "integer"
                    }
                }
            }
        }
    }
}

POST /isps

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.

Request body

{
    "name": "string",
    "country": "string",
    "type": "string",
    "is_vpn": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Data for ISP create action",
    "type": "object",
    "required": [
        "name",
        "country",
        "type"
    ],
    "properties": {
        "name": {
            "type": "string"
        },
        "country": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "is_vpn": {
            "type": "boolean",
            "nullable": true
        }
    }
}

Response 201 Created

{
    "isp": {
        "id": 0,
        "name": "string",
        "type": "string",
        "alternative_names": [
            "string"
        ],
        "as_numbers": [
            "string"
        ],
        "country": "string",
        "is_vpn": true,
        "verified": true,
        "created_at": "string",
        "isp_contracts_count": 0
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Response for ISP create action",
    "type": "object",
    "required": [
        "isp"
    ],
    "properties": {
        "isp": {
            "type": "object",
            "required": [
                "id",
                "name",
                "type",
                "country"
            ],
            "properties": {
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "alternative_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "as_numbers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "country": {
                    "type": "string"
                },
                "is_vpn": {
                    "type": "boolean",
                    "nullable": true
                },
                "verified": {
                    "type": "boolean",
                    "nullable": true
                },
                "created_at": {
                    "type": "string"
                },
                "isp_contracts_count": {
                    "type": "integer"
                }
            }
        }
    }
}

GET /isps/{id}

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.
id path string No

Response 200 OK

{
    "isp": {
        "id": 0,
        "name": "string",
        "type": "string",
        "alternative_names": [
            "string"
        ],
        "as_numbers": [
            "string"
        ],
        "country": "string",
        "is_vpn": true,
        "verified": true,
        "created_at": "string",
        "isp_contracts_count": 0,
        "isp_contracts": [
            {
                "id": 0,
                "isp_id": 0,
                "client_id": 0,
                "upload_speed": 0,
                "download_speed": 0,
                "monthly_price": 10.12,
                "currency": "string",
                "assumed_tariff": "string",
                "connection_type": "string",
                "name": "string",
                "valid_from": "string",
                "valid_until": "string",
                "client_uuid": "string",
                "client_label": "string"
            }
        ]
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Response for ISP show action with full details and contracts",
    "type": "object",
    "required": [
        "isp"
    ],
    "properties": {
        "isp": {
            "type": "object",
            "required": [
                "id",
                "name",
                "type",
                "country"
            ],
            "properties": {
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "alternative_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "as_numbers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "country": {
                    "type": "string"
                },
                "is_vpn": {
                    "type": "boolean",
                    "nullable": true
                },
                "verified": {
                    "type": "boolean",
                    "nullable": true
                },
                "created_at": {
                    "type": "string"
                },
                "isp_contracts_count": {
                    "type": "integer"
                },
                "isp_contracts": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "id",
                            "isp_id",
                            "client_id"
                        ],
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "isp_id": {
                                "type": "integer"
                            },
                            "client_id": {
                                "type": "integer"
                            },
                            "upload_speed": {
                                "type": "integer",
                                "nullable": true
                            },
                            "download_speed": {
                                "type": "integer",
                                "nullable": true
                            },
                            "monthly_price": {
                                "type": "number",
                                "nullable": true
                            },
                            "currency": {
                                "type": "string",
                                "nullable": true
                            },
                            "assumed_tariff": {
                                "type": "string",
                                "nullable": true
                            },
                            "connection_type": {
                                "type": "string",
                                "nullable": true
                            },
                            "name": {
                                "type": "string"
                            },
                            "valid_from": {
                                "type": "string",
                                "nullable": true
                            },
                            "valid_until": {
                                "type": "string",
                                "nullable": true
                            },
                            "client_uuid": {
                                "type": "string",
                                "nullable": true
                            },
                            "client_label": {
                                "type": "string",
                                "nullable": true
                            }
                        }
                    }
                }
            }
        }
    }
}

PUT /isps/{id}

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.
id path string No

Request body

{
    "name": "string",
    "country": "string",
    "type": "string",
    "is_vpn": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Data for ISP update action",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "country": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "is_vpn": {
            "type": "boolean",
            "nullable": true
        }
    }
}

Response 200 OK

{
    "isp": {
        "id": 0,
        "name": "string",
        "type": "string",
        "alternative_names": [
            "string"
        ],
        "as_numbers": [
            "string"
        ],
        "country": "string",
        "is_vpn": true,
        "verified": true,
        "created_at": "string",
        "isp_contracts_count": 0
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Response for ISP update action",
    "type": "object",
    "required": [
        "isp"
    ],
    "properties": {
        "isp": {
            "type": "object",
            "required": [
                "id",
                "name",
                "type",
                "country"
            ],
            "properties": {
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "alternative_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "as_numbers": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "country": {
                    "type": "string"
                },
                "is_vpn": {
                    "type": "boolean",
                    "nullable": true
                },
                "verified": {
                    "type": "boolean",
                    "nullable": true
                },
                "created_at": {
                    "type": "string"
                },
                "isp_contracts_count": {
                    "type": "integer"
                }
            }
        }
    }
}

DELETE /isps/{id}

Input parameters

Parameter In Type Default Nullable Description
ApiKeyAuth header string N/A No API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.
id path string No

Response 200 OK

Schema of the response body
{
    "description": "Response for ISP destroy action",
    "type": "object",
    "properties": {}
}

Schemas

IspCreateData

Name Type
country string
is_vpn boolean| null
name string
type string

IspCreateResponse

Name Type
isp Properties: id, name, type, alternative_names, as_numbers, country, is_vpn, verified, created_at, isp_contracts_count

IspDestroyResponse

IspsAllIndexResponse

Name Type
isps Array<Properties: id, name, type, alternative_names, as_numbers, country, is_vpn, verified, created_at, isp_contracts_count>

IspShowResponse

Name Type
isp Properties: id, name, type, alternative_names, as_numbers, country, is_vpn, verified, created_at, isp_contracts_count, isp_contracts

IspUpdateData

Name Type
country string
is_vpn boolean| null
name string
type string

IspUpdateResponse

Name Type
isp Properties: id, name, type, alternative_names, as_numbers, country, is_vpn, verified, created_at, isp_contracts_count

Security schemes

Name Type Scheme Description
ApiKeyAuth apiKey API key used on every request. Create keys in the Surfmeter Dashboard under Keys → Surfmeter API Keys.