Busca autenticada por JSON
curl --request POST \
--url https://services.staging.app.dados.rio/catalogo/api/v1/search \
--header 'Content-Type: application/json' \
--header 'X-Auth-Request-Token: <api-key>' \
--data '
{
"q": "<string>",
"types": [],
"page": 1,
"per_page": 10,
"bairro": "<string>",
"orgao": "<string>",
"pcd": true,
"tema": "<string>",
"segmento": "<string>"
}
'import requests
url = "https://services.staging.app.dados.rio/catalogo/api/v1/search"
payload = {
"q": "<string>",
"types": [],
"page": 1,
"per_page": 10,
"bairro": "<string>",
"orgao": "<string>",
"pcd": True,
"tema": "<string>",
"segmento": "<string>"
}
headers = {
"X-Auth-Request-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Auth-Request-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
q: '<string>',
types: [],
page: 1,
per_page: 10,
bairro: '<string>',
orgao: '<string>',
pcd: true,
tema: '<string>',
segmento: '<string>'
})
};
fetch('https://services.staging.app.dados.rio/catalogo/api/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://services.staging.app.dados.rio/catalogo/api/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'q' => '<string>',
'types' => [
],
'page' => 1,
'per_page' => 10,
'bairro' => '<string>',
'orgao' => '<string>',
'pcd' => true,
'tema' => '<string>',
'segmento' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Auth-Request-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://services.staging.app.dados.rio/catalogo/api/v1/search"
payload := strings.NewReader("{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Auth-Request-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://services.staging.app.dados.rio/catalogo/api/v1/search")
.header("X-Auth-Request-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://services.staging.app.dados.rio/catalogo/api/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Auth-Request-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"catalog_revision": "<string>",
"degraded": true,
"facets": {
"version": "catalog-facets-v1",
"types": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"modalidades": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"bairros": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"organizations": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
]
},
"items": [
{
"canonical_id": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relevance_score": 123,
"source_id": "<string>",
"title": "<string>",
"bairros": [
"<string>"
],
"highlights": [
"<string>"
],
"image_url": "<string>",
"metadata": {
"id": "<string>",
"slug": "<string>",
"tema_especifico": "<string>",
"tema_geral": "<string>"
},
"modalidade": "<string>",
"organization": "<string>",
"short_desc": "<string>",
"slug": "<string>",
"tags": [
"<string>"
],
"url": "<string>"
}
],
"page": 123,
"per_page": 123,
"ranker_descriptor": {
"base_version": "<string>",
"candidate_pool_size": 123,
"deduplication_version": "<string>",
"hyde_enabled": true,
"maximum_semantic_distance": 1,
"query_expansion_version": "<string>",
"reciprocal_rank_k": 123,
"reranker_enabled": true,
"retrieval_version": "<string>",
"schema_version": "<string>",
"semantic_enabled": true,
"semantic_overfetch_factor": 123,
"trigram_threshold": 123,
"weights": {
"exact": 123,
"full_text": 123,
"hyde": 123,
"semantic": 123,
"trigram": 123
},
"embedding": {
"dimensions": 123,
"document_task_type": "<string>",
"document_version": "<string>",
"model": "<string>",
"query_task_type": "<string>",
"version": "<string>"
},
"hyde_candidate_count": 123,
"hyde_determinism_policy": "<string>",
"hyde_max_output_tokens": 123,
"hyde_model": "<string>",
"hyde_prompt_sha256": "<string>",
"hyde_prompt_version": "<string>",
"hyde_response_mime_type": "<string>",
"hyde_seed": 123,
"hyde_temperature": 123,
"reranker_candidate_limit": 123,
"reranker_version": "<string>"
},
"ranker_version": "<string>",
"search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"total": 123
}{}{}{}{}{}{}{}busca
Busca autenticada por JSON
Executa o mesmo pipeline da busca GET usando um corpo JSON estritamente validado, sem colocar o texto livre na URL.
POST
/
api
/
v1
/
search
Busca autenticada por JSON
curl --request POST \
--url https://services.staging.app.dados.rio/catalogo/api/v1/search \
--header 'Content-Type: application/json' \
--header 'X-Auth-Request-Token: <api-key>' \
--data '
{
"q": "<string>",
"types": [],
"page": 1,
"per_page": 10,
"bairro": "<string>",
"orgao": "<string>",
"pcd": true,
"tema": "<string>",
"segmento": "<string>"
}
'import requests
url = "https://services.staging.app.dados.rio/catalogo/api/v1/search"
payload = {
"q": "<string>",
"types": [],
"page": 1,
"per_page": 10,
"bairro": "<string>",
"orgao": "<string>",
"pcd": True,
"tema": "<string>",
"segmento": "<string>"
}
headers = {
"X-Auth-Request-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Auth-Request-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
q: '<string>',
types: [],
page: 1,
per_page: 10,
bairro: '<string>',
orgao: '<string>',
pcd: true,
tema: '<string>',
segmento: '<string>'
})
};
fetch('https://services.staging.app.dados.rio/catalogo/api/v1/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://services.staging.app.dados.rio/catalogo/api/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'q' => '<string>',
'types' => [
],
'page' => 1,
'per_page' => 10,
'bairro' => '<string>',
'orgao' => '<string>',
'pcd' => true,
'tema' => '<string>',
'segmento' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Auth-Request-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://services.staging.app.dados.rio/catalogo/api/v1/search"
payload := strings.NewReader("{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Auth-Request-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://services.staging.app.dados.rio/catalogo/api/v1/search")
.header("X-Auth-Request-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://services.staging.app.dados.rio/catalogo/api/v1/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Auth-Request-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"q\": \"<string>\",\n \"types\": [],\n \"page\": 1,\n \"per_page\": 10,\n \"bairro\": \"<string>\",\n \"orgao\": \"<string>\",\n \"pcd\": true,\n \"tema\": \"<string>\",\n \"segmento\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"catalog_revision": "<string>",
"degraded": true,
"facets": {
"version": "catalog-facets-v1",
"types": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"modalidades": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"bairros": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
],
"organizations": [
{
"value": "<string>",
"label": "<string>",
"count": 2
}
]
},
"items": [
{
"canonical_id": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"relevance_score": 123,
"source_id": "<string>",
"title": "<string>",
"bairros": [
"<string>"
],
"highlights": [
"<string>"
],
"image_url": "<string>",
"metadata": {
"id": "<string>",
"slug": "<string>",
"tema_especifico": "<string>",
"tema_geral": "<string>"
},
"modalidade": "<string>",
"organization": "<string>",
"short_desc": "<string>",
"slug": "<string>",
"tags": [
"<string>"
],
"url": "<string>"
}
],
"page": 123,
"per_page": 123,
"ranker_descriptor": {
"base_version": "<string>",
"candidate_pool_size": 123,
"deduplication_version": "<string>",
"hyde_enabled": true,
"maximum_semantic_distance": 1,
"query_expansion_version": "<string>",
"reciprocal_rank_k": 123,
"reranker_enabled": true,
"retrieval_version": "<string>",
"schema_version": "<string>",
"semantic_enabled": true,
"semantic_overfetch_factor": 123,
"trigram_threshold": 123,
"weights": {
"exact": 123,
"full_text": 123,
"hyde": 123,
"semantic": 123,
"trigram": 123
},
"embedding": {
"dimensions": 123,
"document_task_type": "<string>",
"document_version": "<string>",
"model": "<string>",
"query_task_type": "<string>",
"version": "<string>"
},
"hyde_candidate_count": 123,
"hyde_determinism_policy": "<string>",
"hyde_max_output_tokens": 123,
"hyde_model": "<string>",
"hyde_prompt_sha256": "<string>",
"hyde_prompt_version": "<string>",
"hyde_response_mime_type": "<string>",
"hyde_seed": 123,
"hyde_temperature": 123,
"reranker_candidate_limit": 123,
"reranker_version": "<string>"
},
"ranker_version": "<string>",
"search_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"total": 123
}{}{}{}{}{}{}{}Authorizations
JWT injetado pelo Istio via header X-Auth-Request-Token
Body
application/json
Parâmetros da busca
Maximum string length:
256Available options:
service, course, job, mei_opportunity Required range:
1 <= x <= 1000Required range:
1 <= x <= 100Available options:
presencial, digital, hibrido Maximum string length:
100Maximum string length:
100Available options:
matutino, vespertino, noturno Available options:
clt, pj, temporario Available options:
presencial, remoto, hibrido Available options:
presencial, digital, telefone Maximum string length:
100Maximum string length:
100Response
OK
Available options:
browse, lexical, lexical_reranked, hybrid, hybrid_reranked, hybrid_hyde, hybrid_hyde_reranked Bounded facet counts sorted by count descending and canonical value ascending. Each canonical entity contributes at most once to a value. Counts apply all current filters, including the facet's own dimension.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Total canonical entities in the declared browse or retrieval population before pagination.
⌘I
