{"id":1213,"date":"2026-03-01T20:12:21","date_gmt":"2026-03-01T20:12:21","guid":{"rendered":"http:\/\/localhost:8881\/api-docs\/"},"modified":"2026-03-01T20:12:21","modified_gmt":"2026-03-01T20:12:21","slug":"api-docs","status":"publish","type":"page","link":"https:\/\/flamenet.io\/api-docs\/","title":{"rendered":"Flamenet API"},"content":{"rendered":"<nav class=\"api-nav\"><span class=\"api-nav-brand\">&#9670; Flamenet API<\/span><a href=\"https:\/\/flamenet.io\/api-docs\/\" class=\"active\">Overview<\/a><a href=\"https:\/\/flamenet.io\/api-forum\/\">Forum<\/a><a href=\"https:\/\/flamenet.io\/api-answers\/\">Answers<\/a><a href=\"https:\/\/flamenet.io\/api-shop\/\">Shop<\/a><a href=\"https:\/\/flamenet.io\/api-marketplace\/\">Marketplace<\/a><a href=\"https:\/\/flamenet.io\/api-files\/\">Files<\/a><a href=\"https:\/\/flamenet.io\/api-videos\/\">Video<\/a><\/nav><div class=\"api-wrap\">        <h1>Flamenet REST API<\/h1>\n        <p>The Flamenet API provides programmatic access to the Forum, Answers, Shop, Marketplace, and Files features. All endpoints return JSON.<\/p>\n\n        <h2>Base URL<\/h2>\n        <div class=\"api-box\">\n          <div class=\"api-box-body\">\n            <pre>https:\/\/flamenet.io\/api\/flamenet\/v1<\/pre>\n            <p>All endpoints are relative to this base. HTTPS is required.<\/p>\n          <\/div>\n        <\/div>\n\n        <h2>Authentication<\/h2>\n        <div class=\"api-box\">\n          <div class=\"api-box-title\">API Key<\/div>\n          <div class=\"api-box-body\">\n            <p>Some endpoints require authentication. Authenticate by including your API key in every request.<\/p>\n            <h3>Get your API key<\/h3>\n            <ol style=\"padding-left:20px;margin-bottom:10px;\">\n              <li>Sign in to your Flamenet account.<\/li>\n              <li>Go to your <strong>Profile<\/strong> page.<\/li>\n              <li>Scroll to the <strong>API Access<\/strong> section.<\/li>\n              <li>Click <strong>Generate New Key<\/strong>.<\/li>\n              <li>Copy and store the key securely \u2014 it is only shown once in full.<\/li>\n            <\/ol>\n            <h3>Authorization: Bearer header (recommended)<\/h3>\n            <pre>curl https:\/\/flamenet.io\/api\/flamenet\/v1\/forum\/boards \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"<\/pre>\n            <h3>Query parameter (testing)<\/h3>\n            <pre>https:\/\/flamenet.io\/api\/flamenet\/v1\/forum\/boards?api_key=YOUR_API_KEY<\/pre>\n            <div class=\"api-warn\">Never expose your API key in client-side JavaScript or public repositories.<\/div>\n          <\/div>\n        <\/div>\n\n        <h2>Endpoints Overview<\/h2>\n\n        <h3>Forum <code>\/forum<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/forum\/boards<\/code><\/td><td>No<\/td><td>List all forum boards<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/forum\/boards\/{id}<\/code><\/td><td>No<\/td><td>Board details + paginated topics<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/forum\/topics\/{id}<\/code><\/td><td>No<\/td><td>Topic details + paginated replies<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/forum\/topics<\/code><\/td><td>Yes<\/td><td>Create a new topic<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/forum\/topics\/{id}\/replies<\/code><\/td><td>Yes<\/td><td>Post a reply<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Answers <code>\/answers<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/answers\/questions<\/code><\/td><td>No<\/td><td>List questions with filters<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/answers\/questions\/{id}<\/code><\/td><td>No<\/td><td>Question details + answers<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/answers\/questions<\/code><\/td><td>Yes<\/td><td>Ask a question<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/answers\/questions\/{id}\/answers<\/code><\/td><td>Yes<\/td><td>Submit an answer<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/answers\/answers\/{id}\/vote<\/code><\/td><td>Yes<\/td><td>Vote on an answer<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Shop <code>\/shop<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/shop\/products<\/code><\/td><td>No<\/td><td>List catalog products<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/shop\/products\/{id}<\/code><\/td><td>No<\/td><td>Product details<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/shop\/orders<\/code><\/td><td>Yes<\/td><td>Your order history<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Marketplace <code>\/marketplace<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/marketplace\/stores<\/code><\/td><td>No<\/td><td>List active storefronts<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/marketplace\/stores\/{slug}<\/code><\/td><td>No<\/td><td>Store details + products<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/marketplace\/products<\/code><\/td><td>No<\/td><td>List all products across stores<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/marketplace\/products\/{id}<\/code><\/td><td>No<\/td><td>Product details<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/marketplace\/orders<\/code><\/td><td>Yes<\/td><td>Your marketplace order history<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Files <code>\/files<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/files<\/code><\/td><td>Yes<\/td><td>List your files (paginated)<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/files<\/code><\/td><td>Yes<\/td><td>Upload a file (multipart\/form-data)<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/files\/{id}<\/code><\/td><td>Yes<\/td><td>Get file metadata<\/td><\/tr>\n            <tr><td><span class=\"method method-delete\">DELETE<\/span><\/td><td><code>\/files\/{id}<\/code><\/td><td>Yes<\/td><td>Delete a file<\/td><\/tr>\n            <tr><td><span class=\"method method-patch\">PATCH<\/span><\/td><td><code>\/files\/{id}\/rename<\/code><\/td><td>Yes<\/td><td>Rename a file<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/files\/{id}\/share<\/code><\/td><td>Yes<\/td><td>Create or update a share link<\/td><\/tr>\n            <tr><td><span class=\"method method-delete\">DELETE<\/span><\/td><td><code>\/files\/{id}\/share<\/code><\/td><td>Yes<\/td><td>Remove a share link<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/files\/{id}\/download<\/code><\/td><td>Yes<\/td><td>Get a presigned download URL<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Video <code>\/videos<\/code><\/h3>\n        <table class=\"api-index-table\">\n          <thead><tr><th>Method<\/th><th>Path<\/th><th>Auth<\/th><th>Description<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/videos<\/code><\/td><td>No<\/td><td>List public videos (paginated)<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/videos<\/code><\/td><td>Yes<\/td><td>Upload a video (multipart\/form-data)<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/videos\/{id}<\/code><\/td><td>No<\/td><td>Get video details<\/td><\/tr>\n            <tr><td><span class=\"method method-delete\">DELETE<\/span><\/td><td><code>\/videos\/{id}<\/code><\/td><td>Yes<\/td><td>Delete own video<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/videos\/{id}\/rate<\/code><\/td><td>Yes<\/td><td>Like or dislike a video<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/videos\/{id}\/comments<\/code><\/td><td>No<\/td><td>List comments (paginated)<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/videos\/{id}\/comments<\/code><\/td><td>Yes<\/td><td>Post a comment<\/td><\/tr>\n            <tr><td><span class=\"method method-get\">GET<\/span><\/td><td><code>\/videos\/{id}\/stream<\/code><\/td><td>No*<\/td><td>Get a presigned stream URL (24h)<\/td><\/tr>\n            <tr><td><span class=\"method method-post\">POST<\/span><\/td><td><code>\/videos\/{id}\/share<\/code><\/td><td>Yes<\/td><td>Create a share link<\/td><\/tr>\n            <tr><td><span class=\"method method-delete\">DELETE<\/span><\/td><td><code>\/videos\/{id}\/share<\/code><\/td><td>Yes<\/td><td>Remove a share link<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h2>HTTP Status Codes<\/h2>\n        <div class=\"api-box\">\n          <div class=\"api-box-body\">\n            <table>\n              <thead><tr><th>Code<\/th><th>Meaning<\/th><\/tr><\/thead>\n              <tbody>\n                <tr><td><span class=\"status-ok\">200 OK<\/span><\/td><td>Request succeeded.<\/td><\/tr>\n                <tr><td><span class=\"status-ok\">201 Created<\/span><\/td><td>Resource created successfully.<\/td><\/tr>\n                <tr><td><span class=\"status-err\">400 Bad Request<\/span><\/td><td>Malformed request or invalid parameters.<\/td><\/tr>\n                <tr><td><span class=\"status-err\">401 Unauthorized<\/span><\/td><td>Missing or invalid API key.<\/td><\/tr>\n                <tr><td><span class=\"status-err\">403 Forbidden<\/span><\/td><td>Authenticated but not permitted (e.g. locked topic).<\/td><\/tr>\n                <tr><td><span class=\"status-err\">404 Not Found<\/span><\/td><td>Resource does not exist.<\/td><\/tr>\n                <tr><td><span class=\"status-warn\">422 Unprocessable<\/span><\/td><td>Missing required fields in POST body.<\/td><\/tr>\n                <tr><td><span class=\"status-err\">500 Server Error<\/span><\/td><td>Unexpected error. Contact support.<\/td><\/tr>\n                <tr><td><span class=\"status-warn\">503 Unavailable<\/span><\/td><td>Required plugin is not active.<\/td><\/tr>\n              <\/tbody>\n            <\/table>\n          <\/div>\n        <\/div>\n\n        <h2>Error Response Format<\/h2>\n        <div class=\"api-box\">\n          <div class=\"api-box-body\">\n            <p>All errors follow the WordPress REST API error format:<\/p>\n            <pre>{\n  \"<span class=\"key\">code<\/span>\":    \"<span class=\"str\">unauthorized<\/span>\",\n  \"<span class=\"key\">message<\/span>\": \"<span class=\"str\">Valid API key required.<\/span>\",\n  \"<span class=\"key\">data<\/span>\":    { \"<span class=\"key\">status<\/span>\": <span class=\"num\">401<\/span> }\n}<\/pre>\n          <\/div>\n        <\/div>\n\n        <div class=\"api-footer\">Flamenet API v1.0 &mdash; <a href=\"https:\/\/flamenet.io\">flamenet.io<\/a><\/div>\n        <\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1213","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/flamenet.io\/api\/wp\/v2\/pages\/1213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flamenet.io\/api\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flamenet.io\/api\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flamenet.io\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flamenet.io\/api\/wp\/v2\/comments?post=1213"}],"version-history":[{"count":0,"href":"https:\/\/flamenet.io\/api\/wp\/v2\/pages\/1213\/revisions"}],"wp:attachment":[{"href":"https:\/\/flamenet.io\/api\/wp\/v2\/media?parent=1213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}