How to configure Fulfillment option in AI Agent Listing
Last updated: February 27, 2026
Configure fulfillment options
Choose a fulfillment method.
Note
You can't change the fulfillment method after you publish the product.
Enter the fulfillment URL.
Note
The fulfillment URL is your landing page where AWS Marketplace will redirect buyers to after they subscribe to your product (also known as your SaaS landing page or SaaS fulfillment URL).
Enter the endpoint URL.
Choose an authorization method:
API Keys – Customers authenticate using API keys that you provide.
OAuth – Customers authenticate using OAuth 2.0 authorization flow.
If you choose OAuth, provide clear usage instructions for customers, including:
OAuth authorization URL and token endpoint
Required scopes and permissions
Step-by-step authentication flow instructions
Example API calls with proper authentication headers
Troubleshooting common authentication issues
(Optional) Add integration protocols.
Specify any integration protocols your AI agent or tool supports, such as MCP or other standardized communication protocols. This helps customers understand how to integrate your solution into their existing workflows.
Choose your AI agent or tool type.
Note
If you choose Free product, pricing and refund policy settings don't apply.
Provide detailed usage instructions.
Usage instructions example
When listing your AI agent or tool on AWS Marketplace, provide clear usage instructions to help customers integrate and use your solution.
To get started follow the instructions below:
**Authentication**
All API requests require this HTTP header:
Authorization: Bearer `YOUR_API_KEY`
Replace `YOUR_API_KEY` with your actual key.
🔍 **Search Endpoint**
**Endpoint:** `GET /web/search`
Performs a web search.
**Query Parameters:**
| Param | Type | Description |
|------------|--------|-------------------------------------|
| `q` | string | Your search query (required) |
| `count` | int | Number of results (default: 10) |
| `offset` | int | Offset for pagination |
| `country` | string | Country code (e.g. `us`, `de`) |
| `safesearch` | string | `off`, `moderate`, or `strict` |
**Example Request:**
```bash
curl -X GET "https://api.search.demo.com/res/v1/web/search?q=searchtool" \
-H "Authorization: Bearer YOUR_API_KEY"
```
**Response Schema:**
```
{
"results": [{
"title": "string",
"url": "string",
"description": "string"
}],
"query" :"string",
"total" :"number"
}
```
**Example Response:**
```
{
"results": [
{
"title": "DemoProductAPI",
"url": "https://demo.com",
"description": "Demo Product API is a search tool for..."
}
],
"query": "searchtool",
"total": 1
}
```
🧠 **Additional Search Types**
DemoProduct also supports:
- `GET /news/search – News articles`
- `GET /images/search – Image results`
- `GET /videos/search – Video results`
These endpoints follow the same format as /web/search.
📥 **Summarize Endpoint**
**Endpoint:** `POST /summarize`
Summarizes a webpage
**Request Headers:**
Content Type: application/json
**Request Body:**
```
{
"input": "string" // URL or plain text
}
```
**Example Request:**
```
{
"input": "https://example.com/article"
}
```
**Response Schema**
```
{
"summary": "string"
}
```
**Example Response**
```
{
"summary": "This article explains our commitment to user privacy."
}
```
📛 **Error Codes**
| Status | Meaning |
| ------ | ------------------------------ |
| `401` | Unauthorized (check your key) |
| `429` | Too many requests (rate limit) |
| `500` | Server error |
All error responses follow this structure:
```
{
"error": {
"code": 401,
"message": "Unauthorized"
}
}
```
⏱️ **Rate Limits**
- 60 requests per minute per API key.
- Exceeding returns HTTP 429 Too Many Requests.
- Use retry and exponential backoff to handle limits.
📘 **Learn More**
📄 API Docs: https://api.search.demoproduct.com