AI八字命理预测大师🔥

AI八字命理预测大师🔥 · Ações GPT

BaZi Paipan & Report Public API

Public endpoints for generating BaZi (八字) reports, simplified paipan JSON, and rendered image/CDN URLs.

  • GET /v1/bazi/paipan/urlGenerate paipan image URL

    Render a paipan image and return its CDN URL.

  • GET /v1/bazi/paipan/jsonGet simplified paipan JSON

    Returns simplified paipan data plus the rendered image URL.

  • GET /v1/bazi/paipan/imageRender paipan image

    Streams the generated paipan JPEG with render metadata headers.

  • GET /v1/bazi/report/jsonGenerate BaZi report JSON

    Returns the full structured BaZi report, including pillars and interpretations.

Esquema API original
{
  "openapi": "3.1.0",
  "info": {
    "title": "BaZi Paipan & Report Public API",
    "version": "1.0.0",
    "description": "Public endpoints for generating BaZi (八字) reports, simplified paipan JSON, and rendered image/CDN URLs."
  },
  "servers": [
    {
      "url": "https://api2.01i.uk",
      "description": "Production API"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Send as `Authorization: Bearer <API_KEY>`."
      }
    },
    "schemas": {
      "PaipanResponse": {
        "type": "object",
        "required": [
          "paipan_url"
        ],
        "properties": {
          "paipan_url": {
            "type": "string",
            "format": "uri",
            "description": "CDN URL of the rendered paipan image."
          }
        }
      },
      "SimplifiedPaipan": {
        "type": "object",
        "properties": {
          "imageUrl": {
            "type": "string",
            "format": "uri"
          },
          "person": {
            "type": "object",
            "additionalProperties": true
          },
          "fourPillars": {
            "type": "object",
            "additionalProperties": true
          },
          "shensha": {
            "type": "object",
            "additionalProperties": true
          },
          "daYun": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "liuNian": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "sections": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": true
      },
      "BaziReport": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "High-level report summary."
          },
          "sections": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "additionalProperties": true
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Invalid request parameters.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid API key.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "API key lacks required scope.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/v1/bazi/paipan/url": {
      "get": {
        "operationId": "getBaziPaipanUrl",
        "summary": "Generate paipan image URL",
        "description": "Render a paipan image and return its CDN URL.",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian birth year.",
            "schema": {
              "type": "integer",
              "minimum": 1900,
              "maximum": 2100
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Gregorian birth month (1-12).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "description": "Gregorian birth day.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31
            }
          },
          {
            "name": "hour",
            "in": "query",
            "required": true,
            "description": "Local birth hour (24h format).",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 23
            }
          },
          {
            "name": "minute",
            "in": "query",
            "required": true,
            "description": "Local birth minute.",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 59
            }
          },
          {
            "name": "gender",
            "in": "query",
            "required": true,
            "description": "Gender (Chinese characters).",
            "schema": {
              "type": "string",
              "enum": [
                "男",
                "女"
              ]
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": true,
            "description": "Birth location (Chinese characters recommended).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timediff",
            "in": "query",
            "required": true,
            "description": "Time zone offset from UTC in seconds.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paipan image URL payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaipanResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v1/bazi/paipan/json": {
      "get": {
        "operationId": "getBaziPaipanJson",
        "summary": "Get simplified paipan JSON",
        "description": "Returns simplified paipan data plus the rendered image URL.",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian birth year.",
            "schema": {
              "type": "integer",
              "minimum": 1900,
              "maximum": 2100
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Gregorian birth month (1-12).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "description": "Gregorian birth day.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31
            }
          },
          {
            "name": "hour",
            "in": "query",
            "required": true,
            "description": "Local birth hour (24h format).",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 23
            }
          },
          {
            "name": "minute",
            "in": "query",
            "required": true,
            "description": "Local birth minute.",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 59
            }
          },
          {
            "name": "gender",
            "in": "query",
            "required": true,
            "description": "Gender (Chinese characters).",
            "schema": {
              "type": "string",
              "enum": [
                "男",
                "女"
              ]
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": true,
            "description": "Birth location (Chinese characters recommended).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timediff",
            "in": "query",
            "required": true,
            "description": "Time zone offset from UTC in seconds.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Simplified paipan JSON payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimplifiedPaipan"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v1/bazi/paipan/image": {
      "get": {
        "operationId": "getBaziPaipanImage",
        "summary": "Render paipan image",
        "description": "Streams the generated paipan JPEG with render metadata headers.",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian birth year.",
            "schema": {
              "type": "integer",
              "minimum": 1900,
              "maximum": 2100
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Gregorian birth month (1-12).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "description": "Gregorian birth day.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31
            }
          },
          {
            "name": "hour",
            "in": "query",
            "required": true,
            "description": "Local birth hour (24h format).",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 23
            }
          },
          {
            "name": "minute",
            "in": "query",
            "required": true,
            "description": "Local birth minute.",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 59
            }
          },
          {
            "name": "gender",
            "in": "query",
            "required": true,
            "description": "Gender (Chinese characters).",
            "schema": {
              "type": "string",
              "enum": [
                "男",
                "女"
              ]
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": true,
            "description": "Birth location (Chinese characters recommended).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timediff",
            "in": "query",
            "required": true,
            "description": "Time zone offset from UTC inseconds.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JPEG image output (binary stream or base64).",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              },
              "Cache-Control": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Render-Viewport": {
                "schema": {
                  "type": "string"
                }
              },
              "X-Render-Full-Page": {
                "schema": {
                  "type": "boolean"
                }
              },
              "X-Render-Quality": {
                "schema": {
                  "type": "integer"
                }
              },
              "X-Render-Timestamp": {
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v1/bazi/report/json": {
      "get": {
        "operationId": "getBaziReportJson",
        "summary": "Generate BaZi report JSON",
        "description": "Returns the full structured BaZi report, including pillars and interpretations.",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": true,
            "description": "Gregorian birth year.",
            "schema": {
              "type": "integer",
              "minimum": 1900,
              "maximum": 2100
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": true,
            "description": "Gregorian birth month (1-12).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": true,
            "description": "Gregorian birth day.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31
            }
          },
          {
            "name": "hour",
            "in": "query",
            "required": true,
            "description": "Local birth hour (24h format).",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 23
            }
          },
          {
            "name": "minute",
            "in": "query",
            "required": true,
            "description": "Local birth minute.",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 59
            }
          },
          {
            "name": "gender",
            "in": "query",
            "required": true,
            "description": "Gender (Chinese characters).",
            "schema": {
              "type": "string",
              "enum": [
                "男",
                "女"
              ]
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": true,
            "description": "Birth location (Chinese characters recommended).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timediff",
            "in": "query",
            "required": true,
            "description": "Time zone offset from UTC in seconds.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "BaZi report JSON payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaziReport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    }
  }
}