The rerank endpoint scores a list of text documents against a query and returns them sorted by relevance. Use it after a broad vector search to precision-rank the top candidates before sending them to a language model.
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
type RerankResult struct {
Index int `json:"index"`
Score float64 `json:"relevance_score"`
}
type RerankResponse struct {
Results []RerankResult `json:"results"`
}
func main() {
body, _ := json.Marshal(map[string]any{
"model": "cohere/rerank-v3.5",
"query": "How do I deposit Algerian Dinars?",
"documents": []string{
"Deposits are made via SATIM using CIB or Edahabia cards.",
"OpenDunes supports 200+ language models.",
"Top up your DA balance from the credits dashboard.",
},
"top_n": 2,
})
req, _ := http.NewRequest("POST", "https://opendunes.com/api/v1/rerank", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("OPENDUNES_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var out RerankResponse
json.NewDecoder(resp.Body).Decode(&out)
for _, r := range out.Results {
fmt.Printf("[%.4f] document #%d\n", r.Score, r.Index)
}
}
| Parameter | Description |
|---|
model | Rerank model slug |
query | The search query |
documents | List of strings to rank |
top_n | Return only the top N results |
Reranking is billed in DA per search unit (usage.search_units; token-billed rerankers fall back to total_tokens). Rates appear on each model's catalog page.