curl --request GET \
--url https://services.staging.app.dados.rio/catalogo/api/v1/search \
--header 'X-Auth-Request-Token: <api-key>'import requests
url = "https://services.staging.app.dados.rio/catalogo/api/v1/search"
headers = {"X-Auth-Request-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Auth-Request-Token': '<api-key>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://services.staging.app.dados.rio/catalogo/api/v1/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Auth-Request-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://services.staging.app.dados.rio/catalogo/api/v1/search")
.header("X-Auth-Request-Token", "<api-key>")
.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::Get.new(url)
request["X-Auth-Request-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"catalog_revision": "<string>",
"degraded": true,
"effective_pipeline": "browse",
"facets": {
"version": "catalog-facets-v1",
"scope": "catalog_matches",
"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": "salesforce",
"source_id": "<string>",
"title": "<string>",
"type": "service",
"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 no catálogo
Busca por serviços, cursos, vagas e oportunidades MEI. Suporta sintaxe websearch_to_tsquery: aspas para frase exata, - para exclusão, OR para alternativas.
curl --request GET \
--url https://services.staging.app.dados.rio/catalogo/api/v1/search \
--header 'X-Auth-Request-Token: <api-key>'import requests
url = "https://services.staging.app.dados.rio/catalogo/api/v1/search"
headers = {"X-Auth-Request-Token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Auth-Request-Token': '<api-key>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://services.staging.app.dados.rio/catalogo/api/v1/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Auth-Request-Token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://services.staging.app.dados.rio/catalogo/api/v1/search")
.header("X-Auth-Request-Token", "<api-key>")
.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::Get.new(url)
request["X-Auth-Request-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"catalog_revision": "<string>",
"degraded": true,
"effective_pipeline": "browse",
"facets": {
"version": "catalog-facets-v1",
"scope": "catalog_matches",
"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": "salesforce",
"source_id": "<string>",
"title": "<string>",
"type": "service",
"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
Query Parameters
Texto livre de busca
256Tipos: service, course, job, mei_opportunity
service, course, job, mei_opportunity Página (default: 1)
x >= 1Itens por página, máximo 100 (default: 10)
1 <= x <= 100Modalidade: presencial, digital, hibrido
presencial, digital, hibrido Bairro do Rio de Janeiro
100Órgão ou secretaria responsável
100[course] Turno: matutino, vespertino, noturno
matutino, vespertino, noturno [job] Regime: clt, pj, temporario
clt, pj, temporario [job] Modelo: presencial, remoto, hibrido
presencial, remoto, hibrido [job] true/false filtra vagas PCD; omitido não filtra
[service] Canal: presencial, digital, telefone
presencial, digital, telefone [service] Tema do serviço
100[mei_opportunity] Segmento do negócio
100Response
OK
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.
