{
  "openapi": "3.1.0",
  "info": {
    "title": "Qrcode Portal Public Content API",
    "version": "1.0.0",
    "description": "Read-only public website content hosted by MEBMS Studio. No account management, QR generation, or editing access is provided."
  },
  "servers": [
    {
      "url": "https://cms.mebms.com/api/v1/sites/qrcode"
    }
  ],
  "security": [],
  "paths": {
    "/types": {
      "get": {
        "operationId": "listContentTypes",
        "summary": "List available content types and field definitions",
        "responses": {
          "200": {
            "description": "Public content types",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/content/faqs": {
      "get": {
        "operationId": "list_faqs",
        "summary": "List faqs records",
        "description": "Public fields used by this website: faqq, faqa.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/faqs/{id}": {
      "get": {
        "operationId": "get_faqs",
        "summary": "Get one faqs record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    },
    "/content/plan": {
      "get": {
        "operationId": "list_plan",
        "summary": "List plan records",
        "description": "Public fields used by this website: pname, pprice, phead, planex.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/plan/{id}": {
      "get": {
        "operationId": "get_plan",
        "summary": "Get one plan record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    },
    "/content/type": {
      "get": {
        "operationId": "list_type",
        "summary": "List type records",
        "description": "Public fields used by this website: typeq, cat.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/type/{id}": {
      "get": {
        "operationId": "get_type",
        "summary": "Get one type record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    },
    "/content/qr_type": {
      "get": {
        "operationId": "list_qr_type",
        "summary": "List qr_type records",
        "description": "Public fields used by this website: qr_type_c.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/qr_type/{id}": {
      "get": {
        "operationId": "get_qr_type",
        "summary": "Get one qr_type record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    },
    "/content/design_cat": {
      "get": {
        "operationId": "list_design_cat",
        "summary": "List design_cat records",
        "description": "Public fields used by this website: des_asp, des_img.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/design_cat/{id}": {
      "get": {
        "operationId": "get_design_cat",
        "summary": "Get one design_cat record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    },
    "/content/blog_posts": {
      "get": {
        "operationId": "list_blog_posts",
        "summary": "List blog_posts records",
        "description": "Public fields used by this website: title, slug, content, published_date, featured_image.",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 30
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "sort",
                "-sort",
                "id",
                "-id",
                "updated_at",
                "-updated_at"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated public records",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Record"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "language": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unavailable site or content type"
          },
          "429": {
            "description": "Rate limited; retry with backoff"
          }
        }
      }
    },
    "/content/blog_posts/{id}": {
      "get": {
        "operationId": "get_blog_posts",
        "summary": "Get one blog_posts record",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "en",
                "ar"
              ],
              "default": "en"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One record in data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Record"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Record not found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Record": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "type": {
            "type": "string"
          },
          "sort": {
            "type": "integer"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      }
    }
  }
}
