Home · Skills · Development
Linkup - Web Search & Fetch API
Web search and content fetching - search the web or extract content from URLs
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/web-search-linkup#main ~/.claude/skills/web-search-linkupFor one project only, change the path to .claude/skills/web-search-linkup.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text97 lines
Linkup - Web Search & Fetch API
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Search the web and fetch content from any URL.
Capabilities
- Search: The /search endpoint allows you to retrieve web content
- Fetch: The /fetch endpoint allows you to fetch a single webpage from a given URL
Usage
Search
The /search endpoint allows you to retrieve web content.
Parameters:
- q* (string) - The natural language question for which you want to retrieve context.
- depth* (string) - Defines the precision of the search. standard returns results faster; deep takes longer but yields more comprehensive results.
- outputType* (string) - The type of output you want to get. Use structured for a custom-formatted response defined by structuredOutputSchema.
- structuredOutputSchema (object) - Required only when outputType is structured. Provide a JSON schema (as a string) representing the desired response format. The root must be of type object.
- includeSources (boolean) - Relevant only when outputType is structured. Defines whether the response should include sources. Please note that it modifies the schema of the response, see below
- includeImages (boolean) - Defines whether the API should include images in its results.
- fromDate (string) - The date from which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be before toDate, if provided, and later than 1970-01-01.
- toDate (string) - The date until which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be later than fromDate, if provided, or than 1970-01-01.
- includeDomains (string[]) - The domains you want to search on. By default, don't restrict the search. You can provide up to 100 domains.
- excludeDomains (string[]) - The domains you want to exclude of the search. By default, don't restrict the search.
- includeInlineCitations (boolean) - Relevant only when outputType is sourcedAnswer. Defines whether the answer should include inline citations.
- maxResults (number) - The maximum number of results to return.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"linkup","path":"/search"}'
"q": "latest AI developments 2024",
"depth": "standard",
"outputType": "sourcedAnswer"
}'
Fetch
The /fetch endpoint allows you to fetch a single webpage from a given URL.
Parameters:
- url* (string) - The URL of the webpage you want to fetch.
- renderJs (boolean) - Defines whether the API should render the JavaScript of the webpage.
- includeRawHtml (boolean) - Defines whether the API should include the raw HTML of the webpage in its response.
- extractImages (boolean) - Defines whether the API should extract the images from the webpage in its response.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"linkup","path":"/fetch","body":{"url":"https://example.com/article"}}'
Use Cases
- Research: Search for information on any topic
- Content Aggregation: Fetch and process web content
- Fact Checking: Verify information from multiple sources
- News Monitoring: Track news on specific topics
Discover More
For full endpoint details and parameters:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"linkup API endpoints"}' List all endpoints
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"linkup","path":"/search"}' # Get endpoint details
| 1 | |
| 2 | name web-search-linkup |
| 3 | description Web search and content fetching - search the web or extract content from URLs |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Linkup - Web Search & Fetch API |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Search the web and fetch content from any URL. |
| 24 | |
| 25 | ## Capabilities |
| 26 | |
| 27 | **Search**: The /search endpoint allows you to retrieve web content |
| 28 | **Fetch**: The /fetch endpoint allows you to fetch a single webpage from a given URL |
| 29 | |
| 30 | ## Usage |
| 31 | |
| 32 | ### Search |
| 33 | The /search endpoint allows you to retrieve web content. |
| 34 | |
| 35 | Parameters: |
| 36 | q* (string) - The natural language question for which you want to retrieve context. |
| 37 | depth* (string) - Defines the precision of the search. standard returns results faster; deep takes longer but yields more comprehensive results. |
| 38 | outputType* (string) - The type of output you want to get. Use structured for a custom-formatted response defined by structuredOutputSchema. |
| 39 | structuredOutputSchema (object) - Required only when outputType is structured. Provide a JSON schema (as a string) representing the desired response format. The root must be of type object. |
| 40 | includeSources (boolean) - Relevant only when outputType is structured. Defines whether the response should include sources. Please note that it modifies the schema of the response, see below |
| 41 | includeImages (boolean) - Defines whether the API should include images in its results. |
| 42 | fromDate (string) - The date from which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be before toDate, if provided, and later than 1970-01-01. |
| 43 | toDate (string) - The date until which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be later than fromDate, if provided, or than 1970-01-01. |
| 44 | includeDomains (string[]) - The domains you want to search on. By default, don't restrict the search. You can provide up to 100 domains. |
| 45 | excludeDomains (string[]) - The domains you want to exclude of the search. By default, don't restrict the search. |
| 46 | includeInlineCitations (boolean) - Relevant only when outputType is sourcedAnswer. Defines whether the answer should include inline citations. |
| 47 | maxResults (number) - The maximum number of results to return. |
| 48 | |
| 49 | |
| 50 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 51 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 52 | -H "Content-Type: application/json" \ |
| 53 | -d '{"api":"linkup","path":"/search"}' |
| 54 | "q": "latest AI developments 2024", |
| 55 | "depth": "standard", |
| 56 | "outputType": "sourcedAnswer" |
| 57 | }' |
| 58 | |
| 59 | |
| 60 | ### Fetch |
| 61 | The /fetch endpoint allows you to fetch a single webpage from a given URL. |
| 62 | |
| 63 | Parameters: |
| 64 | url* (string) - The URL of the webpage you want to fetch. |
| 65 | renderJs (boolean) - Defines whether the API should render the JavaScript of the webpage. |
| 66 | includeRawHtml (boolean) - Defines whether the API should include the raw HTML of the webpage in its response. |
| 67 | extractImages (boolean) - Defines whether the API should extract the images from the webpage in its response. |
| 68 | |
| 69 | |
| 70 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 71 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 72 | -H "Content-Type: application/json" \ |
| 73 | -d '{"api":"linkup","path":"/fetch","body":{"url":"https://example.com/article"}}' |
| 74 | |
| 75 | |
| 76 | ## Use Cases |
| 77 | |
| 78 | **Research**: Search for information on any topic |
| 79 | **Content Aggregation**: Fetch and process web content |
| 80 | **Fact Checking**: Verify information from multiple sources |
| 81 | **News Monitoring**: Track news on specific topics |
| 82 | |
| 83 | ## Discover More |
| 84 | |
| 85 | For full endpoint details and parameters: |
| 86 | |
| 87 | |
| 88 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \ |
| 89 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 90 | -H "Content-Type: application/json" \ |
| 91 | -d '{"prompt":"linkup API endpoints"}' List all endpoints |
| 92 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \ |
| 93 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 94 | -H "Content-Type: application/json" \ |
| 95 | -d '{"api":"linkup","path":"/search"}' # Get endpoint details |
| 96 | |
| 97 |
Discussion
Alternatives
Also in Services & APIsContext7Pulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.Adaptyv Bio Foundry APIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`..NET Backend Development PatternsMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.Add AI protectionProtect AI chat and completion endpoints from abuse — detect prompt injection and jailbreak attempts, block PII and sensitive info from leaking in responses, and enforce token budget rate limits to control costs. Use this skill when the user is building or securing any endpoint that processes user prompts with an LLM, even if they describe it as "preventing jailbreaks," "stopping prompt attacks," "blocking sensitive data," or "controlling AI API costs" rather than naming specific protections.