API Docs

Developer-first connectivity API

Kordu Probe exposes a small anonymous API with one primary endpoint. Website checks still use Turnstile, but direct API and curl usage do not require sign-up or browser challenges.

Endpoints

MethodPathPurpose
GET/api/healthHealth and capability status
GET/api/openapi.jsonMachine-readable schema
POST/api/checkUnified connectivity check
POST/api/probeTCP compatibility alias
GET/.well-known/api-catalogRFC 9727 API catalog

Supported modules

  • tcp: open, closed, or timeout from the public probe vantage
  • dns: A, AAAA, CNAME, MX, NS, TXT, and reverse lookups where useful
  • http: HTTP/HTTPS status, redirects, final URL, and response timing
  • ip: target normalization, reverse DNS, and RDAP-backed metadata
  • udp: explicitly unsupported in v1 on Cloudflare-only infrastructure

Unified check example

curl https://probe.kordu.tools/api/check \
  -X POST \
  -H "content-type: application/json" \
  -d '{
    "target": "example.com",
    "port": 443,
    "modules": ["tcp", "dns", "http", "ip"],
    "timeoutMs": 3000
  }'

Compatibility alias

curl https://probe.kordu.tools/api/probe \
  -X POST \
  -H "content-type: application/json" \
  -d '{
    "target": "example.com",
    "port": 443
  }'

Response model

Responses are modular. Each requested capability returns its own result block, and partial failures are reported in errors[] without collapsing the whole request when non-critical modules fail.

{
  "target": "example.com",
  "normalized": {
    "input": "example.com",
    "value": "example.com",
    "kind": "domain",
    "hostname": "example.com",
    "ip": null
  },
  "resolvedAddresses": ["93.184.216.34"],
  "modules": ["dns", "ip", "tcp", "http"],
  "results": {
    "tcp": { "status": "open" },
    "dns": { "status": "ok" },
    "http": { "status": "ok", "statusCode": 200 },
    "ip": { "status": "ok" }
  },
  "errors": []
}

OpenAPI excerpt

{
  "openapi": "3.1.0",
  "info": {
    "title": "Kordu Probe API",
    "version": "0.2.0",
    "description": "Anonymous public connectivity checks from a canonical Cloudflare Workers vantage, with modular TCP, DNS, HTTP/HTTPS, and IP/domain diagnostics."
  },
  "paths": {
    "/api/health": {
      "get": {
        "summary": "Health endpoint",
        "responses": {
          "200": {
            "description": "API is healthy"
          }
        }
      }
    },
    "/api/openapi.json": {
      "get": {
        "summary": "OpenAPI document",
        "responses": {
          "200": {
            "description": "Machine-readable API schema"
          }
        }
      }
    },
    "/api/check": {
      "post": {
        "summary": "Run a connectivity check",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "description": "Public hostname or IP address to inspect."
                  },
                  "port": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 65535
                  },
                  "modules": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "tcp",
                        "dns",
                        "http",
                        "ip",
                        "udp"
                      ]
                    }
                  },
                  "timeoutMs": {
                    "type": "integer",
                    "minimum": 250,
                    "maximum": 10000,
                    "default": 3000
                  },
                  "http": {
                    "type": "object",
                    "properties": {
                      "scheme": {
                        "type": "string",
                        "enum": [
                          "http",
                          "https"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "HEAD",
                          "GET"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Connectivity check completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "target",
                    "normalized",
                    "resolvedAddresses",
                    "vantage",
                    "modules",
                    "results",
                    "errors"
                  ],
                  "properties": {
                    "target": {
                      "type": "string"
                    },
                    "normalized": {
                      "type": "object",
                      "required": [
                        "input",
                        "value",
                        "kind",
                        "hostname",
                        "ip"
                      ],
                      "properties": {
                        "input": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "ip",
                            "domain"
                          ]
                        },
                        "hostname": {
                          "type": "string",
                          "nullable": true
                        },
                        "ip": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "resolvedAddresses": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "vantage": {
                      "type": "object",
                      "required": [
                        "id",
                        "label",
                        "regionHint"
                      ],
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        },
                        "regionHint": {
                          "type": "string"
                        }
                      }
                    },
                    "modules": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "tcp",
                          "dns",
                          "http",
                          "ip",
                          "udp"
                        ]
                      }
                    },
                    "results": {
                      "type": "object",
                      "properties": {
                        "tcp": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "open",
                                "closed",
                                "timeout"
                              ]
                            },
                            "moduleStatus": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "timeout"
                              ]
                            },
                            "latencyMs": {
                              "type": "integer",
                              "minimum": 0
                            },
                            "explanation": {
                              "type": "string"
                            },
                            "port": {
                              "type": "integer"
                            }
                          }
                        },
                        "dns": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "timeout",
                                "unsupported"
                              ]
                            },
                            "resolver": {
                              "type": "string"
                            },
                            "hostname": {
                              "type": "string",
                              "nullable": true
                            },
                            "reverseNames": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "records": {
                              "type": "object",
                              "properties": {
                                "a": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "aaaa": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "cname": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "mx": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "exchange": {
                                        "type": "string"
                                      },
                                      "priority": {
                                        "type": "integer"
                                      }
                                    }
                                  }
                                },
                                "ns": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "txt": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        },
                        "http": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "timeout",
                                "unsupported"
                              ]
                            },
                            "scheme": {
                              "type": "string",
                              "enum": [
                                "http",
                                "https"
                              ]
                            },
                            "method": {
                              "type": "string",
                              "enum": [
                                "HEAD",
                                "GET"
                              ]
                            },
                            "url": {
                              "type": "string"
                            },
                            "finalUrl": {
                              "type": "string",
                              "nullable": true
                            },
                            "statusCode": {
                              "type": "integer",
                              "nullable": true
                            },
                            "ok": {
                              "type": "boolean"
                            },
                            "latencyMs": {
                              "type": "integer",
                              "nullable": true
                            },
                            "redirectChain": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": "string"
                                  },
                                  "statusCode": {
                                    "type": "integer"
                                  },
                                  "location": {
                                    "type": "string",
                                    "nullable": true
                                  }
                                }
                              }
                            }
                          }
                        },
                        "ip": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "ok",
                                "failed",
                                "timeout",
                                "unsupported"
                              ]
                            },
                            "subject": {
                              "type": "string"
                            },
                            "ip": {
                              "type": "string",
                              "nullable": true
                            },
                            "ipVersion": {
                              "type": "string",
                              "enum": [
                                "IPv4",
                                "IPv6"
                              ],
                              "nullable": true
                            },
                            "reverseNames": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "source": {
                              "type": "string"
                            },
                            "rdap": {
                              "type": "object",
                              "nullable": true,
                              "properties": {
                                "objectClassName": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "handle": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "name": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "country": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "parentHandle": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "startAddress": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "endAddress": {
                                  "type": "string",
                                  "nullable": true
                                }
                              }
                            }
                          }
                        },
                        "udp": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "unsupported"
                              ]
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "module",
                          "code",
                          "message"
                        ],
                        "properties": {
                          "module": {
                            "type": "string",
                            "enum": [
                              "tcp",
                              "dns",
                              "http",
                              "ip",
                              "udp"
                            ]
                          },
                          "code": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          },
                          "retryable": {
                            "type": "boolean"
                          }
                        }
                      }
                    },
                    "commands": {
                      "type": "object",
                      "properties": {
                        "tcp": {
                          "type": "object",
                          "properties": {
                            "curl": {
                              "type": "string"
                            },
                            "netcat": {
                              "type": "string"
                            },
                            "powershell": {
                              "type": "string"
                            }
                          }
                        },
                        "http": {
                          "type": "object",
                          "properties": {
                            "curl": {
                              "type": "string"
                            },
                            "powershell": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid target or malformed request"
          },
          "429": {
            "description": "Rate-limited"
          }
        }
      }
    },
    "/api/probe": {
      "post": {
        "summary": "Compatibility TCP probe alias",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target",
                  "port"
                ],
                "properties": {
                  "target": {
                    "type": "string",
                    "description": "Public hostname or IP address to test."
                  },
                  "port": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 65535
                  },
                  "timeoutMs": {
                    "type": "integer",
                    "minimum": 250,
                    "maximum": 10000,
                    "default": 3000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "TCP probe completed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "latencyMs",
                    "target",
                    "vantage",
                    "explanation",
                    "commands"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "open",
                        "closed",
                        "timeout"
                      ]
                    },
                    "latencyMs": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "target": {
                      "type": "string"
                    },
                    "resolvedAddress": {
                      "type": "string",
                      "nullable": true
                    },
                    "explanation": {
                      "type": "string"
                    },
                    "commands": {
                      "type": "object",
                      "required": [
                        "curl",
                        "netcat",
                        "powershell"
                      ],
                      "properties": {
                        "curl": {
                          "type": "string"
                        },
                        "netcat": {
                          "type": "string"
                        },
                        "powershell": {
                          "type": "string"
                        }
                      }
                    },
                    "vantage": {
                      "type": "object",
                      "required": [
                        "id",
                        "label",
                        "regionHint"
                      ],
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        },
                        "regionHint": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid target or malformed request"
          },
          "429": {
            "description": "Rate-limited"
          }
        }
      }
    }
  }
}