Semantic Vector Similarity
Understands user question intent and phrasing variations rather than relying on exact keyword matches.
Semantic FAQ matching API retrieving instant high-confidence answers from custom Q&A databases.
https://rsflowhub.com/api/v1/ai/faq-match
X-API-Key header{
"collection_id": 1,
"query": "how to update passcode?",
"min_confidence": 0.4,
"top_n": 1
}
{
"result": {
"message": "See the API reference for the full result schema."
}
}
Automated Question-Answering FAQ Matcher API is a REST API on RSFlowHub for web, mobile and AI agent applications. Send a JSON request to POST /api/v1/ai/faq-match with your API key; RSFlowHub runs it on a tuned AI model, falls back to a backup provider if needed, and returns a structured JSON result, usually within 1 to 3 seconds.
POST /api/v1/ai/faq-matchX-API-Key headerSend these fields as a JSON body. An invalid or missing field returns a 422 error that names the field.
| Field | Type | Required | Description |
|---|---|---|---|
collection_id |
integer | Required | The ID of the stored FAQ collection to search within. |
query |
string | Required | The user question or query to match (Max: 5,000 characters). |
min_confidence |
float | Optional | Optional confidence score threshold to filter out weak matches (0.0 to 1.0). Defaults to 0.3. |
top_n |
integer | Optional | Optional number of top matches to return (1 to 5). Defaults to 1. |
Copy, replace rfh_your_api_key with your key and run. Prefer a client library? See the official SDKs.
curl -X POST "https://rsflowhub.com/api/v1/ai/faq-match" \
-H "Content-Type: application/json" \
-H "X-API-Key: rfh_your_api_key" \
-d '{"collection_id":1,"query":"how to update passcode?","min_confidence":0.4,"top_n":1}'
<?php
$client = new \GuzzleHttp\Client();
$response = $client->post('https://rsflowhub.com/api/v1/ai/faq-match', [
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => 'rfh_your_api_key',
],
'json' => array (
'collection_id' => 1,
'query' => 'how to update passcode?',
'min_confidence' => 0.4,
'top_n' => 1,
),
]);
echo $response->getBody();
const response = await fetch('https://rsflowhub.com/api/v1/ai/faq-match', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'rfh_your_api_key'
},
body: JSON.stringify({"collection_id":1,"query":"how to update passcode?","min_confidence":0.4,"top_n":1})
});
const data = await response.json();
console.log(data);
import requests
url = "https://rsflowhub.com/api/v1/ai/faq-match"
headers = {
"Content-Type": "application/json",
"X-API-Key": "rfh_your_api_key"
}
payload = {"collection_id":1,"query":"how to update passcode?","min_confidence":0.4,"top_n":1}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
Every RSFlowHub endpoint uses the same envelope, so one parser handles all of them. Failed calls are not charged.
{
"success": true,
"request_id": "req_3f9a2c7e-5b1d-4e8a-9c2f-7d6e1a0b4c8d",
"data": {
"result": {
"message": "See the API reference for the full result schema."
}
},
"meta": {
"version": "v1",
"timestamp": "2026-10-05T09:30:00Z"
}
}
{
"success": false,
"request_id": "req_8c1d4e2a-7f3b-4a9c",
"error": {
"code": "VALIDATION_ERROR",
"message": "The given data was invalid.",
"details": {
"collection_id": [
"This field is required."
]
}
},
"meta": {
"version": "v1",
"timestamp": "2026-10-05T09:30:00Z"
}
}
| Field | Type | Meaning |
|---|---|---|
success | boolean | true when the call worked, false on any error. |
request_id | string | Unique id for this call. Quote it when you contact support. |
data.result | object | The result of this endpoint (see the example). |
error | object | Only on failure: code, message and details per field. |
meta | object | API version and server timestamp. |
All error codes: Errors reference
Understands user question intent and phrasing variations rather than relying on exact keyword matches.
Outputs numeric confidence scores (0.0 to 1.0) with configurable minimum thresholds for automated deflection.
Returns top N ranked candidate FAQ answers with matching probability percentages.
Provides alternative related question suggestions when match confidence falls below threshold.
How teams use the Automated Question-Answering FAQ Matcher API in production.
Answer repetitive customer pre-purchase questions instantly 24/7 without human agent intervention.
{"match_found": true, "question": "What is the refund policy?", "answer": "Unused credits are refundable within 14 days of purchase.", "confidence": 0.96}Answers common buyer questions on your website instantly, day and night.
Power real-time in-app FAQ search bars with instant answer previews as users type their questions.
{"top_matches": [{"question": "How do I cancel my subscription?", "confidence": 0.98}]}Delivers instant help without forcing users to leave the app.
Display suggested FAQ answers dynamically while customers type their support ticket description.
{"suggested_faq": "Where can I download my billing invoices?", "confidence": 0.94}Suggests answers before a ticket is submitted, reducing repeat questions.
Most chatbot questions are questions you have already answered. The FAQ matcher finds the closest answer in your FAQ collection and returns it with a confidence score, so the chatbot can reply with your own approved wording instead of generating a new answer.
How it works in a chatbot
Replies come from FAQs you wrote, so the chatbot does not invent policies, prices or promises.
A matched FAQ answer needs no long AI-written reply, which keeps the cost of each chatbot message low.
Questions with no good match show you which FAQs to write next.
Want a chatbot without building one? The RSFlowHub AI chatbot for your website is live in about 5 minutes with one script tag: it answers from your documents, captures leads and creates support tickets. Read the chat widget guide, try the live chatbot demo, see chatbot pricing, or build your own with the chatbots API.
The same job done three ways.
| Topic | RSFlowHub API | Raw LLM prompts | Rules / regex |
|---|---|---|---|
| Output | Validated JSON fields | Free text you have to parse | Fixed patterns only |
| Setup | One POST request, no prompts | Write and maintain prompts and parsing | Write and maintain rule lists |
| Provider outage | Automatic fallback to a backup model | You build retries and a second vendor | Not applicable |
| Pricing | 2 credits per call, failed calls free | Per token, per vendor | Your own servers and upkeep |
| Understands context | Yes, AI model | Yes, AI model | No, keywords only |
Free plan with 100 credits/month + 1,000 bonus credits when you sign in before 23 Nov. Test it in the playground first, no code needed.
Flowy
AI assistant