Public API
You don’t need the SDK to submit feedback. The public REST endpoint lets you send bug reports and feature requests from any HTTP client — a backend service, a mobile app, a CLI tool, or a simple fetch call.
Endpoint
POST https://app.maestrio.ai/api/v1/requestHeaders
| Header | Required | Description |
|---|---|---|
X-API-Key | Yes | Your API key (starts with mst_). Get one from Settings → API. |
Content-Type | Yes | Must be application/json. |
Origin | Yes | Must match one of your allowed domains. |
Request body
{
"title": "Button doesn't work on mobile",
"description": "The submit button is unresponsive on iOS Safari.",
"type": "bug",
"projectId": "your-project-id"
}| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | A short summary of the bug or feature request. |
description | string | Yes | Detailed description of the issue or suggestion. |
type | "bug" | "feature" | Yes | The type of request. |
projectId | string | Yes | Your project ID. Found in project settings. |
pointedElements | PointedElement[] | No | DOM elements the user highlighted as relevant. |
PointedElement
| Field | Type | Description |
|---|---|---|
selector | string | CSS selector for the element |
tagName | string | HTML tag name (e.g. "button", "div") |
text | string | Text content of the element |
html | string | Outer HTML of the element |
Response
Success (201)
{
"id": "req_abc123",
"status": "received",
"queued": true
}| Field | Type | Description |
|---|---|---|
id | string | Unique request ID. |
status | string | Initial status (usually "received"). |
queued | boolean | Whether the request was queued for AI processing. |
Errors
| Status | Cause |
|---|---|
400 | Invalid JSON, missing required fields, or invalid type value. |
401 | Missing or invalid API key. |
403 | Missing Origin header or origin not in allowed domains. |
404 | Project not found. |
Example with fetch
const response = await fetch("https://app.maestrio.ai/api/v1/request", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "mst_live_abc123",
},
body: JSON.stringify({
title: "Add dark mode",
description: "Would love a dark mode option for the settings page.",
type: "feature",
projectId: "your-project-id",
}),
});
const data = await response.json();
console.log(data.id); // "req_abc123"Example with cURL
curl -X POST https://app.maestrio.ai/api/v1/request \
-H "Content-Type: application/json" \
-H "X-API-Key: mst_live_abc123" \
-H "Origin: https://yourapp.com" \
-d '{
"title": "Add dark mode",
"description": "Would love a dark mode option for the settings page.",
"type": "feature",
"projectId": "your-project-id"
}'