SKILL.md


Ubient Go(TM) Search API Skill

name: ubient-go-search
description: A web search skill that uses the Ubient Go(TM) metasearch engine API. Use this skill when the user requests web searches, news searches, image searches, or the latest information. No authentication is required. Receives JSON responses via HTTP GET/POST requests.
author: Ubient
version: “1.0”
homepage: https://go.ubient.dscloud.biz
documentation: https://ubient.dscloud.biz/docs/service/go-search/

1. Overview

Ubient Go(TM) is a privacy-focused metasearch engine designed for AI agents.
It aggregates results from multiple search engines and returns them as a unified JSON response.
No authentication is required.

  • Authentication: Not required (no API key)
  • Protocol: HTTP GET or POST
  • Response Format: JSON (format=json must be specified)

2. Endpoints

2.1 Search Endpoint

GET  https://go.ubient.dscloud.biz/search
POST https://go.ubient.dscloud.biz/search

Both GET and POST use the same search endpoint.
POST can be used when search parameters should be sent in the request body instead of appearing in the URL.

2.2 Configuration Endpoint

GET https://go.ubient.dscloud.biz/config

Returns instance configuration: available categories, engine list, language settings, and other publicly available configuration information.
Does not return search results.

3. Request Parameters

3.1 q (Required)

Specifies the keyword or search query to be processed.

PropertyValue
Parameterq
TypeString
RequiredYes
DescriptionThe query to use for the search

Search terms containing Korean characters, spaces, special characters, or reserved URL characters must be properly URL-encoded.
When making requests from the command line, the --data-urlencode option provided by curl can encode search terms automatically.

Example: q=대한민국

3.2 format (Required for AI agents)

Specifies the output format of the response.

PropertyValue
Parameterformat
TypeString
JSON Valuejson
RequiredYes for AI agent usage

WARNING: If format=json is not specified, an HTML response will be returned.
AI agents must always include format=json.

3.3 categories (Optional)

Specifies the search categories to use. Multiple categories can be specified using comma (,) separator.

PropertyValue
Parametercategories
TypeString
Value SeparatorComma (,)
RequiredNo

Available categories may vary depending on the service configuration.
The categories currently provided by the instance can be retrieved through the /config endpoint.

Examples:

  • categories=general
  • categories=general,news

3.4 language (Optional)

Specifies the language code to use for the search.

PropertyValue
Parameterlanguage
TypeString
RequiredNo

Examples: language=ko, language=en, language=ja

3.5 pageno (Optional)

Specifies the page number of results.

PropertyValue
Parameterpageno
TypeInteger
RequiredNo
Default1

3.6 time_range (Optional)

Specifies the time range to apply to search results.

ValueDescription
dayThe past day
monthThe past month
yearThe past year

This parameter is applied to search engines that support the specified time filter.
Not all search engines support the same time-range filters.

3.7 safesearch (Optional)

Specifies the SafeSearch filtering level to apply to search results.

ValueDescription
0No filtering
1Moderate filtering
2Strict filtering

4. Request Examples

4.1 Basic Search (curl, Bash)

curl -sS -G "https://go.ubient.dscloud.biz/search" \
  --data-urlencode "q=대한민국" \
  --data-urlencode "format=json"

4.2 Windows PowerShell

curl.exe -sS -G "https://go.ubient.dscloud.biz/search" --data-urlencode "q=대한민국" --data-urlencode "format=json"

4.3 Multiple Parameters

curl -sS -G "https://go.ubient.dscloud.biz/search" \
  --data-urlencode "q=python programming" \
  --data-urlencode "format=json" \
  --data-urlencode "categories=general" \
  --data-urlencode "language=en" \
  --data-urlencode "pageno=1"

4.4 Direct URL (HTTP tools or fetch)

GET https://go.ubient.dscloud.biz/search?q=%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD&format=json&categories=general&language=ko

5. JSON Response Structure

5.1 Top-Level Fields

FieldTypeDescription
queryStringThe processed search query
resultsArrayA list of search results (see 5.3)
answersArrayAnswer-style results
correctionsArraySearch query correction information
infoboxesArraySummary information and related attributes, as objects (see 5.4)
suggestionsArraySuggested related search terms
unresponsive_enginesArrayList of engines that failed to respond (see 5.5)

5.2 Empty Results Response

An HTTP request can succeed even when the results array is empty.

{
  "query": "example query",
  "results": [],
  "answers": [],
  "corrections": [],
  "infoboxes": [],
  "suggestions": [],
  "unresponsive_engines": []
}

5.3 Search Result Entries (results[])

FieldTypeDescription
titleStringThe title of the search result
urlStringThe original URL of the search result
contentStringA description or excerpt of the result. It can be an empty string.
engineStringThe name of one search engine that provided the result. If several engines returned the same URL, all of them are listed in engines.
enginesArrayThe names of all search engines that returned the result
positionsArrayThe rank at which the result appeared in the contributing engines’ result lists
categoryStringThe category of the search result
scoreNumberA ranking score calculated from positions. Higher values rank higher. Not normalized to 0-1 range; values from about 0.05 to about 2.29 were observed. Compare scores only within the same response.
publishedDateString/nullPublication date if available
img_srcStringImage source URL (for image results)
thumbnailStringThumbnail URL
parsed_urlArrayURL parsed into components
templateStringTemplate identifier

Important Notes:

  • Entries in the same response do not necessarily contain the same set of keys.
  • Missing values appear in different forms: an omitted field, null, or an empty string ("").
  • Clients should not assume that every result contains the same set of fields, and should treat an empty string and null the same way when checking for a missing value.

5.4 Infobox Entries (infoboxes[])

Infobox entries contain generic fields such as url, template, parsed_url, title, thumbnail, priority, engines, positions, score, category, publishedDate, and iframe_src.

5.5 Unresponsive Engine Entries (unresponsive_engines[])

Each entry is a two-element array: [engine, reason]

PositionTypeDescription
0StringThe name of the search engine
1StringA human-readable reason
"unresponsive_engines": [
  ["brave", "너무 많은 요청"],
  ["duckduckgo", "CAPTCHA"]
]
  • The reason text is translated and can carry a translated “Suspended” prefix.
  • Do not match on the exact text of the reason; use it for logging and display.
  • The response can still contain results when unresponsive_engines is not empty.

6. HTTP Responses and Error Handling

Status CodeMeaningRecommended Action
200 OKThe HTTP request was processed successfullyInspect the response body and parse the JSON.
403 ForbiddenAccess to the requested resource or output format was deniedCheck the requested output format and the server’s access policies.
Other status codesAn error occurred during request processing, on the server, or in the networkInspect the HTTP status code and response body.

Note: 200 OK indicates that the HTTP request was processed successfully. It does not guarantee that the results array contains one or more entries.

When a 403 Forbidden response is returned, check the HTTP status code before attempting to parse the response body as JSON.

  1. Send the HTTP request.
  2. Check the HTTP status code.
  3. If the request succeeds, parse the response body as JSON.
  4. Validate the presence and data types of fields, including results.
  5. Process the results according to further decision-making.

7. Configuration Retrieval (/config)

Request URL

GET https://go.ubient.dscloud.biz/config

Main Response Fields

FieldDescription
instance_nameThe name of the search instance
categoriesThe list of available search categories
enginesSearch engine configuration information
localesLanguage information available for the interface
autocompleteThe autocomplete provider configuration
safe_searchThe default SafeSearch setting

Engine Entry Fields (engines[])

FieldTypeDescription
nameStringThe name of the search engine
categoriesArrayThe categories the engine belongs to
shortcutStringThe short name of the engine
enabledBooleanWhether the engine is enabled. Disabled engines are also listed.
pagingBooleanWhether the engine supports paging (pageno)
language_supportBooleanWhether the engine supports a language parameter

The /config endpoint provides instance information; it does not return search results.

8. Usage Considerations

  • Search terms containing Korean characters or spaces must be URL-encoded.
  • Different search engines may return different fields in their results. Always check for field existence.
  • Monitor unresponsive_engines to understand the search engine response status.
  • A 200 OK response does not guarantee non-empty results; always check the results array.
  • When receiving 403 Forbidden, check the HTTP status code before attempting JSON parsing.
  • The score field is not normalized to 0-1 range. Use it only for relative comparison within the same response.

9. AI Agent Instructions

  1. Always include format=json in every request.
  2. URL-encode search terms properly.
  3. Extract url, title, content fields from the results array and present them to the user.
  4. If suggestions array contains related search terms, inform the user.
  5. If answers array contains direct answers, display them with priority.
  6. If infoboxes array contains summary information, use it as rich context.
  7. Check unresponsive_engines and inform the user if most engines are unresponsive.
  8. Check the HTTP status code first before attempting to parse JSON.

Was this page helpful?

Last update