Fetch One Web Page
Fetch one public HTTP or HTTPS page through Crustdata. Send a single URL in urls and inspect the first item in the response array. Check the item’s http_status for the target page status and read any returned title and HTML. When the Crustdata API returns HTTP 200, the fetch attempt is billed even if the target page returns 404. Use the response to extract text or structured data from a page selected in a search or monitoring workflow.
- Selected price
- $0.3 / callPublished pricing
- Providers / implementations
- 1 / 1
- Requests · 30d
- —Loading...
- Success rate · 30d
- —Loading...
| Provider | Pricing | Requests · 30d | Performance | Access |
|---|---|---|---|---|
crustdataCurrent Fetch One Web Page · POST | $0.3 / call | — | —successP50— |
Run sends a real API request. Charges follow the published API contract.
Response structure
responseobject[]contentstringhttp_statusintegersuccessbooleantimestampintegertitlestringurlstring
// Inferred from response examples. Fields are optional and other fields may be returned.
export type ApiResponse = Array<{
content?: string;
http_status?: number;
success?: boolean;
timestamp?: number;
title?: string;
url?: string;
}>;- Method
- POST
- Endpoint
https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live- Content type
- application/json
- Authentication
Authorization: Bearer $OPENANY_API_KEY
curl \
'https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live' \
-X POST \
-H "Authorization: Bearer $OPENANY_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"urls": [
"https://example.com/"
]
}'Input parameters
Fields in this listing; additional options and input encoding can vary by provider.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
urls | JSON request bodybody | array | Yes | minItems: 1 · maxItems: 1 Nested fields and variants
|
Required markers inside a nested object or variant apply when that object or variant is used.
Sample response
Sample response · Documented HTTP 200 Published documentation example. Verify the actual response after an approved call.
[
{
"content": "<html lang=\"en\"><head><meta charset=\"utf-8\"><link rel=\"icon\" href=\"data:,\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Example Domain</title><style>html{color-scheme:light dark;background:light-dark(#eee,#222)}body{font:16px/1.6 system-ui,sans-serif;max-width:26em;margin:auto;padding:25vh 2em 2em;text-align:center}</style></head><body><style>svg{display:block;margin:-2.75em auto 0;opacity:.55}p+p{font-size:.875em;opacity:.6}</style><svg viewBox=\"0,0,20,20\" width=\"44\" height=\"44\" fill=\"currentColor\" aria-hidden=\"true\"><path fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linejoin=\"round\" d=\"M6 4H3v12q4 0 7 1.5-1-3.5-4-4.5V2q3.5 1 4 3v12.5q3-1.5 7-1.5V4q-4.5 0-7 1\"></path><g transform=\"rotate(-6,13.6,8.3)\"><path id=\"q\" d=\"M11.5 6.6h1.8v1.8l-1 1.6-.6-.3.8-1.3h-1z\"></path><use href=\"#q\" x=\"2.4\"></use></g></svg><p lang=\"en\">This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.</p><p lang=\"ar\" dir=\"rtl\">هذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.</p><p lang=\"zh\">该域名仅用于文档示例,无需获得许可。这并非一项服务,请勿将其用于测试和监控目的。</p><p lang=\"fr\">L’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.</p><p lang=\"ru\">Данный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.</p><p lang=\"es\">Este dominio está destinado al uso en ejemplos de documentación sin necesidad de permiso. Esto no es un servicio; evitar utilizarlo para realizar pruebas o monitoreos.</p><a href=\"https://iana.org/help/example-domains\">Learn more</a><script src=\"/s.js\"></script>\n</body></html>",
"http_status": 200,
"success": true,
"timestamp": 1794313086,
"title": "Example Domain",
"url": "https://example.com/"
}
]Agent integration
Copy the resource contract without sharing an API key.
View API Markdown
# Fetch One Web Page
Fetch one public HTTP or HTTPS page through Crustdata. Send a single URL in urls and inspect the first item in the response array. Check the item’s http_status for the target page status and read any returned title and HTML. When the Crustdata API returns HTTP 200, the fetch attempt is billed even if the target page returns 404. Use the response to extract text or structured data from a page selected in a search or monitoring workflow.
Documentation: https://openany.si/apis/1963d8d0-458d-401a-a49f-c8d6e20224b4
Method: POST
Endpoint: https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live
Price: $0.3 / call
Provider: crustdata
Contract revision: 3
Price source: OpenAny public API contract and documented provider unit rates. Price update time: not supplied.
Use OPENANY_API_KEY from the environment. API Key calls use your shared balance.
## Prepared request
```bash
curl \
'https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live' \
-X POST \
-H "Authorization: Bearer $OPENANY_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"urls": [
"https://example.com/"
]
}'
```
## API contract
```json
{
"resource_type": "api",
"name": "Fetch One Web Page",
"endpoint": "https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live",
"method": "POST",
"content_type": "application/json",
"execution_mode": "sync",
"authentication": {
"type": "bearer",
"environment_variable": "OPENANY_API_KEY"
},
"inputs": [
{
"description": "Fetch one public HTTP or HTTPS page through Crustdata. Send a single URL in urls and inspect the first item in the response array. Check the item’s http_status for the target page status and read any returned title and HTML. When the Crustdata API returns HTTP 200, the fetch attempt is billed even if the target page returns 404. Use the response to extract text or structured data from a page selected in a search or monitoring workflow.",
"json_schema": {
"additionalProperties": false,
"properties": {
"urls": {
"items": {
"format": "uri",
"maxLength": 2048,
"pattern": "^https?://",
"type": "string"
},
"maxItems": 1,
"minItems": 1,
"type": "array"
}
},
"required": [
"urls"
],
"type": "object"
},
"location": "body",
"name": "body",
"nullable": false,
"pointer": "",
"required": true,
"type": "object"
}
],
"billing": {
"currency": "USD",
"mode": "fixed",
"priceMicroUsd": "300000",
"rounding": null,
"unit": "call",
"unitQuantity": null
},
"examples": [
{
"http_status": 200,
"name": "Documentation example",
"request": {
"body": {
"urls": [
"https://example.com/"
]
},
"headers": {},
"path": {},
"query": {}
},
"response_body": [
{
"content": "<html lang=\"en\"><head><meta charset=\"utf-8\"><link rel=\"icon\" href=\"data:,\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Example Domain</title><style>html{color-scheme:light dark;background:light-dark(#eee,#222)}body{font:16px/1.6 system-ui,sans-serif;max-width:26em;margin:auto;padding:25vh 2em 2em;text-align:center}</style></head><body><style>svg{display:block;margin:-2.75em auto 0;opacity:.55}p+p{font-size:.875em;opacity:.6}</style><svg viewBox=\"0,0,20,20\" width=\"44\" height=\"44\" fill=\"currentColor\" aria-hidden=\"true\"><path fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linejoin=\"round\" d=\"M6 4H3v12q4 0 7 1.5-1-3.5-4-4.5V2q3.5 1 4 3v12.5q3-1.5 7-1.5V4q-4.5 0-7 1\"></path><g transform=\"rotate(-6,13.6,8.3)\"><path id=\"q\" d=\"M11.5 6.6h1.8v1.8l-1 1.6-.6-.3.8-1.3h-1z\"></path><use href=\"#q\" x=\"2.4\"></use></g></svg><p lang=\"en\">This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.</p><p lang=\"ar\" dir=\"rtl\">هذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.</p><p lang=\"zh\">该域名仅用于文档示例,无需获得许可。这并非一项服务,请勿将其用于测试和监控目的。</p><p lang=\"fr\">L’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.</p><p lang=\"ru\">Данный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.</p><p lang=\"es\">Este dominio está destinado al uso en ejemplos de documentación sin necesidad de permiso. Esto no es un servicio; evitar utilizarlo para realizar pruebas o monitoreos.</p><a href=\"https://iana.org/help/example-domains\">Learn more</a><script src=\"/s.js\"></script>\n</body></html>",
"http_status": 200,
"success": true,
"timestamp": 1794313086,
"title": "Example Domain",
"url": "https://example.com/"
}
]
}
]
}
```Error handling
| Status | Next step |
|---|---|
400 | Check the offering and request fields. |
401 / 403 | Verify your credentials and access permissions. |
402 | Inspect the selected access mode and returned payment requirements. |
429 | Respect the returned rate limit and retry guidance. |
5xx | Inspect the error and usage record before retrying a paid operation. |
Documentation example
Published documentation example. Verify the actual response after an approved call.
Prepare your environment
Use a terminal with cURL installed.
Use an OpenAny API key with shared-balance access. Confirm availability and price before running; a call may charge your balance.
Set the key in your terminal using the hidden prompt below. Keep its value out of source files and logs.
Terminal · macOS / Linuxprintf 'OpenAny API key: ' read -r -s OPENANY_API_KEY export OPENANY_API_KEY printf '\n'Run the request
Paste the complete command below into your terminal.
Values to replace before running 1
Review these request fields before running. Keep the published provider and request method unchanged.
body- Fetch one public HTTP or HTTPS page through Crustdata. Send a single URL in urls and inspect the first item in the response array. Check the item’s http_status for the target page status and read any returned title and HTML. When the Crustdata API returns HTTP 200, the fetch attempt is billed even if the target page returns 404. Use the response to extract text or structured data from a page selected in a search or monitoring workflow.
Terminal · cURLcurl \ 'https://api.openany.si/v1/agent-apis/crustdata/crustdata/web/enrich/live' \ -X POST \ -H "Authorization: Bearer $OPENANY_API_KEY" \ -H 'Content-Type: application/json' \ --data-raw '{ "urls": [ "https://example.com/" ] }'Check the response
Sample response · Documented HTTP 200
Sample response[ { "content": "<html lang=\"en\"><head><meta charset=\"utf-8\"><link rel=\"icon\" href=\"data:,\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Example Domain</title><style>html{color-scheme:light dark;background:light-dark(#eee,#222)}body{font:16px/1.6 system-ui,sans-serif;max-width:26em;margin:auto;padding:25vh 2em 2em;text-align:center}</style></head><body><style>svg{display:block;margin:-2.75em auto 0;opacity:.55}p+p{font-size:.875em;opacity:.6}</style><svg viewBox=\"0,0,20,20\" width=\"44\" height=\"44\" fill=\"currentColor\" aria-hidden=\"true\"><path fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linejoin=\"round\" d=\"M6 4H3v12q4 0 7 1.5-1-3.5-4-4.5V2q3.5 1 4 3v12.5q3-1.5 7-1.5V4q-4.5 0-7 1\"></path><g transform=\"rotate(-6,13.6,8.3)\"><path id=\"q\" d=\"M11.5 6.6h1.8v1.8l-1 1.6-.6-.3.8-1.3h-1z\"></path><use href=\"#q\" x=\"2.4\"></use></g></svg><p lang=\"en\">This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.</p><p lang=\"ar\" dir=\"rtl\">هذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.</p><p lang=\"zh\">该域名仅用于文档示例,无需获得许可。这并非一项服务,请勿将其用于测试和监控目的。</p><p lang=\"fr\">L’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.</p><p lang=\"ru\">Данный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.</p><p lang=\"es\">Este dominio está destinado al uso en ejemplos de documentación sin necesidad de permiso. Esto no es un servicio; evitar utilizarlo para realizar pruebas o monitoreos.</p><a href=\"https://iana.org/help/example-domains\">Learn more</a><script src=\"/s.js\"></script>\n</body></html>", "http_status": 200, "success": true, "timestamp": 1794313086, "title": "Example Domain", "url": "https://example.com/" } ]
Loading related APIs…
Common questions
Do I need a separate key for every provider?
Use your OpenAny API key for standard API access. Read it from OPENANY_API_KEY in your environment and keep it out of prompts, source code and logs.
Are these providers interchangeable?
No. Each offering has its own inputs, pricing and response contract. Selecting a catalog offering does not establish automatic routing or fallback. Confirm the service contract before calling.
How is this API billed?
API-key calls use your shared balance at the selected implementation's published rate. Check the billing unit and request-specific pricing rules before making a paid call. Recorded usage determines the final charge under that contract.
Where do the price and contract come from?
The selected implementation publishes its provider, request contract, revision and billing rules through OpenAny's public API catalog. A revision number identifies a contract version, not a price update date. A price update timestamp is not supplied; do not treat a page date as one.
How do OpenAny Balance and x402 differ?
OpenAny Balance uses an API key and one shared balance. Card, USDC and x402 top-ups, card auto top-up and USDC subscriptions fund that balance; available routes appear on the Credits page. Direct x402 is a separate pay-per-request flow, available only on listings that show it and requiring an authorized payment client.
Does Playground send a paid request?
Yes. After you sign in, Run sends a real API request using an active OpenAny API key. Charges follow the published API contract and use your shared balance. Selecting an implementation, editing inputs and viewing sample responses do not send requests.
Use Fetch One Web Page with your agent
Inspect endpoint contracts and confirm availability and pricing before a paid call.