Public request
No header is required. Public traffic uses the shared public rate-limit policy.
Integrate products, categories, collections, blogs, combined widgets, and more than 2,000 public buying guides into ASP.NET Core applications, affiliate websites, dashboards, and partner platforms.
All endpoints return clean JSON for websites and apps.
Public endpoints are protected by rate limiting.
Use buyUrl to keep tracking and redirects controlled.
Anonymous public requests can be sent without credentials. Production integrations should include an API key in the X-API-Key request header for higher, account-specific limits and lifecycle management.
No header is required. Public traffic uses the shared public rate-limit policy.
Send X-API-Key: YOUR_API_KEY with every request.
curl --request GET \ --url "https://as-mart.com/api/v1/products/featured?count=6" \ --header "Accept: application/json" \ --header "X-API-Key: YOUR_API_KEY"
Use these endpoints to show AS-Mart products on external websites.
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/products/featured?count=12 | Products | Featured products selected by admin. |
| GET | /api/v1/products/latest?count=12 | Products | Latest active products. |
| GET | /api/v1/products/popular?count=12 | Products | Popular products based on clicks and ratings. |
| GET | /api/v1/products/deals?count=12 | Deals | Products marked as Deal of the Day. |
| GET | /api/v1/products/top-rated?count=12 | Rating | Highest-rated products. |
| GET | /api/v1/products/random?count=6 | Widgets | Random active products for rotating widgets and ads. |
| GET | /api/v1/products/search?q=watch&count=12 | Search | Search by title, brand, or short description. |
| GET | /api/v1/products/category/{categorySlug}?count=12 | Category | Products from a specific category slug. |
| GET | /api/v1/products/brand/{brand}?count=12 | Brand | Products from a specific brand. |
| GET | /api/v1/products/price-range?min=10&max=100&count=12 | Filter | Products within a price range. |
| GET | /api/v1/products/related/{slug}?count=12 | Related | Related products using product categories. |
| GET | /api/v1/products/collection/{collectionSlug}?count=12 | Collection | Products from a public collection. |
| GET | /api/v1/products/home-widget?count=8 | Widget | Returns featured, deals, popular, and latest products in one response. |
| GET | /api/v1/products/promote/{slug} | Ad | Single product for advertising/promotion. |
| GET | /api/v1/products/{slug} | Single | Single active product by SEO slug. |
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/categories | Categories | Returns all public categories with product counts. |
| GET | /api/v1/products/category/{categorySlug}?count=12 | Products | Returns products for a specific category. |
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/collections | Collections | Returns all public collections with product counts. |
| GET | /api/v1/products/collection/{collectionSlug}?count=12 | Products | Returns products from a selected collection. |
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/blogs/latest?count=6 | Blogs | Returns latest AS-Mart blog posts for external websites. |
Use the combined endpoint when a page needs several AS-Mart resources at once. It reduces HTTP round trips and is recommended for dashboards, landing pages, and external home-page integrations.
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/widgets/home?productCount=8&blogCount=6&categoryCount=12&collectionCount=8&guideCount=8 | Combined | Returns product groups, latest blogs, categories, collections, latest SEO guides, and generation time in one response. |
Use these endpoints to consume public AS-Mart SEO guide pages. These are useful for guide widgets, AI search, sitemap tools, category pages, search tools, and external content integrations.
| Method | Endpoint | Resource | Functionality |
|---|---|---|---|
| GET | /api/v1/seopages?page=1&pageSize=20 | List | Returns paginated published SEO pages. |
| GET | /api/v1/seopages/{slug} | Single | Returns one published SEO page with intro, body, and FAQ JSON. |
| GET | /api/v1/seopages/latest?count=20 | Latest | Returns newest published SEO pages. |
| GET | /api/v1/seopages/random?count=10 | Widget | Returns random SEO pages for widgets or rotating links. |
| GET | /api/v1/seopages/search?q=laptop&page=1&pageSize=20 | Search | Searches title, slug, H1, keyword, and meta description. |
| GET | /api/v1/seopages/filter?category=laptops&brand=Apple&template=best_of | Filter | Filters SEO pages by category, brand, template, price range, sort mode, and keyword. |
| GET | /api/v1/seopages/category/{categorySlug}?count=20 | Category | Returns SEO pages from a selected category. |
| GET | /api/v1/seopages/categories | Categories | Returns SEO page categories with page counts. |
| GET | /api/v1/seopages/related/{slug}?count=10 | Related | Returns related SEO pages from the same category. |
| GET | /api/v1/seopages/home-widget?count=8 | Widget | Returns latest pages, random pages, and popular SEO categories. |
| GET | /api/v1/seopages/stats | Stats | Returns total SEO pages, published pages, category count, and last updated date. |
| GET | /api/v1/seopages/sitemap | Sitemap | Returns public SEO page URLs and update dates for crawlers and external sitemap tools. |
| GET | /api/v1/seopages/templates | Templates | Returns available SEO page template keys. |
| GET | /api/v1/seopages/template/{template}?count=20 | Template | Returns SEO pages from a selected template key. |
| GET | /api/v1/seopages/brands | Brands | Returns available SEO page brands. |
| GET | /api/v1/seopages/brand/{brand}?count=20 | Brand | Returns SEO pages for a selected brand. |
| GET | /api/v1/seopages/ai?q=best laptop&count=10 | AI | Returns AI-friendly SEO search results with title, summary, URL, category, and keyword. |
| Field | Type | Description |
|---|---|---|
| id | int | Product ID. |
| title | string | Product title. |
| slug | string | SEO slug. |
| shortDescription | string | Short product summary. |
| brand | string | Brand name. |
| price | decimal | Sale price. |
| listPrice | decimal | Original/list price. |
| currency | string | Currency code. |
| Field | Type | Description |
|---|---|---|
| rating | decimal | Product rating. |
| ratingCount | int | Total ratings. |
| mainImageUrl | string | Main image URL. |
| productUrl | string | AS-Mart product page. |
| buyUrl | string | Tracked buy redirect. |
| isFeatured | bool | Featured flag. |
| isDealOfTheDay | bool | Deal flag. |
| categories | array | Category names. |
API errors use standard HTTP status codes. JSON error responses may include success, error, message, traceId, and validation errors.
The request succeeded.
A parameter failed validation.
The API key is invalid, disabled, expired, or revoked.
The requested route or resource does not exist.
The rate limit or monthly quota was exceeded.
An unexpected server-side failure occurred.
{
"success": false,
"error": "invalid_api_key",
"message": "The supplied API key is invalid, expired, disabled, or revoked.",
"traceId": "00-0123456789abcdef-0123456789abcdef-00",
"errors": null,
"data": null
}
AS-Mart public APIs are rate limited to keep the service fast, stable, and protected from abuse. You can use public endpoints without an API key, but API key access is recommended for websites, apps, dashboards, partner platforms, and production integrations.
60 requests per minute
No API key required. Best for testing, demos, and light usage.
Higher limits available
Use an API key for trusted websites, ASP.NET Core apps, affiliate blogs, widgets, and production integrations.
When the rate limit is exceeded, the API returns:
429 Too Many Requests
[
{
"id": 101,
"title": "Example Product Title",
"slug": "example-product-title",
"shortDescription": "Short product description here.",
"brand": "Example Brand",
"price": 49.99,
"listPrice": 69.99,
"currency": "USD",
"rating": 4.6,
"ratingCount": 1240,
"mainImageUrl": "https://example.com/product.jpg",
"productUrl": "https://as-mart.com/product/example-product-title",
"buyUrl": "https://as-mart.com/product/go/101",
"isFeatured": true,
"isDealOfTheDay": false,
"clickCount": 250,
"categories": ["Electronics", "Smart Devices"]
}
]
{
"featured": [],
"deals": [],
"popular": [],
"latest": []
}
fetch("https://as-mart.com/api/v1/products/home-widget?count=6")
.then(response => response.json())
.then(data => {
console.log(data.featured);
console.log(data.deals);
console.log(data.popular);
console.log(data.latest);
})
.catch(error => {
console.error("API Error:", error);
});
public class AsMartApiService
{
private readonly HttpClient _httpClient;
public AsMartApiService(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task<ProductHomeWidgetApiDto> GetHomeWidgetAsync()
{
var result = await _httpClient.GetFromJsonAsync<ProductHomeWidgetApiDto>(
"https://as-mart.com/api/v1/products/home-widget?count=8");
return result ?? new ProductHomeWidgetApiDto();
}
}
builder.Services.AddHttpClient<AsMartApiService>(client =>
{
client.BaseAddress = new Uri("https://as-mart.com/");
client.DefaultRequestHeaders.Accept.ParseAdd("application/json");
client.DefaultRequestHeaders.Add("X-API-Key", configuration["AsMartApi:ApiKey"]);
});
const url = new URL("https://as-mart.com/api/v1/seopages/filter");
url.searchParams.set("category", "laptops");
url.searchParams.set("brand", "Apple");
url.searchParams.set("template", "best_of");
url.searchParams.set("page", "1");
url.searchParams.set("pageSize", "20");
const response = await fetch(url, {
headers: {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
});
const result = await response.json();