โ† All skills
Tencent SkillHub ยท Developer Tools

Biver Builder

Integration skill for Biver Landing Page Builder API. Use when: (1) Creating, updating, or deleting landing pages (2) Managing subdomains (.lp.biver.id) or c...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Integration skill for Biver Landing Page Builder API. Use when: (1) Creating, updating, or deleting landing pages (2) Managing subdomains (.lp.biver.id) or c...

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.4

Documentation

ClawHub primary doc Primary doc: SKILL.md 32 sections Open source page

Before You Install

Security Checklist Before installing or supplying credentials, please review: Credential Required: This skill requires BIVER_API_KEY to operate Start with Test Keys: Use bvr_test_ prefix keys for initial testing โ€” never use bvr_live_ keys until you trust the skill Verify Scopes: Check required API key scopes below and use least-privilege principle Rotate Keys: Periodically rotate your API keys for security Inspect Source: If using manual installation, inspect the GitHub repository code before cloning

Via ClawdHub (Recommended)

clawdhub install biver-builder

Manual

Warning: Cloning external repositories can introduce arbitrary code. Inspect the repository first before running: # Step 1: Review the source code git clone https://github.com/RamaAditya49/biver-builder.git /tmp/biver-builder-review # Review files in /tmp/biver-builder-review before proceeding # Step 2: Only after review, install to your skills directory git clone https://github.com/RamaAditya49/biver-builder.git ~/.openclaw/skills/biver-builder

Required Environment Variables

VariableDescriptionExampleBIVER_API_KEYYour Biver API keybvr_live_xxxxx or bvr_test_xxxxx

Optional Environment Variables

VariableDescriptionDefaultBIVER_API_BASE_URLCustom API base URLhttps://api.biver.id

Setting Up Credentials

Via OpenClaw Dashboard: Navigate to Settings > Environment Variables Add BIVER_API_KEY with your API key value (Optional) Add BIVER_API_BASE_URL for custom endpoints Security Best Practices: Use bvr_test_ prefix keys for development/testing Use bvr_live_ prefix keys only in production after you trust the skill Verify required scopes before creating your API key โ€” only grant minimum permissions needed Never commit API keys to version control Rotate keys periodically Do not supply credentials until you have reviewed the skill or confirmed it from a verified source

How to Get Your API Key

Log in to Biver Dashboard Go to Settings > API Keys Click Generate New Key Select required scopes (see Required Scopes section below โ€” grant only what you need) Choose key type: bvr_test_ for testing, bvr_live_ for production Copy and store securely (shown only once) Scope Recommendation: Start with read-only scopes (*:read) for testing. Add write scopes only when needed.

Base URL

https://api.biver.id

Authentication Headers

// Use environment variables for security const apiKey = process.env.BIVER_API_KEY; // Headers configuration { 'X-API-Key': apiKey, 'Authorization': `Bearer ${apiKey}` }

API Key Prefixes

PrefixEnvironmentUsagebvr_live_ProductionReal data operationsbvr_test_SandboxTesting without affecting real data

Endpoint Lookup

TaskEndpointMethodAuthScopeList pages/v1/pagesGETYespages:readCreate page/v1/pagesPOSTYespages:writeGet page/v1/pages/:idGETYespages:readUpdate page/v1/pages/:idPATCHYespages:writeDelete page/v1/pages/:idDELETEYespages:writeDeploy page/v1/pages/:id/deployPOSTYespages:writeList subdomains/v1/subdomainsGETYespages:readCreate subdomain/v1/subdomainsPOSTYespages:writeUpdate subdomain/v1/subdomains/:idPATCHYespages:writeDelete subdomain/v1/subdomains/:idDELETEYespages:writeList domains/v1/domainsGETYesdomains:readAdd custom domain/v1/domainsPOSTYesdomains:writeSet primary domain/v1/domains/:id/primaryPOSTYesdomains:writeDelete domain/v1/domains/:idDELETEYesdomains:writeList sections/v1/sectionsGETYessections:readCreate section/v1/sectionsPOSTYessections:writeUpdate section/v1/sections/:idPATCHYessections:writeDelete section/v1/sections/:idDELETEYessections:writeList products/v1/productsGETYesproducts:readCreate product/v1/productsPOSTYesproducts:writeUpdate product/v1/products/:idPATCHYesproducts:writeDelete product/v1/products/:idDELETEYesproducts:writeList forms/v1/formsGETYesforms:readCreate form/v1/formsPOSTYesforms:writeGet submissions/v1/forms/:id/submissionsGETYesforms:readSubmit form/v1/forms/:id/submitPOSTNo-List gallery/v1/galleryGETYesgallery:readUpload asset/v1/galleryPOSTYesgallery:readDelete asset/v1/gallery/:idDELETEYesgallery:readGet workspace/v1/workspace/settingsGETYesworkspace:readUpdate workspace/v1/workspace/settingsPUTYesworkspace:writeUpdate branding/v1/workspace/brandingPUTYesworkspace:writeUpdate SEO/v1/workspace/seoPUTYesworkspace:writeAI generate page/v1/ai/pagesPOSTYesai:generateAI generate section/v1/ai/sectionsPOSTYesai:generateHealth check/healthGETNo-

Required Scopes

ScopeDescriptionpages:readRead pagespages:writeCreate, update, delete pagessections:readRead sectionssections:writeCreate, update, delete sectionsproducts:readRead productsproducts:writeManage product catalogforms:readRead forms and submissionsforms:writeCreate/update formsgallery:readAccess gallery assetsdomains:readView custom domainsdomains:writeAdd/remove custom domainssubdomains:readView subdomainssubdomains:writeCreate/update/delete subdomainsworkspace:readRead workspace settingsworkspace:writeUpdate workspace settingsai:generateGenerate pages/sections with AI

Workflow 1: Create Landing Page with Subdomain

const API_KEY = process.env.BIVER_API_KEY; const BASE_URL = process.env.BIVER_API_BASE_URL || 'https://api.biver.id'; // Step 1: Create subdomain const subdomain = await fetch(`${BASE_URL}/v1/subdomains`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ subdomain: 'my-store', title: 'Summer Sale 2026', description: 'Our biggest sale event', pathSlug: 'summer-sale' }) }); // Result: my-store.lp.biver.id/summer-sale // Step 2: Create sections for the page const section = await fetch(`${BASE_URL}/v1/sections?pageId=PAGE_ID`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ type: 'hero', name: 'Hero Section', htmlContent: '<div class="hero">...</div>', cssContent: '.hero { ... }', visible: true, order: 0 }) }); // Step 3: Update subdomain status to publish await fetch(`${BASE_URL}/v1/subdomains/${subdomainId}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ status: 'published' }) });

Workflow 2: Setup Custom Domain

const API_KEY = process.env.BIVER_API_KEY; const BASE_URL = process.env.BIVER_API_BASE_URL || 'https://api.biver.id'; // Step 1: Add custom domain const domain = await fetch(`${BASE_URL}/v1/domains`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ domain: 'example.com', isPrimary: true, landingPageId: 'page_123' }) }); // Step 2: Configure DNS (outside API) // Add verification token to DNS records // Token provided in response: verificationToken // Step 3: Set as primary (optional) await fetch(`${BASE_URL}/v1/domains/${domainId}/primary`, { method: 'POST', headers: { 'X-API-Key': API_KEY } });

Workflow 3: Generate Page with AI

const API_KEY = process.env.BIVER_API_KEY; const BASE_URL = process.env.BIVER_API_BASE_URL || 'https://api.biver.id'; const aiPage = await fetch(`${BASE_URL}/v1/ai/pages`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ prompt: 'Create a landing page for a coffee shop called Morning Brew', style: 'modern', industry: 'fnb', language: 'en' }) }); // Returns: title, content.sections[], suggestedSlug

Workflow 4: Upload Asset and Create Page

const API_KEY = process.env.BIVER_API_KEY; const BASE_URL = process.env.BIVER_API_BASE_URL || 'https://api.biver.id'; // Step 1: Upload image to gallery const formData = new FormData(); formData.append('file', imageFile); const asset = await fetch(`${BASE_URL}/v1/gallery`, { method: 'POST', headers: { 'X-API-Key': API_KEY }, body: formData }); // Step 2: Use asset URL in page content const page = await fetch(`${BASE_URL}/v1/pages`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY }, body: JSON.stringify({ title: 'Product Catalog', slug: 'catalog', content: { sections: [{ type: 'image', imageUrl: asset.data.url }] } }) });

Pages API

Base: /v1/pages | Scope: pages:read / pages:write EndpointMethodDescriptionQuery Params / Body/v1/pagesGETList pagespage, limit, status, search/v1/pagesPOSTCreate pagetitle, slug, content, meta, status/v1/pages/:idGETGet page detail-/v1/pages/:idPATCHUpdate pagePartial body/v1/pages/:idDELETEDelete page-/v1/pages/:id/deployPOSTPublish page- Page Object: { "id": "page_123", "title": "Summer Sale", "slug": "summer-sale", "status": "published", "publishedAt_ms": 1708704000000, "createdAt_ms": 1708617600000 } Create Page Body: { "title": "Page Title", "slug": "page-slug", "content": { "sections": [] }, "meta": { "description": "SEO description", "keywords": "keyword1, keyword2" }, "status": "draft" }

Sections API

Base: /v1/sections | Scope: sections:read / sections:write EndpointMethodDescription/v1/sectionsGETList sections (?type=, ?pageId=)/v1/sectionsPOSTCreate section/v1/sections/:idGETGet section detail/v1/sections/:idPATCHUpdate section/v1/sections/:idDELETEDelete section Section Types: hero, text, image, image_slider, faq, features, pricing, cta, testimonials, contact Create Section Body: { "type": "hero", "name": "Hero Section", "htmlContent": "<div>...</div>", "cssContent": ".class { ... }", "visible": true, "order": 0, "customClass": "my-custom", "anchorId": "hero" }

Products API

Base: /v1/products | Scope: products:read / products:write EndpointMethodDescription/v1/productsGETList products (?page, ?limit, ?category)/v1/productsPOSTCreate product/v1/products/:idGETGet product detail/v1/products/:idPATCHUpdate product/v1/products/:idDELETEDelete product Create Product Body: { "name": "Product Name", "description": "Full description", "price": 99000, "compareAtPrice": 149000, "sku": "PROD-001", "stock": 100, "category": "electronics", "images": ["url1", "url2"], "isActive": true }

Forms API

Base: /v1/forms | Scope: forms:read / forms:write EndpointMethodDescriptionAuth/v1/formsGETList formsYes/v1/formsPOSTCreate formYes/v1/forms/:idGETGet form detailYes/v1/forms/:idPATCHUpdate formYes/v1/forms/:idDELETEDelete formYes/v1/forms/:id/submitPOSTSubmit formNo/v1/forms/:id/submissionsGETGet submissionsYes Submit Form Body (Public - No Auth): { "data": { "name": "John Doe", "email": "john@example.com", "message": "Hello!" } }

Gallery API

Base: /v1/gallery | Scope: gallery:read EndpointMethodDescription/v1/galleryGETList items (`?type=image/v1/galleryPOSTUpload asset (multipart/form-data)/v1/gallery/:idGETGet asset detail/v1/gallery/:idDELETEDelete asset Gallery Item Response: { "id": "gallery_123", "filename": "hero-image.png", "url": "https://cdn.biver.id/assets/xxx.png", "type": "image", "mimeType": "image/png", "size": 102400, "width": 1920, "height": 1080 }

Subdomains API

Base: /v1/subdomains | Scope: pages:read / pages:write Subdomains create landing pages at {name}.lp.biver.id. EndpointMethodDescription/v1/subdomainsGETList subdomains (?page, ?limit, ?status)/v1/subdomainsPOSTCreate subdomain/v1/subdomains/:idGETGet subdomain detail/v1/subdomains/:idPATCHUpdate subdomain/v1/subdomains/:idDELETEDelete subdomain Create Subdomain Body: { "subdomain": "my-store", "title": "My Store", "description": "Store description", "pathSlug": "promo" } Subdomain Rules: subdomain: 3-63 chars, lowercase a-z, 0-9, hyphens pathSlug: Optional, creates additional URL at {subdomain}.lp.biver.id/{pathSlug} status: draft, published, archived Update Subdomain Fields: FieldTypeDescriptiontitlestringPage titledescriptionstringPage descriptionpathSlugstring | nullURL path (null to remove)statusstringdraft, published, archivedmetaTitlestringSEO titlemetaDescriptionstringSEO descriptionfaviconstring (URL)Favicon URLogImagestring (URL)Open Graph imagenoIndexbooleanPrevent indexingnoFollowbooleanPrevent link following

Domains API (Custom Domains)

Base: /v1/domains | Scope: domains:read / domains:write EndpointMethodDescription/v1/domainsGETList custom domains/v1/domainsPOSTAdd custom domain/v1/domains/:idGETGet domain detail (includes DNS records)/v1/domains/:idPATCHUpdate domain/v1/domains/:idDELETERemove domain/v1/domains/:id/primaryPOSTSet as primary domain Add Domain Body: { "domain": "example.com", "isPrimary": true, "landingPageId": "page_123" } Domain Response: { "id": "domain_123", "domain": "example.com", "isPrimary": true, "isVerified": true, "sslStatus": "active", "verificationStatus": "verified", "verificationToken": "bvr_verify_xxx", "landingPageId": "page_123" } DNS Configuration (CNAME Setup): AI Agent: When helping users set up custom domains, explain the following CNAME configuration steps clearly. After adding a custom domain via the API, configure your DNS records with your DNS provider: Point your CNAME record to: custom.biver.id Example Configuration: Record TypeName/HostValue/TargetCNAMEshop (or www)custom.biver.id What this does: If your domain is shop.example.com, add a CNAME record with name shop pointing to custom.biver.id If using apex domain (example.com), check if your DNS provider supports CNAME flattening or use A records as provided in the domain detail response Propagation: DNS changes may take 5-60 minutes to propagate globally.

Workspace API

Base: /v1/workspace | Scope: workspace:read / workspace:write EndpointMethodDescription/v1/workspace/settingsGETGet workspace settings/v1/workspace/settingsPUTUpdate settings/v1/workspace/brandingPUTUpdate branding/v1/workspace/seoPUTUpdate SEO settings/v1/workspace/publicGETPublic workspace info (no auth) Workspace Settings: { "id": "workspace_123", "name": "My Workspace", "slug": "my-workspace", "plan": "ARCHITECT", "settings": { "timezone": "Asia/Jakarta", "language": "en", "currency": "USD" }, "branding": { "logo": "https://cdn.biver.id/logos/xxx.png", "primaryColor": "#3B82F6", "fontFamily": "Inter" }, "seo": { "title": "My Business", "description": "We build great landing pages", "keywords": "landing page, builder" } }

AI Generation API

Base: /v1/ai | Scope: ai:generate EndpointMethodDescription/v1/ai/pagesPOSTGenerate page with AI/v1/ai/sectionsPOSTGenerate section with AI/v1/ai/contextGETGet AI templates/context Generate Page Body: { "prompt": "Create a landing page for a coffee shop", "style": "modern", "industry": "fnb", "language": "en" } Style Options: modern, minimal, bold, elegant, playful Industry Options: saas, fnb, ecommerce, agency, healthcare, education, finance, realestate

Error Codes

CodeHTTPDescriptionSolutionUNAUTHORIZED401Invalid or missing API keyCheck authentication headerKEY_EXPIRED401API key has expiredGenerate new key from dashboardKEY_REVOKED401API key was revokedGenerate new key from dashboardFORBIDDEN403Insufficient scope permissionCheck API key scopesNOT_FOUND404Resource not foundVerify resource IDDUPLICATE_SUBDOMAIN409Subdomain already takenChoose different subdomainDUPLICATE_DOMAIN409Domain already existsUse different domainVALIDATION_ERROR422Request validation failedCheck request body formatRATE_LIMIT_EXCEEDED429Too many requestsWait for reset or upgrade planINTERNAL_ERROR500Server errorRetry or contact support Error Response Format: { "success": false, "error": { "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": { "fields": [ { "field": "title", "message": "Title is required", "code": "required" } ] } } }

Rate Limits

PlanRequests/MinuteTarget UserSCOUT30Free tierCRAFTSMAN60Small businessesARCHITECT120Growing businessesENGINEER300Medium businessesFOUNDER600AgenciesCHIEF2000Enterprise Rate Limit Headers: X-RateLimit-Limit: 60 X-RateLimit-Remaining: 45 X-RateLimit-Reset: 1708704000000 X-RateLimit-Plan: CRAFTSMAN

Response Format

All responses follow this structure: Success: { "success": true, "data": { ... } } Paginated: { "success": true, "data": { "items": [...], "pagination": { "page": 1, "limit": 10, "total": 25, "totalPages": 3 } } }

API Key Safety

Never hardcode API keys in source code Always use environment variables or secure secret stores Use test keys (bvr_test_) for development Limit scopes to minimum required for your use case

DNS Configuration

Custom domain setup requires DNS changes outside this API Always verify domain ownership before making DNS changes Keep DNS verification tokens secure

Rate Limiting

Respect rate limits based on your plan Implement retry logic with exponential backoff Monitor X-RateLimit-Remaining header

Support

Dashboard: https://biver.id/dashboard Email: support@biver.id Health Check: GET /health (no auth required)

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc