(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{"1Yst":function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return p})),n.d(t,"default",(function(){return u}));var a=n("k1TG"),c=(n("2DKY"),n("+KLJ")),r=n("8o2o"),o=(n("q1tI"),n("7ljp")),b=n("hhGP"),i=n("bcBd"),s=n("LCvR"),p=(n("ttYw"),n("qKvR"),{});void 0!==p&&p&&p===Object(p)&&Object.isExtensible(p)&&!p.hasOwnProperty("__filemeta")&&Object.defineProperty(p,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/api.mdx"}});var l=b.a;function u(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(l,Object(a.a)({},n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"api"},"API"),Object(o.b)("p",null,"Superset's public ",Object(o.b)("strong",{parentName:"p"},"REST API")," follows the\n",Object(o.b)("a",{href:"https://swagger.io/specification/",parentName:"p"},"OpenAPI specification"),", and is\ndocumented here. The docs bellow are generated using\n",Object(o.b)("a",{href:"https://www.npmjs.com/package/swagger-ui-react",parentName:"p"},"Swagger React UI"),"."),Object(o.b)(c.a,{message:Object(o.b)("div",null,Object(o.b)("strong",null,"NOTE! "),"You can find an interactive version of this documentation on your local Superset instance at ",Object(o.b)("strong",null,"/swagger/v1")," (if enabled)"),type:"info",mdxType:"Alert"}),Object(o.b)("p",null,Object(o.b)("br",null),Object(o.b)("br",null),Object(o.b)("hr",null),"\n",Object(o.b)("div",{className:"swagger-container"},Object(o.b)(i.a,{spec:s,mdxType:"SwaggerUI"}))))}void 0!==u&&u&&u===Object(u)&&Object.isExtensible(u)&&!u.hasOwnProperty("__filemeta")&&Object.defineProperty(u,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/api.mdx"}}),u.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-api-mdx-98c6c40bc968c59ee27c.js.map