Geo-GPT.org - Demographic Research Tool

Geo-GPT.org - Demographic Research Tool · GPT アクション

Geo-GPT API

API for retrieving geodata information based on location and data fields, including user authentication.

  • POST /geodata/q1getGeodataMulti

    Retrieve geographic data based on location and data fields. ALWAYS read the DatasetField Text file by searching for knowledge before this getGeodataMulti operation.

  • POST /geodata/loginUser login

    This endpoint allows a user to log in to the system using the registered Email Address and 6 digit OTP.

  • POST /geodata/requestLoginOtpOnEmailRequest login OTP via email

    This endpoint sends a login OTP to the user's email.

元の API スキーマ
{
  "openapi": "3.1.0",
  "info": {
    "title": "Geo-GPT API",
    "description": "API for retrieving geodata information based on location and data fields, including user authentication.",
    "version": "2.0.0"
  },
  "servers": [
    {
      "url": "https://api.geo-gpt.org",
      "description": "API for Geodata Service"
    }
  ],
  "paths": {
    "/geodata/q1": {
      "post": {
        "operationId": "getGeodataMulti",
        "description": "Retrieve geographic data based on location and data fields. ALWAYS read the DatasetField Text file by searching for knowledge before this getGeodataMulti operation.",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "User account token for logged in Geo-GPT Account. Required after logged in and must be sent without missing.",
                    "nullable": true
                  },
                  "Requests": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "locationType",
                        "locationAddress",
                        "dataFieldName",
                        "defaultCalculation"
                      ],
                      "properties": {
                        "locationType": {
                          "type": "string",
                          "description": "Type of location (e.g., full_address, zip_code, city, county, country, cbsa, school_district, congressional_boundry).\n",
                          "enum": [
                            "full_address",
                            "zip_code",
                            "city",
                            "county",
                            "country",
                            "cbsa",
                            "school_district",
                            "congressional_boundry"
                          ]
                        },
                        "locationAddress": {
                          "type": "string",
                          "description": "Address of the location in United States (e.g., full address, city, county, country or zip code).  This should only contain one single name/address.  If it contains a city name, always format City Name with the State Code in format ISO 3166-2.  If it contains a county name, always format with the State Code in ISO 3166-2. Example: Orange County, CA.\n"
                        },
                        "dataFieldName": {
                          "type": "string",
                          "description": "Name of the data field that is supported by Geo-GPT. This should only contain single value and should not include multiple fields."
                        },
                        "defaultCalculation": {
                          "type": "string",
                          "description": "Data metric calculation method (e.g. sum).",
                          "default": "sum",
                          "enum": [
                            "sum",
                            "average",
                            "median"
                          ]
                        },
                        "radiusInMiles": {
                          "type": "number",
                          "format": "float",
                          "description": "Radius in miles for the location search. Required when locationType is full_address.  If not provided, defaults to 2 miles.\n",
                          "nullable": true
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response with the requested geographic data.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "locationType": {
                        "type": "string",
                        "description": "The type of location."
                      },
                      "locationAddress": {
                        "type": "string",
                        "description": "The address or identifier of the location."
                      },
                      "dataFieldName": {
                        "type": "string",
                        "description": "The name of the data field requested."
                      },
                      "defaultCalculation": {
                        "type": "string",
                        "description": "The calculation method used."
                      },
                      "radiusInMiles": {
                        "type": "number",
                        "format": "float",
                        "description": "The radius in miles around the location."
                      },
                      "result": {
                        "type": "string",
                        "nullable": true,
                        "description": "A placeholder for result data."
                      },
                      "Result": {
                        "type": "object",
                        "properties": {
                          "success": {
                            "type": "boolean",
                            "description": "Indicates whether the request was successful."
                          },
                          "message": {
                            "type": "string",
                            "nullable": true,
                            "description": "A message describing the result or any errors."
                          },
                          "Data": {
                            "type": "object",
                            "nullable": true,
                            "description": "Contains the data results if the request is successful.",
                            "additionalProperties": {
                              "oneOf": [
                                {
                                  "type": "number",
                                  "format": "float"
                                },
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "boolean"
                                },
                                {
                                  "type": "object"
                                },
                                {
                                  "type": "array"
                                }
                              ]
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/geodata/login": {
      "post": {
        "operationId": "login",
        "summary": "User login",
        "description": "This endpoint allows a user to log in to the system using the registered Email Address and 6 digit OTP.",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "otp": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful login response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "token": {
                          "type": "string"
                        },
                        "user": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "email": {
                              "type": "string",
                              "format": "email"
                            },
                            "password": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "org": {
                              "type": "string"
                            },
                            "userType": {
                              "type": "string"
                            },
                            "joinDate": {
                              "type": "string",
                              "format": "date-time",
                              "nullable": true
                            },
                            "status": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/geodata/requestLoginOtpOnEmail": {
      "post": {
        "operationId": "requestLoginOtpOnEmail",
        "summary": "Request login OTP via email",
        "description": "This endpoint sends a login OTP to the user's email.",
        "x-openai-isConsequential": false,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful OTP request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}