Save FAQ entries
Overview
Replace the FAQ entries for an account. Within a DB transaction it deletes all existing FAQ entries for the given company_id + type, then inserts the supplied FAQ entries.
Prerequisites
- A bearer token. Callable with Partner and Account tokens.
Base URL
| Environment | URL |
|---|---|
| Production | https://production-api.shoutaboutus.com |
| Development | https://development-api.shoutaboutus.com |
Endpoint
POST /api/v1/account/faq/save
Authentication
-
Requires a bearer token in the
Authorization: Bearer <bearer-token>header. -
Who can call it: Partner and Account tokens.
-
Target company comes from the
company_idbody field. There is no ownership/partner-tree scoping, so any authenticated Partner or Account user can write FAQs for any company id. -
Role only changes which
company_idyou pass.
Rate limit
- No rate limit.
Request body
- Body:
| Field | Type | Required | Description |
|---|---|---|---|
company_id | integer | required | Must be an existing account. |
type | string | optional (nullable) | One of landing_page, widget. The endpoint stores scopes the pre-delete and on each row; if omitted, rows are deleted/saved with type = null. |
faqs | array | required | Full replacement set of FAQ entries. |
faqs.*.question | string | required | FAQ question text. |
faqs.*.answer | string | required | FAQ answer text. |
faqs.*.status | string | required | One of active, inactive. |
{
"company_id": 42,
"type": "landing_page",
"faqs": [
{
"question": "How do I leave a review?",
"answer": "Click the link in the email we sent you.",
"status": "active"
},
{
"question": "Can I edit my review?",
"answer": "Contact support to make changes.",
"status": "inactive"
}
]
}Response
data.status(string) — literal"success".data.message(string) —"FAQ saved successfully".data.data(array) — thefaqsarray exactly as submitted.
200 OK · 200
200{
"data": {
"status": "success",
"data": [
{
"question": "How long does delivery take?",
"answer": "Most orders arrive within 3-5 business days.",
"status": "active"
},
{
"question": "Do you offer refunds?",
"answer": "Yes, within 30 days of purchase.",
"status": "inactive"
}
],
"message": "FAQ saved successfully"
}
}422 Validation error · 422
422{
"message": "The faqs field is required.",
"errors": {
"faqs": ["The faqs field is required."],
"faqs.0.status": ["The selected faqs.0.status is invalid."]
}
}Errors
| Status | Meaning |
|---|---|
401 | The bearer token is missing, expired or invalid |
422 | Validation error |
500 | Unexpected server error |
Example request
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/account/faq/save" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"company_id": 42, "type": "landing_page", "faqs": [{"question": "How do I leave a review?", "answer": "Click the link in the email we sent you.", "status": "active"}, {"question": "Can I edit my review?", "answer": "Contact support to make changes.", "status": "inactive"}]}'Updated 10 days ago
Did this page help you?
