{
  "openapi": "3.1.0",
  "info": {
    "title": "NoKYC Score open data API",
    "version": "1.0.0",
    "description": "Scores for crypto exchanges, swaps, VPNs, hosting, eSIMs and cards you can use without identity checks. Every listing is graded separately for privacy and for fund safety, with public evidence. Free to use with attribution: link the listing page when you show a grade."
  },
  "servers": [
    {
      "url": "https://nokycscore.com/api/v1"
    }
  ],
  "paths": {
    "/services.json": {
      "get": {
        "operationId": "listServices",
        "summary": "List services with KYC level and grades",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "exchanges",
                "swaps",
                "aggregators",
                "p2p",
                "onramps",
                "cards",
                "gift-cards",
                "wallets",
                "payments",
                "marketplaces",
                "vpn",
                "vps",
                "hosting",
                "domains",
                "email",
                "esim",
                "phone",
                "email-alias",
                "ai",
                "proxies"
              ]
            }
          },
          {
            "name": "coin",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Ticker, e.g. XMR"
          },
          {
            "name": "maxKyc",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4
            }
          },
          {
            "name": "includeClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Services",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "onion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "category": {
                            "type": "string"
                          },
                          "tagline": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "suspended",
                              "defunct"
                            ]
                          },
                          "flag": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "kycLevel": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4,
                            "description": "0 ID never required … 4 ID mandatory for everyone"
                          },
                          "grades": {
                            "type": "object",
                            "properties": {
                              "privacy": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "safety": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "evidence": {
                                "type": "string"
                              },
                              "testsLast180Days": {
                                "type": "integer"
                              }
                            }
                          },
                          "incidents": {
                            "type": "integer"
                          },
                          "coins": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "reviewedAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "page": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/services/{slug}.json": {
      "get": {
        "operationId": "getService",
        "summary": "One listing in full: terms, attributes, grade ledger, tests and incidents",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Listing",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "slug": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "onion": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "category": {
                      "type": "string"
                    },
                    "tagline": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "suspended",
                        "defunct"
                      ]
                    },
                    "flag": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "kycLevel": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 4,
                      "description": "0 ID never required … 4 ID mandatory for everyone"
                    },
                    "grades": {
                      "type": "object",
                      "properties": {
                        "privacy": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "safety": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "evidence": {
                          "type": "string"
                        },
                        "testsLast180Days": {
                          "type": "integer"
                        }
                      }
                    },
                    "incidents": {
                      "type": "integer"
                    },
                    "coins": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "reviewedAt": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "page": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/search.json": {
      "get": {
        "operationId": "searchServices",
        "summary": "Search services by name, domain or keywords",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "e.g. \"monero swap\", \"mullvad\", \"ff.io\""
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "exchanges",
                "swaps",
                "aggregators",
                "p2p",
                "onramps",
                "cards",
                "gift-cards",
                "wallets",
                "payments",
                "marketplaces",
                "vpn",
                "vps",
                "hosting",
                "domains",
                "email",
                "esim",
                "phone",
                "email-alias",
                "ai",
                "proxies"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Matches",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "onion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "category": {
                            "type": "string"
                          },
                          "tagline": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "suspended",
                              "defunct"
                            ]
                          },
                          "flag": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "kycLevel": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4,
                            "description": "0 ID never required … 4 ID mandatory for everyone"
                          },
                          "grades": {
                            "type": "object",
                            "properties": {
                              "privacy": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "safety": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "evidence": {
                                "type": "string"
                              },
                              "testsLast180Days": {
                                "type": "integer"
                              }
                            }
                          },
                          "incidents": {
                            "type": "integer"
                          },
                          "coins": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "reviewedAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "page": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rank.json": {
      "get": {
        "operationId": "rankCategory",
        "summary": "Best-graded services in a category, services that rarely ask for ID first",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "exchanges",
                "swaps",
                "aggregators",
                "p2p",
                "onramps",
                "cards",
                "gift-cards",
                "wallets",
                "payments",
                "marketplaces",
                "vpn",
                "vps",
                "hosting",
                "domains",
                "email",
                "esim",
                "phone",
                "email-alias",
                "ai",
                "proxies"
              ]
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "safety",
                "privacy"
              ]
            }
          },
          {
            "name": "must_have",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated feature keys, e.g. monero,onion,no-account"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ranked services",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "services": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "slug": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "onion": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "category": {
                            "type": "string"
                          },
                          "tagline": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "suspended",
                              "defunct"
                            ]
                          },
                          "flag": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "kycLevel": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4,
                            "description": "0 ID never required … 4 ID mandatory for everyone"
                          },
                          "grades": {
                            "type": "object",
                            "properties": {
                              "privacy": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "safety": {
                                "type": [
                                  "number",
                                  "null"
                                ]
                              },
                              "evidence": {
                                "type": "string"
                              },
                              "testsLast180Days": {
                                "type": "integer"
                              }
                            }
                          },
                          "incidents": {
                            "type": "integer"
                          },
                          "coins": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "reviewedAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "page": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/incidents.json": {
      "get": {
        "operationId": "listIncidents",
        "summary": "Recorded incidents with sources",
        "parameters": [
          {
            "name": "service",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Service slug"
          }
        ],
        "responses": {
          "200": {
            "description": "Incidents",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  }
}