Scrapp Zero | Home
const PRISM_API_KEY = 'prism_jrfvXGHXOMscbgOD7NrcMgO5K2oQ4OqZ'; const PRISM_ENDPOINT = 'https://prism.trakkr.ai'; const PRISM_TIMEOUT = 1000; // ms // Crawler patterns to optimize for (customizable) const AI_CRAWLERS = [ 'gptbot', 'chatgpt-user', 'oai-searchbot', 'claudebot', 'claude-user', 'claude-searchbot', 'perplexitybot', 'meta-externalagent', 'google-extended', 'cohere-ai', 'applebot-extended', 'amazonbot', 'baiduspider', 'bytespider' ]; addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const url = new URL(request.url); // Quick bypass for non-HTML requests if (url.pathname.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$/i)) { return fetch(request); } // Check if AI crawler const ua = (request.headers.get('user-agent') || '').toLowerCase(); const isAICrawler = AI_CRAWLERS.some(bot => ua.includes(bot)); if (!isAICrawler) { return fetch(request); } // Detect crawler type const crawlerType = AI_CRAWLERS.find(bot => ua.includes(bot)) || 'unknown'; try { // Call Prism API with tight timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), PRISM_TIMEOUT); const prismResponse = await fetch(PRISM_ENDPOINT, { method: 'POST', headers: { 'X-API-Key': PRISM_API_KEY, 'X-Crawler-UA': ua.substring(0, 200), 'X-Target-URL': url.toString(), 'Content-Type': 'application/json' }, body: JSON.stringify({ url: url.toString(), pathname: url.pathname, crawler: crawlerType }), signal: controller.signal }); clearTimeout(timeoutId); // Handle rate limiting if (prismResponse.status === 429) { console.log('Prism limit reached'); return fetch(request); } // Handle successful optimization if (prismResponse.ok) { const data = await prismResponse.json(); if (data.optimizedHTML) { return new Response(data.optimizedHTML, { status: 200, headers: { 'Content-Type': 'text/html;charset=UTF-8', 'X-Prism-Optimized': 'true', 'X-Prism-Cache': data.cache || 'MISS' } }); } } } catch (error) { // Timeout or error - serve original immediately console.error('Prism error:', error.message); } // Default: serve original content return fetch(request); }
Pricing

Scrapp for Brand & Retailers

Cut through greenwashing and quantify your impact - at scale.

Learn how we helped a brand reduce their landfill waste by 37% →

Starter Plan
2 mobile phones with a before and after of Scrapp's mobile app on a paid and non-paid plan.

$15
per product, one-time

For brands looking for a low lift solution

ℹ️ Answer customer questions faster
  • check
    Free mobile app for your customers to learn proper recycling habits
  • check
    All your product recycling content in one spot
  • check
    Anytime access for your customers
☺️ Deliver better customer experience
📦 Keep product data current
  • check
    Update product data at any time
  • check
    Customize content for your customer's needs
  • check
    Qualified support to guide changes
Help your customers go zero-waste
Impact Plan 
3 products with green verified ticks on them and a recyclability score in a banner above them.

from $278
per country, per month

For brands with up to 100 SKUs

Everything in Starter, plus...
📉 Reduce your product's impact
  • check
    See what local disposal options are available for your products
  • check
    Sync sales data to learn real-time impact
  • check
    Export reports to share with stakeholders
🏟️ Manage your team
  • check
    Toggle your whole team's access to your data
  • check
    Set different permission levels for staff
  • check
    Collaborate on rewards and incentive campaigns
Reduce your waste impact
Prestige Plan 
Best Value
A person with their arms crossed smiling looking at the camera.

from $517
‍‍per country, per month

For brands with other 100 SKUs

Everything in Impact, plus...
👣 Stay ahead of regulations
  • check
    Get ahead of EPR reporting
  • check
    Make sure there are no surprise costs
  • check
    Track the impact of future circular economy policies
🤝 Get qualified, 1-to-1 support
  • check
    Priority support for your team
  • check
    Dedicated customer success manager
  • check
    Custom reports to help with internal comms
Save time handling data