High-Performance API for Product Data Extraction
Budget: $250 – $750 USD
Title
High-Performance API to Get Product Info & Alternative Images + Brand Logo
(No Upload, Anti-Blocking, Private to My App, Easy Azure Deployment)
Description
Build a fast, low-latency API with two main functions:
Get product info & alternative product images
Input: product page URL (Amazon, Noon, etc.)
Output:
siteName (e.g., “Amazon”, “Noon”)
name, brand, description
List of alternative product images from other sources (manufacturer/reputable retailers — not Amazon/Noon CDN)
Get brand logo (site picture)
Input: any website URL
Output:
The main brand logo image (transparent PNG/SVG or clean JPG; not favicon, not screenshot)
Important
API must not upload files — my app uploads to Azure Blobs using my existing method:
public async Task<string> Upload(Stream filesStream, string fileName)
This method will not change.
The API only returns data (URLs + metadata).
Performance Requirements (Very Fast)
Median response time for typical requests: < 1 second.
Cold start optimization: warm-up logic or Azure Always On.
Parallel extraction: run logo extraction, product detail parsing, and image search in parallel.
Concurrent API calls to search providers with short timeouts & failover.
Preflight HEAD checks run in parallel; no sequential blocking.
Caching: in-memory + optional Redis; cache hits served in <100 ms.
Async/non-blocking I/O for all network calls.
Efficient HTML parsing (stream-based if possible).
Security: Only My App Can Use This API
HMAC request signing (X-Client-Id, X-Date, X-Nonce, X-Signature, 5-min skew, replay protection).
IP allowlist (my server IPs only).
Strict CORS to my origin(s).
Rate limiting per client & IP.
TLS only; mTLS optional.
Secrets in Azure Key Vault; support key rotation.
Apply to all endpoints (including proxy).
Endpoints
1) Product info + alternative images
GET /api/product-info-images?url={productUrl}&take=12
Output includes siteName, name, brand, description, and candidates with:
previewUrl, downloadUrl, suggestedFileName
contentType, dimensions, bytes, sourceHost, license
directDownloadOk, recommendedHeaders, useProxy
2) Brand logo (site picture)
GET /api/site-picture?url={siteUrl}
Extract logos from HTML (img in header/nav with “logo” in class/id/alt), JSON-LD, <link rel="logo">, OG/Twitter image if clearly a logo.
Prefer transparent PNG/SVG, ≥128px, square or horizontal rectangle.
Avoid product shots, banners, or icons only.
(Optional) Proxy for blocked hotlinks
GET /api/proxy/image/{id}
Streams bytes with required headers.
No storing/uploading in API.
Anti-Blocking Requirements
Preflight each image (HEAD/GET), set directDownloadOk, recommendedHeaders, useProxy.
Respect 429/Retry-After, timeouts, and polite headers.
Per-host concurrency caps; exponential backoff with jitter.
Cache positives (1–24h) and negatives briefly.
Tech
.NET 8 Web API, Python FastAPI, or Node.js (Nest/Express).
Fully async, non-blocking design.
Clean code, DI, env-based config, caching layer.
Containerized with Dockerfile.
Easy Azure Deployment (Must-Have)
One-click or one-command deployment to Azure:
Option A: Bicep/Terraform for Azure App Service (Linux), Key Vault, Application Insights, optional Redis.
Option B: Docker + Azure Container Apps via GitHub Actions.
GitHub Actions pipeline: build, push, deploy, set app settings, bind MI to Key Vault.
CORS, IP restrictions, secrets in Key Vault.
README with a single deploy command or “Deploy to Azure” button.
Deliverables
Source code + infra templates + GitHub Actions workflow.
Postman/Thunder collection or .http examples.
README: local run, Azure deploy, config, secrets, sample calls.
Minimal HTML test page (optional).
Timeline
1–2 weeks
To Apply
Show similar work (scraping, product data extraction, logo discovery, secure APIs, high-performance Azure apps).
Confirm:
No uploads in API.
HMAC + IP allowlist + CORS + rate limiting.
Anti-blocking & caching.
One-click Azure deployment.
Fast (<1s median response).
Propose stack/tools + provide ETA.
High-Performance API to Get Product Info & Alternative Images + Brand Logo
(No Upload, Anti-Blocking, Private to My App, Easy Azure Deployment)
Description
Build a fast, low-latency API with two main functions:
Get product info & alternative product images
Input: product page URL (Amazon, Noon, etc.)
Output:
siteName (e.g., “Amazon”, “Noon”)
name, brand, description
List of alternative product images from other sources (manufacturer/reputable retailers — not Amazon/Noon CDN)
Get brand logo (site picture)
Input: any website URL
Output:
The main brand logo image (transparent PNG/SVG or clean JPG; not favicon, not screenshot)
Important
API must not upload files — my app uploads to Azure Blobs using my existing method:
public async Task<string> Upload(Stream filesStream, string fileName)
This method will not change.
The API only returns data (URLs + metadata).
Performance Requirements (Very Fast)
Median response time for typical requests: < 1 second.
Cold start optimization: warm-up logic or Azure Always On.
Parallel extraction: run logo extraction, product detail parsing, and image search in parallel.
Concurrent API calls to search providers with short timeouts & failover.
Preflight HEAD checks run in parallel; no sequential blocking.
Caching: in-memory + optional Redis; cache hits served in <100 ms.
Async/non-blocking I/O for all network calls.
Efficient HTML parsing (stream-based if possible).
Security: Only My App Can Use This API
HMAC request signing (X-Client-Id, X-Date, X-Nonce, X-Signature, 5-min skew, replay protection).
IP allowlist (my server IPs only).
Strict CORS to my origin(s).
Rate limiting per client & IP.
TLS only; mTLS optional.
Secrets in Azure Key Vault; support key rotation.
Apply to all endpoints (including proxy).
Endpoints
1) Product info + alternative images
GET /api/product-info-images?url={productUrl}&take=12
Output includes siteName, name, brand, description, and candidates with:
previewUrl, downloadUrl, suggestedFileName
contentType, dimensions, bytes, sourceHost, license
directDownloadOk, recommendedHeaders, useProxy
2) Brand logo (site picture)
GET /api/site-picture?url={siteUrl}
Extract logos from HTML (img in header/nav with “logo” in class/id/alt), JSON-LD, <link rel="logo">, OG/Twitter image if clearly a logo.
Prefer transparent PNG/SVG, ≥128px, square or horizontal rectangle.
Avoid product shots, banners, or icons only.
(Optional) Proxy for blocked hotlinks
GET /api/proxy/image/{id}
Streams bytes with required headers.
No storing/uploading in API.
Anti-Blocking Requirements
Preflight each image (HEAD/GET), set directDownloadOk, recommendedHeaders, useProxy.
Respect 429/Retry-After, timeouts, and polite headers.
Per-host concurrency caps; exponential backoff with jitter.
Cache positives (1–24h) and negatives briefly.
Tech
.NET 8 Web API, Python FastAPI, or Node.js (Nest/Express).
Fully async, non-blocking design.
Clean code, DI, env-based config, caching layer.
Containerized with Dockerfile.
Easy Azure Deployment (Must-Have)
One-click or one-command deployment to Azure:
Option A: Bicep/Terraform for Azure App Service (Linux), Key Vault, Application Insights, optional Redis.
Option B: Docker + Azure Container Apps via GitHub Actions.
GitHub Actions pipeline: build, push, deploy, set app settings, bind MI to Key Vault.
CORS, IP restrictions, secrets in Key Vault.
README with a single deploy command or “Deploy to Azure” button.
Deliverables
Source code + infra templates + GitHub Actions workflow.
Postman/Thunder collection or .http examples.
README: local run, Azure deploy, config, secrets, sample calls.
Minimal HTML test page (optional).
Timeline
1–2 weeks
To Apply
Show similar work (scraping, product data extraction, logo discovery, secure APIs, high-performance Azure apps).
Confirm:
No uploads in API.
HMAC + IP allowlist + CORS + rate limiting.
Anti-blocking & caching.
One-click Azure deployment.
Fast (<1s median response).
Propose stack/tools + provide ETA.
Related categories:
Web Scraping
Azure
Node.js
Docker
Data Extraction
Security
.NET Core Web API
API Development