Scavio provides a REST API that you can call from any Go application. Send a POST request with your query, get structured JSON back. Here is how to use every platform.
Google Search
Web search with knowledge graph, PAA, and AI overviews.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
apiKey := "your_scavio_api_key"
body, _ := json.Marshal(map[string]interface{}{
"query": query,
})
req, _ := http.NewRequest("POST", "https://api.scavio.dev/api/v1/search", bytes.NewBuffer(body))
req.Header.Set("x-api-key", apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(result, &data)
formatted, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(formatted))
}Amazon Search
Product search with prices, ratings, and reviews.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
apiKey := "your_scavio_api_key"
body, _ := json.Marshal(map[string]interface{}{
"query": query,
"marketplace": "us",
})
req, _ := http.NewRequest("POST", "https://api.scavio.dev/api/v1/amazon/search", bytes.NewBuffer(body))
req.Header.Set("x-api-key", apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(result, &data)
formatted, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(formatted))
}Reddit Search
Community, posts & threaded comments from any subreddit.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
apiKey := "your_scavio_api_key"
body, _ := json.Marshal(map[string]interface{}{
"query": query,
"sort": "new",
})
req, _ := http.NewRequest("POST", "https://api.scavio.dev/api/v1/reddit/search", bytes.NewBuffer(body))
req.Header.Set("x-api-key", apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(result, &data)
formatted, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(formatted))
}YouTube Search
Video search with transcripts and metadata.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
apiKey := "your_scavio_api_key"
body, _ := json.Marshal(map[string]interface{}{
"query": query,
})
req, _ := http.NewRequest("POST", "https://api.scavio.dev/api/v1/youtube/search", bytes.NewBuffer(body))
req.Header.Set("x-api-key", apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(result, &data)
formatted, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(formatted))
}Walmart Search
Product search with pricing and fulfillment data.
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
apiKey := "your_scavio_api_key"
body, _ := json.Marshal(map[string]interface{}{
"query": query,
})
req, _ := http.NewRequest("POST", "https://api.scavio.dev/api/v1/walmart/search", bytes.NewBuffer(body))
req.Header.Set("x-api-key", apiKey)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(result, &data)
formatted, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(formatted))
}Error Handling
The API returns standard HTTP status codes. Check for 200 (success), 401 (invalid API key), 429 (rate limit), and 500 (server error). The response body always includes a descriptive error message.
Next Steps
- Quickstart guide — get your API key and make your first request
- Rate limits — understand credit usage and limits
- Error reference — full list of error codes and troubleshooting