From 7d31d68f6f08c95c86c187fbb297f060aaf064d9 Mon Sep 17 00:00:00 2001 From: "ilblackdragon@gmail.com" Date: Fri, 27 Mar 2026 20:16:12 -0700 Subject: [PATCH] feat(skills): add 245 Pica integration skills covering full catalog Add SKILL.md files for all 252 Pica platform integrations (245 new, 7 internal skills already existed). Covers the full Pica catalog: - CRM: attio, close, freshdesk, gorgias, hubspot, intercom, klaviyo, zoho, etc. - Communication: bluesky, linked-in, meta, x, teams, twilio, ring-central, etc. - DevOps: git-lab, circle-ci, netlify, render, n8n, neon, ngrok, posthog, etc. - AI/LLM: anthropic, deep-seek, gemini, perplexity, open-router, x-ai - E-commerce: big-commerce, shopify-admin, shopify-storefront, square, woocommerce - Payments: chargebee, paystack, square, stripe - Email: sendgrid, mailchimp-marketing, mailgun, loops - And 190+ more across all categories ~83 skills have detailed API docs (base URLs, example http() calls, notes). ~122 skills have auth setup and credential config from Pica metadata. Skills are embedded into the binary at compile time via the bundling infrastructure added to v2-architecture, making them available on every IronClaw install without needing ClawHub. Co-Authored-By: Claude Opus 4.6 (1M context) --- skills/1-password/SKILL.md | 61 +++++++++++ skills/7-shifts/SKILL.md | 38 +++++++ skills/ably-control/SKILL.md | 46 ++++++++ skills/ably/SKILL.md | 46 ++++++++ skills/abstract-avatars/SKILL.md | 47 ++++++++ skills/abstract-company-enrichment/SKILL.md | 46 ++++++++ skills/abstract-email-reputation/SKILL.md | 46 ++++++++ skills/abstract-iban-validation/SKILL.md | 46 ++++++++ skills/abstract-ip-intelligence/SKILL.md | 46 ++++++++ skills/abstract-phone-intelligence/SKILL.md | 46 ++++++++ skills/abstract-public-holidays/SKILL.md | 46 ++++++++ skills/abstract-vat-validation/SKILL.md | 46 ++++++++ skills/abyssale/SKILL.md | 46 ++++++++ skills/activecampaign/SKILL.md | 81 ++++++++++++++ skills/affinity-co/SKILL.md | 46 ++++++++ skills/agent-mail/SKILL.md | 46 ++++++++ skills/agent-ql/SKILL.md | 47 ++++++++ skills/agiled/SKILL.md | 38 +++++++ skills/ahrefs/SKILL.md | 56 ++++++++++ skills/airtable/SKILL.md | 85 +++++++++++++++ skills/alt-text-ai/SKILL.md | 47 ++++++++ skills/amazon-ads/SKILL.md | 39 +++++++ skills/anchor-browser/SKILL.md | 47 ++++++++ skills/anthropic-admin/SKILL.md | 47 ++++++++ skills/anthropic/SKILL.md | 53 +++++++++ skills/apify/SKILL.md | 55 ++++++++++ skills/apollo/SKILL.md | 52 +++++++++ skills/asana/SKILL.md | 87 +++++++++++++++ skills/attio/SKILL.md | 58 ++++++++++ skills/auth0-management/SKILL.md | 61 +++++++++++ skills/autodesk/SKILL.md | 38 +++++++ skills/ayrshare/SKILL.md | 46 ++++++++ skills/basin/SKILL.md | 45 ++++++++ skills/beehiiv/SKILL.md | 55 ++++++++++ skills/benchmark-email/SKILL.md | 48 +++++++++ skills/benzinga/SKILL.md | 45 ++++++++ skills/better-proposals/SKILL.md | 47 ++++++++ skills/big-commerce/SKILL.md | 61 +++++++++++ skills/bigquery/SKILL.md | 53 +++++++++ skills/blaze-meter-functional/SKILL.md | 47 ++++++++ skills/blaze-meter-performance/SKILL.md | 46 ++++++++ .../SKILL.md | 46 ++++++++ skills/bluebeam/SKILL.md | 38 +++++++ skills/bluesky/SKILL.md | 61 +++++++++++ skills/bookingmood/SKILL.md | 45 ++++++++ skills/bot-star/SKILL.md | 46 ++++++++ skills/bouncer/SKILL.md | 46 ++++++++ skills/box-hero/SKILL.md | 46 ++++++++ skills/box/SKILL.md | 84 +++++++++++++++ skills/breathe/SKILL.md | 46 ++++++++ skills/brevo/SKILL.md | 76 +++++++++++++ skills/brex/SKILL.md | 37 +++++++ skills/bright-data/SKILL.md | 46 ++++++++ skills/browse-ai/SKILL.md | 46 ++++++++ skills/browserbase/SKILL.md | 51 +++++++++ skills/bug-bug/SKILL.md | 47 ++++++++ skills/bug-herd/SKILL.md | 46 ++++++++ skills/byte-forms/SKILL.md | 47 ++++++++ skills/calcom/SKILL.md | 81 ++++++++++++++ skills/calendly/SKILL.md | 77 +++++++++++++ skills/canva/SKILL.md | 51 +++++++++ skills/capsule/SKILL.md | 39 +++++++ skills/cats/SKILL.md | 46 ++++++++ skills/central-station-crm/SKILL.md | 49 +++++++++ skills/chargebee/SKILL.md | 65 +++++++++++ skills/circle-ci/SKILL.md | 63 +++++++++++ skills/clerk/SKILL.md | 68 ++++++++++++ skills/click-house/SKILL.md | 52 +++++++++ skills/click-send/SKILL.md | 52 +++++++++ skills/clickup/SKILL.md | 83 ++++++++++++++ skills/close/SKILL.md | 59 ++++++++++ skills/cloudinary/SKILL.md | 58 ++++++++++ skills/clover/SKILL.md | 37 +++++++ skills/cockroach-labs/SKILL.md | 47 ++++++++ skills/coda/SKILL.md | 61 +++++++++++ skills/conductor/SKILL.md | 45 ++++++++ skills/contentstack-content-delivery/SKILL.md | 49 +++++++++ .../contentstack-content-management/SKILL.md | 46 ++++++++ skills/convex-deployment/SKILL.md | 48 +++++++++ skills/convex-management/SKILL.md | 38 +++++++ skills/coresignal/SKILL.md | 47 ++++++++ skills/currents-news/SKILL.md | 46 ++++++++ skills/data-for-seo/SKILL.md | 47 ++++++++ skills/databox/SKILL.md | 47 ++++++++ skills/datadog/SKILL.md | 85 +++++++++++++++ skills/deck-co/SKILL.md | 49 +++++++++ skills/deep-seek/SKILL.md | 48 +++++++++ skills/deliveroo/SKILL.md | 46 ++++++++ skills/diffbot/SKILL.md | 52 +++++++++ skills/discord/SKILL.md | 84 +++++++++++++++ skills/dovetail/SKILL.md | 45 ++++++++ skills/dropbox/SKILL.md | 82 ++++++++++++++ skills/elevenlabs/SKILL.md | 76 +++++++++++++ skills/exa/SKILL.md | 64 +++++++++++ skills/fathom/SKILL.md | 38 +++++++ skills/figma/SKILL.md | 89 +++++++++++++++ skills/fireberry/SKILL.md | 48 +++++++++ skills/firecrawl/SKILL.md | 57 ++++++++++ skills/fireflies-ai/SKILL.md | 47 ++++++++ skills/folk-app/SKILL.md | 48 +++++++++ skills/freshbooks/SKILL.md | 52 +++++++++ skills/freshdesk/SKILL.md | 61 +++++++++++ skills/front/SKILL.md | 57 ++++++++++ skills/gemini/SKILL.md | 52 +++++++++ skills/giphy/SKILL.md | 56 ++++++++++ skills/git-lab/SKILL.md | 72 +++++++++++++ skills/github/SKILL.md | 16 --- skills/gmail/SKILL.md | 101 +++++++++++++++++ skills/go-dial/SKILL.md | 48 +++++++++ skills/gong/SKILL.md | 48 +++++++++ skills/google-ads/SKILL.md | 47 ++++++++ skills/google-calendar/SKILL.md | 88 +++++++++++++++ skills/google-docs/SKILL.md | 48 +++++++++ skills/google-drive/SKILL.md | 99 +++++++++++++++++ skills/google-places/SKILL.md | 49 +++++++++ skills/google-routes/SKILL.md | 49 +++++++++ skills/google-sheets/SKILL.md | 84 +++++++++++++++ skills/gorgias/SKILL.md | 58 ++++++++++ skills/gumloop/SKILL.md | 47 ++++++++ skills/hacker-news/SKILL.md | 59 ++++++++++ skills/high-level/SKILL.md | 40 +++++++ skills/hoop/SKILL.md | 47 ++++++++ skills/hubspot/SKILL.md | 85 +++++++++++++++ skills/instantly-ai/SKILL.md | 47 ++++++++ skills/intercom/SKILL.md | 57 ++++++++++ skills/jira/SKILL.md | 95 ++++++++++++++++ skills/job-nimbus/SKILL.md | 48 +++++++++ skills/kernel/SKILL.md | 45 ++++++++ skills/klaviyo/SKILL.md | 63 +++++++++++ skills/kommo/SKILL.md | 47 ++++++++ skills/laravel-cloud/SKILL.md | 46 ++++++++ skills/linear/SKILL.md | 83 ++++++++++++++ skills/linked-in/SKILL.md | 49 +++++++++ skills/loops/SKILL.md | 56 ++++++++++ skills/mailbox-validator/SKILL.md | 46 ++++++++ skills/mailchimp-marketing/SKILL.md | 58 ++++++++++ skills/mailgun/SKILL.md | 59 ++++++++++ skills/make/SKILL.md | 57 ++++++++++ skills/mapbox/SKILL.md | 57 ++++++++++ skills/maple-billing/SKILL.md | 48 +++++++++ skills/meet-geek/SKILL.md | 48 +++++++++ skills/meta/SKILL.md | 57 ++++++++++ .../SKILL.md | 58 ++++++++++ skills/microsoft-dynamics-365-sales/SKILL.md | 59 ++++++++++ skills/mixpanel/SKILL.md | 70 ++++++++++++ skills/mongo-db-atlas-administration/SKILL.md | 57 ++++++++++ skills/n8n/SKILL.md | 57 ++++++++++ skills/neon/SKILL.md | 60 +++++++++++ skills/netlify/SKILL.md | 62 +++++++++++ skills/netsuite/SKILL.md | 49 +++++++++ skills/news-data-io/SKILL.md | 46 ++++++++ skills/ngrok/SKILL.md | 56 ++++++++++ skills/notion/SKILL.md | 84 +++++++++++++++ skills/nylas/SKILL.md | 61 +++++++++++ skills/nyne-ai/SKILL.md | 49 +++++++++ skills/octave/SKILL.md | 47 ++++++++ skills/one-drive/SKILL.md | 59 ++++++++++ skills/one-page-crm/SKILL.md | 48 +++++++++ skills/open-phone/SKILL.md | 56 ++++++++++ skills/open-router/SKILL.md | 53 +++++++++ skills/openai/SKILL.md | 75 +++++++++++++ skills/ordinal/SKILL.md | 46 ++++++++ skills/outlook-calendar/SKILL.md | 59 ++++++++++ skills/outlook-mail/SKILL.md | 59 ++++++++++ skills/parsehub/SKILL.md | 45 ++++++++ skills/parsera/SKILL.md | 46 ++++++++ skills/partner-stack-partner/SKILL.md | 46 ++++++++ skills/paystack/SKILL.md | 61 +++++++++++ skills/people-data-labs/SKILL.md | 48 +++++++++ skills/perplexity/SKILL.md | 42 ++++++++ skills/personal-ai/SKILL.md | 49 +++++++++ skills/phantom-buster/SKILL.md | 48 +++++++++ skills/pinecone/SKILL.md | 62 +++++++++++ skills/pipedrive/SKILL.md | 83 ++++++++++++++ skills/placekey/SKILL.md | 46 ++++++++ skills/postgresql/SKILL.md | 49 +++++++++ skills/posthog/SKILL.md | 57 ++++++++++ skills/postmark/SKILL.md | 66 ++++++++++++ skills/productive/SKILL.md | 47 ++++++++ skills/puzzle-io/SKILL.md | 40 +++++++ skills/q2/SKILL.md | 48 +++++++++ skills/quick-chart/SKILL.md | 38 +++++++ skills/quickbooks/SKILL.md | 78 ++++++++++++++ skills/reducto/SKILL.md | 46 ++++++++ skills/render/SKILL.md | 60 +++++++++++ skills/reply-io/SKILL.md | 47 ++++++++ skills/resend/SKILL.md | 68 ++++++++++++ skills/ring-central/SKILL.md | 54 ++++++++++ skills/riveter/SKILL.md | 45 ++++++++ skills/runpod/SKILL.md | 51 +++++++++ skills/runscope/SKILL.md | 37 +++++++ skills/sage-accounting/SKILL.md | 50 +++++++++ skills/sage-sales-management/SKILL.md | 50 +++++++++ skills/salesforce/SKILL.md | 98 +++++++++++++++++ skills/salesmate/SKILL.md | 58 ++++++++++ skills/scrape-do/SKILL.md | 46 ++++++++ skills/scrapingdog/SKILL.md | 46 ++++++++ skills/sendgrid/SKILL.md | 57 ++++++++++ skills/serp-api/SKILL.md | 53 +++++++++ skills/share-file/SKILL.md | 39 +++++++ skills/share-point/SKILL.md | 59 ++++++++++ skills/ship-bob/SKILL.md | 38 +++++++ skills/ship-engine/SKILL.md | 57 ++++++++++ skills/ship-station/SKILL.md | 62 +++++++++++ skills/shippo/SKILL.md | 73 +++++++++++++ skills/shopify-admin/SKILL.md | 62 +++++++++++ skills/shopify-storefront/SKILL.md | 47 ++++++++ skills/shopify/SKILL.md | 89 +++++++++++++++ skills/shortcut/SKILL.md | 61 +++++++++++ skills/sindri/SKILL.md | 46 ++++++++ skills/slack/SKILL.md | 102 ++++++++++++++++++ skills/sling/SKILL.md | 52 +++++++++ skills/spotify/SKILL.md | 88 +++++++++++++++ skills/square/SKILL.md | 58 ++++++++++ skills/stripe/SKILL.md | 99 +++++++++++++++++ skills/subvisory/SKILL.md | 46 ++++++++ skills/supabase/SKILL.md | 88 +++++++++++++++ skills/supervisely/SKILL.md | 46 ++++++++ skills/svix/SKILL.md | 56 ++++++++++ skills/tavily/SKILL.md | 60 +++++++++++ skills/teams/SKILL.md | 59 ++++++++++ skills/todoist/SKILL.md | 83 ++++++++++++++ skills/trello/SKILL.md | 84 +++++++++++++++ skills/twelve-data/SKILL.md | 46 ++++++++ skills/twilio/SKILL.md | 60 +++++++++++ skills/typeform/SKILL.md | 57 ++++++++++ skills/uber-eats/SKILL.md | 47 ++++++++ skills/unipile/SKILL.md | 48 +++++++++ skills/valyu/SKILL.md | 48 +++++++++ skills/vercel/SKILL.md | 93 ++++++++++++++++ skills/vitally/SKILL.md | 47 ++++++++ skills/voiceflow/SKILL.md | 48 +++++++++ skills/waterfall/SKILL.md | 46 ++++++++ skills/weaviate/SKILL.md | 58 ++++++++++ skills/webflow/SKILL.md | 63 +++++++++++ skills/wikimedia/SKILL.md | 39 +++++++ skills/woocommerce/SKILL.md | 61 +++++++++++ skills/word-press/SKILL.md | 64 +++++++++++ skills/workable/SKILL.md | 56 ++++++++++ skills/wttr-in/SKILL.md | 37 +++++++ skills/x-ai/SKILL.md | 49 +++++++++ skills/x/SKILL.md | 53 +++++++++ skills/xero/SKILL.md | 59 ++++++++++ skills/zendesk/SKILL.md | 84 +++++++++++++++ skills/zoho/SKILL.md | 54 ++++++++++ skills/zoom/SKILL.md | 59 ++++++++++ 246 files changed, 13673 insertions(+), 16 deletions(-) create mode 100644 skills/1-password/SKILL.md create mode 100644 skills/7-shifts/SKILL.md create mode 100644 skills/ably-control/SKILL.md create mode 100644 skills/ably/SKILL.md create mode 100644 skills/abstract-avatars/SKILL.md create mode 100644 skills/abstract-company-enrichment/SKILL.md create mode 100644 skills/abstract-email-reputation/SKILL.md create mode 100644 skills/abstract-iban-validation/SKILL.md create mode 100644 skills/abstract-ip-intelligence/SKILL.md create mode 100644 skills/abstract-phone-intelligence/SKILL.md create mode 100644 skills/abstract-public-holidays/SKILL.md create mode 100644 skills/abstract-vat-validation/SKILL.md create mode 100644 skills/abyssale/SKILL.md create mode 100644 skills/activecampaign/SKILL.md create mode 100644 skills/affinity-co/SKILL.md create mode 100644 skills/agent-mail/SKILL.md create mode 100644 skills/agent-ql/SKILL.md create mode 100644 skills/agiled/SKILL.md create mode 100644 skills/ahrefs/SKILL.md create mode 100644 skills/airtable/SKILL.md create mode 100644 skills/alt-text-ai/SKILL.md create mode 100644 skills/amazon-ads/SKILL.md create mode 100644 skills/anchor-browser/SKILL.md create mode 100644 skills/anthropic-admin/SKILL.md create mode 100644 skills/anthropic/SKILL.md create mode 100644 skills/apify/SKILL.md create mode 100644 skills/apollo/SKILL.md create mode 100644 skills/asana/SKILL.md create mode 100644 skills/attio/SKILL.md create mode 100644 skills/auth0-management/SKILL.md create mode 100644 skills/autodesk/SKILL.md create mode 100644 skills/ayrshare/SKILL.md create mode 100644 skills/basin/SKILL.md create mode 100644 skills/beehiiv/SKILL.md create mode 100644 skills/benchmark-email/SKILL.md create mode 100644 skills/benzinga/SKILL.md create mode 100644 skills/better-proposals/SKILL.md create mode 100644 skills/big-commerce/SKILL.md create mode 100644 skills/bigquery/SKILL.md create mode 100644 skills/blaze-meter-functional/SKILL.md create mode 100644 skills/blaze-meter-performance/SKILL.md create mode 100644 skills/blaze-meter-service-virtualization/SKILL.md create mode 100644 skills/bluebeam/SKILL.md create mode 100644 skills/bluesky/SKILL.md create mode 100644 skills/bookingmood/SKILL.md create mode 100644 skills/bot-star/SKILL.md create mode 100644 skills/bouncer/SKILL.md create mode 100644 skills/box-hero/SKILL.md create mode 100644 skills/box/SKILL.md create mode 100644 skills/breathe/SKILL.md create mode 100644 skills/brevo/SKILL.md create mode 100644 skills/brex/SKILL.md create mode 100644 skills/bright-data/SKILL.md create mode 100644 skills/browse-ai/SKILL.md create mode 100644 skills/browserbase/SKILL.md create mode 100644 skills/bug-bug/SKILL.md create mode 100644 skills/bug-herd/SKILL.md create mode 100644 skills/byte-forms/SKILL.md create mode 100644 skills/calcom/SKILL.md create mode 100644 skills/calendly/SKILL.md create mode 100644 skills/canva/SKILL.md create mode 100644 skills/capsule/SKILL.md create mode 100644 skills/cats/SKILL.md create mode 100644 skills/central-station-crm/SKILL.md create mode 100644 skills/chargebee/SKILL.md create mode 100644 skills/circle-ci/SKILL.md create mode 100644 skills/clerk/SKILL.md create mode 100644 skills/click-house/SKILL.md create mode 100644 skills/click-send/SKILL.md create mode 100644 skills/clickup/SKILL.md create mode 100644 skills/close/SKILL.md create mode 100644 skills/cloudinary/SKILL.md create mode 100644 skills/clover/SKILL.md create mode 100644 skills/cockroach-labs/SKILL.md create mode 100644 skills/coda/SKILL.md create mode 100644 skills/conductor/SKILL.md create mode 100644 skills/contentstack-content-delivery/SKILL.md create mode 100644 skills/contentstack-content-management/SKILL.md create mode 100644 skills/convex-deployment/SKILL.md create mode 100644 skills/convex-management/SKILL.md create mode 100644 skills/coresignal/SKILL.md create mode 100644 skills/currents-news/SKILL.md create mode 100644 skills/data-for-seo/SKILL.md create mode 100644 skills/databox/SKILL.md create mode 100644 skills/datadog/SKILL.md create mode 100644 skills/deck-co/SKILL.md create mode 100644 skills/deep-seek/SKILL.md create mode 100644 skills/deliveroo/SKILL.md create mode 100644 skills/diffbot/SKILL.md create mode 100644 skills/discord/SKILL.md create mode 100644 skills/dovetail/SKILL.md create mode 100644 skills/dropbox/SKILL.md create mode 100644 skills/elevenlabs/SKILL.md create mode 100644 skills/exa/SKILL.md create mode 100644 skills/fathom/SKILL.md create mode 100644 skills/figma/SKILL.md create mode 100644 skills/fireberry/SKILL.md create mode 100644 skills/firecrawl/SKILL.md create mode 100644 skills/fireflies-ai/SKILL.md create mode 100644 skills/folk-app/SKILL.md create mode 100644 skills/freshbooks/SKILL.md create mode 100644 skills/freshdesk/SKILL.md create mode 100644 skills/front/SKILL.md create mode 100644 skills/gemini/SKILL.md create mode 100644 skills/giphy/SKILL.md create mode 100644 skills/git-lab/SKILL.md create mode 100644 skills/gmail/SKILL.md create mode 100644 skills/go-dial/SKILL.md create mode 100644 skills/gong/SKILL.md create mode 100644 skills/google-ads/SKILL.md create mode 100644 skills/google-calendar/SKILL.md create mode 100644 skills/google-docs/SKILL.md create mode 100644 skills/google-drive/SKILL.md create mode 100644 skills/google-places/SKILL.md create mode 100644 skills/google-routes/SKILL.md create mode 100644 skills/google-sheets/SKILL.md create mode 100644 skills/gorgias/SKILL.md create mode 100644 skills/gumloop/SKILL.md create mode 100644 skills/hacker-news/SKILL.md create mode 100644 skills/high-level/SKILL.md create mode 100644 skills/hoop/SKILL.md create mode 100644 skills/hubspot/SKILL.md create mode 100644 skills/instantly-ai/SKILL.md create mode 100644 skills/intercom/SKILL.md create mode 100644 skills/jira/SKILL.md create mode 100644 skills/job-nimbus/SKILL.md create mode 100644 skills/kernel/SKILL.md create mode 100644 skills/klaviyo/SKILL.md create mode 100644 skills/kommo/SKILL.md create mode 100644 skills/laravel-cloud/SKILL.md create mode 100644 skills/linear/SKILL.md create mode 100644 skills/linked-in/SKILL.md create mode 100644 skills/loops/SKILL.md create mode 100644 skills/mailbox-validator/SKILL.md create mode 100644 skills/mailchimp-marketing/SKILL.md create mode 100644 skills/mailgun/SKILL.md create mode 100644 skills/make/SKILL.md create mode 100644 skills/mapbox/SKILL.md create mode 100644 skills/maple-billing/SKILL.md create mode 100644 skills/meet-geek/SKILL.md create mode 100644 skills/meta/SKILL.md create mode 100644 skills/microsoft-dynamics-365-business-central/SKILL.md create mode 100644 skills/microsoft-dynamics-365-sales/SKILL.md create mode 100644 skills/mixpanel/SKILL.md create mode 100644 skills/mongo-db-atlas-administration/SKILL.md create mode 100644 skills/n8n/SKILL.md create mode 100644 skills/neon/SKILL.md create mode 100644 skills/netlify/SKILL.md create mode 100644 skills/netsuite/SKILL.md create mode 100644 skills/news-data-io/SKILL.md create mode 100644 skills/ngrok/SKILL.md create mode 100644 skills/notion/SKILL.md create mode 100644 skills/nylas/SKILL.md create mode 100644 skills/nyne-ai/SKILL.md create mode 100644 skills/octave/SKILL.md create mode 100644 skills/one-drive/SKILL.md create mode 100644 skills/one-page-crm/SKILL.md create mode 100644 skills/open-phone/SKILL.md create mode 100644 skills/open-router/SKILL.md create mode 100644 skills/openai/SKILL.md create mode 100644 skills/ordinal/SKILL.md create mode 100644 skills/outlook-calendar/SKILL.md create mode 100644 skills/outlook-mail/SKILL.md create mode 100644 skills/parsehub/SKILL.md create mode 100644 skills/parsera/SKILL.md create mode 100644 skills/partner-stack-partner/SKILL.md create mode 100644 skills/paystack/SKILL.md create mode 100644 skills/people-data-labs/SKILL.md create mode 100644 skills/perplexity/SKILL.md create mode 100644 skills/personal-ai/SKILL.md create mode 100644 skills/phantom-buster/SKILL.md create mode 100644 skills/pinecone/SKILL.md create mode 100644 skills/pipedrive/SKILL.md create mode 100644 skills/placekey/SKILL.md create mode 100644 skills/postgresql/SKILL.md create mode 100644 skills/posthog/SKILL.md create mode 100644 skills/postmark/SKILL.md create mode 100644 skills/productive/SKILL.md create mode 100644 skills/puzzle-io/SKILL.md create mode 100644 skills/q2/SKILL.md create mode 100644 skills/quick-chart/SKILL.md create mode 100644 skills/quickbooks/SKILL.md create mode 100644 skills/reducto/SKILL.md create mode 100644 skills/render/SKILL.md create mode 100644 skills/reply-io/SKILL.md create mode 100644 skills/resend/SKILL.md create mode 100644 skills/ring-central/SKILL.md create mode 100644 skills/riveter/SKILL.md create mode 100644 skills/runpod/SKILL.md create mode 100644 skills/runscope/SKILL.md create mode 100644 skills/sage-accounting/SKILL.md create mode 100644 skills/sage-sales-management/SKILL.md create mode 100644 skills/salesforce/SKILL.md create mode 100644 skills/salesmate/SKILL.md create mode 100644 skills/scrape-do/SKILL.md create mode 100644 skills/scrapingdog/SKILL.md create mode 100644 skills/sendgrid/SKILL.md create mode 100644 skills/serp-api/SKILL.md create mode 100644 skills/share-file/SKILL.md create mode 100644 skills/share-point/SKILL.md create mode 100644 skills/ship-bob/SKILL.md create mode 100644 skills/ship-engine/SKILL.md create mode 100644 skills/ship-station/SKILL.md create mode 100644 skills/shippo/SKILL.md create mode 100644 skills/shopify-admin/SKILL.md create mode 100644 skills/shopify-storefront/SKILL.md create mode 100644 skills/shopify/SKILL.md create mode 100644 skills/shortcut/SKILL.md create mode 100644 skills/sindri/SKILL.md create mode 100644 skills/slack/SKILL.md create mode 100644 skills/sling/SKILL.md create mode 100644 skills/spotify/SKILL.md create mode 100644 skills/square/SKILL.md create mode 100644 skills/stripe/SKILL.md create mode 100644 skills/subvisory/SKILL.md create mode 100644 skills/supabase/SKILL.md create mode 100644 skills/supervisely/SKILL.md create mode 100644 skills/svix/SKILL.md create mode 100644 skills/tavily/SKILL.md create mode 100644 skills/teams/SKILL.md create mode 100644 skills/todoist/SKILL.md create mode 100644 skills/trello/SKILL.md create mode 100644 skills/twelve-data/SKILL.md create mode 100644 skills/twilio/SKILL.md create mode 100644 skills/typeform/SKILL.md create mode 100644 skills/uber-eats/SKILL.md create mode 100644 skills/unipile/SKILL.md create mode 100644 skills/valyu/SKILL.md create mode 100644 skills/vercel/SKILL.md create mode 100644 skills/vitally/SKILL.md create mode 100644 skills/voiceflow/SKILL.md create mode 100644 skills/waterfall/SKILL.md create mode 100644 skills/weaviate/SKILL.md create mode 100644 skills/webflow/SKILL.md create mode 100644 skills/wikimedia/SKILL.md create mode 100644 skills/woocommerce/SKILL.md create mode 100644 skills/word-press/SKILL.md create mode 100644 skills/workable/SKILL.md create mode 100644 skills/wttr-in/SKILL.md create mode 100644 skills/x-ai/SKILL.md create mode 100644 skills/x/SKILL.md create mode 100644 skills/xero/SKILL.md create mode 100644 skills/zendesk/SKILL.md create mode 100644 skills/zoho/SKILL.md create mode 100644 skills/zoom/SKILL.md diff --git a/skills/1-password/SKILL.md b/skills/1-password/SKILL.md new file mode 100644 index 00000000..9fab07a5 --- /dev/null +++ b/skills/1-password/SKILL.md @@ -0,0 +1,61 @@ +--- +name: 1-password +version: "1.0.0" +description: 1Password API — 1Password is a secure password manager that consolidates credentials +activation: + keywords: + - "1-password" + - "1password" + - "security" + patterns: + - "(?i)1.?password" + tags: + - "security" + - "identity" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [1PASSWORD_CONNECT_SERVER_URL, 1PASSWORD_CONNECT_ACCESS_TOKEN] +--- + +# 1Password API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`{1PASSWORD_CONNECT_SERVER_URL}/v1` + +## Actions + +**List vaults:** +``` +http(method="GET", url="{1PASSWORD_CONNECT_SERVER_URL}/v1/vaults") +``` + +**List items in vault:** +``` +http(method="GET", url="{1PASSWORD_CONNECT_SERVER_URL}/v1/vaults/{vault_id}/items") +``` + +**Get item details:** +``` +http(method="GET", url="{1PASSWORD_CONNECT_SERVER_URL}/v1/vaults/{vault_id}/items/{item_id}") +``` + +**Create item:** +``` +http(method="POST", url="{1PASSWORD_CONNECT_SERVER_URL}/v1/vaults/{vault_id}/items", body={"vault": {"id": ""},"category": "LOGIN","title": "My Login","fields": [{"purpose": "USERNAME","value": "user@example.com"},{"purpose": "PASSWORD","value": "secret"}]}) +``` + +**Delete item:** +``` +http(method="DELETE", url="{1PASSWORD_CONNECT_SERVER_URL}/v1/vaults/{vault_id}/items/{item_id}") +``` + +## Notes + +- Item categories: `LOGIN`, `PASSWORD`, `SECURE_NOTE`, `CREDIT_CARD`, `IDENTITY`, `DOCUMENT`. +- Fields have `purpose`: `USERNAME`, `PASSWORD`, `NOTES`. +- The Connect server must be running and accessible at the configured URL. diff --git a/skills/7-shifts/SKILL.md b/skills/7-shifts/SKILL.md new file mode 100644 index 00000000..07b61663 --- /dev/null +++ b/skills/7-shifts/SKILL.md @@ -0,0 +1,38 @@ +--- +name: 7-shifts +version: "1.0.0" +description: 7shifts API — 7Shifts is a cloud‑based workforce management platform tailored for restaurants +activation: + keywords: + - "7-shifts" + - "7shifts" + - "hospitality" + patterns: + - "(?i)7.?shifts" + tags: + - "hospitality" + - "scheduling" + max_context_tokens: 1200 +--- + +# 7shifts API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> 7Shifts is a cloud‑based workforce management platform tailored for restaurants, combining intuitive drag‑and‑drop scheduling, mobile time tracking, automated payroll and tip management, labor complia + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ably-control/SKILL.md b/skills/ably-control/SKILL.md new file mode 100644 index 00000000..8c52d59a --- /dev/null +++ b/skills/ably-control/SKILL.md @@ -0,0 +1,46 @@ +--- +name: ably-control +version: "1.0.0" +description: Ably Control API — Ably Control API is a RESTful interface that enables developers and DevOps teams +activation: + keywords: + - "ably-control" + - "ably control" + - "tools" + patterns: + - "(?i)ably.?control" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABLY_CONTROL_ACCESS_TOKEN] +--- + +# Ably Control API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Ably Control API is a RESTful interface that enables developers and DevOps teams to programmatically provision, configure, and manage real-time infrastructure—such as apps, API keys, namespaces, queue + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `ABLY_CONTROL_ACCESS_TOKEN` — Access Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ably/SKILL.md b/skills/ably/SKILL.md new file mode 100644 index 00000000..6b02d631 --- /dev/null +++ b/skills/ably/SKILL.md @@ -0,0 +1,46 @@ +--- +name: ably +version: "1.0.0" +description: Ably API — Ably Pub/Sub is a global serverless real-time messaging platform that delivers s +activation: + keywords: + - "ably" + - "tools" + patterns: + - "(?i)ably" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABLY_ENCODED_API_KEY] +--- + +# Ably API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Ably Pub/Sub is a global serverless real-time messaging platform that delivers sub‑60 ms latency pub/sub capabilities—including message history, presence detection, exactly‑once delivery, and guarante + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Basic ...` + +## Required Credentials + +- `ABLY_ENCODED_API_KEY` — API Key (RFC 4648 Base64 Encoded) + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-avatars/SKILL.md b/skills/abstract-avatars/SKILL.md new file mode 100644 index 00000000..092f9c90 --- /dev/null +++ b/skills/abstract-avatars/SKILL.md @@ -0,0 +1,47 @@ +--- +name: abstract-avatars +version: "1.0.0" +description: Abstract Avatars API — An API that generates customizable user avatars based on names or unique identif +activation: + keywords: + - "abstract-avatars" + - "abstract avatars" + - "avatar generation" + patterns: + - "(?i)abstract.?avatars" + tags: + - "avatar" + - "images" + - "avatar-generation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_AVATARS_API_KEY] +--- + +# Abstract Avatars API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that generates customizable user avatars based on names or unique identifiers, enabling applications to automatically create consistent, visually distinct profile images without requiring users + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_AVATARS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-company-enrichment/SKILL.md b/skills/abstract-company-enrichment/SKILL.md new file mode 100644 index 00000000..8d7d3fa4 --- /dev/null +++ b/skills/abstract-company-enrichment/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-company-enrichment +version: "1.0.0" +description: Abstract Company Enrichment API — An API that enriches company records with firmographic data such as industry +activation: + keywords: + - "abstract-company-enrichment" + - "abstract company enrichment" + - "data enrichment" + patterns: + - "(?i)abstract.?company.?enrichment" + tags: + - "data-enrichment" + - "enrichment" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_COMPANY_ENRICHMENT_API_KEY] +--- + +# Abstract Company Enrichment API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that enriches company records with firmographic data such as industry, size, location, and domain details, enabling businesses to enhance lead profiles, improve segmentation, and power more acc + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_COMPANY_ENRICHMENT_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-email-reputation/SKILL.md b/skills/abstract-email-reputation/SKILL.md new file mode 100644 index 00000000..4f556ae1 --- /dev/null +++ b/skills/abstract-email-reputation/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-email-reputation +version: "1.0.0" +description: Abstract Email Reputation API — An API that evaluates the reputation of email addresses by analyzing risk factor +activation: + keywords: + - "abstract-email-reputation" + - "abstract email reputation" + - "email verification" + patterns: + - "(?i)abstract.?email.?reputation" + tags: + - "tools" + - "email-verification" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_EMAIL_REPUTATION_API_KEY] +--- + +# Abstract Email Reputation API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that evaluates the reputation of email addresses by analyzing risk factors to help applications improve deliverability, reduce fraud, and enhance email validation accuracy. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_EMAIL_REPUTATION_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-iban-validation/SKILL.md b/skills/abstract-iban-validation/SKILL.md new file mode 100644 index 00000000..27f5eaa7 --- /dev/null +++ b/skills/abstract-iban-validation/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-iban-validation +version: "1.0.0" +description: Abstract IBAN Validation API — An API that validates IBAN numbers by checking format, bank details +activation: + keywords: + - "abstract-iban-validation" + - "abstract iban validation" + - "iban validation" + patterns: + - "(?i)abstract.?iban.?validation" + tags: + - "tools" + - "iban-validation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_IBAN_VALIDATION_API_KEY] +--- + +# Abstract IBAN Validation API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that validates IBAN numbers by checking format, bank details, and country-specific rules to help businesses prevent payment errors, reduce fraud risk, and streamline international transactions. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_IBAN_VALIDATION_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-ip-intelligence/SKILL.md b/skills/abstract-ip-intelligence/SKILL.md new file mode 100644 index 00000000..d5129434 --- /dev/null +++ b/skills/abstract-ip-intelligence/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-ip-intelligence +version: "1.0.0" +description: Abstract IP Intelligence API — An API that provides IP address data including geolocation, ISP +activation: + keywords: + - "abstract-ip-intelligence" + - "abstract ip intelligence" + - "ip intelligence" + patterns: + - "(?i)abstract.?ip.?intelligence" + tags: + - "tools" + - "ip-intelligence" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_IP_INTELLIGENCE_API_KEY] +--- + +# Abstract IP Intelligence API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that provides IP address data including geolocation, ISP, proxy and VPN detection, and risk signals to help applications enhance security, prevent fraud, and deliver location-aware experiences. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_IP_INTELLIGENCE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-phone-intelligence/SKILL.md b/skills/abstract-phone-intelligence/SKILL.md new file mode 100644 index 00000000..d36a1d29 --- /dev/null +++ b/skills/abstract-phone-intelligence/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-phone-intelligence +version: "1.0.0" +description: Abstract Phone Intelligence API — An API that validates and enriches phone numbers with carrier, location +activation: + keywords: + - "abstract-phone-intelligence" + - "abstract phone intelligence" + - "phone validation" + patterns: + - "(?i)abstract.?phone.?intelligence" + tags: + - "tools" + - "phone-validation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_PHONE_INTELLIGENCE_API_KEY] +--- + +# Abstract Phone Intelligence API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that validates and enriches phone numbers with carrier, location, and line type data, enabling applications to verify user input, detect fraud risk, and improve communication accuracy globally. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_PHONE_INTELLIGENCE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-public-holidays/SKILL.md b/skills/abstract-public-holidays/SKILL.md new file mode 100644 index 00000000..e45c8215 --- /dev/null +++ b/skills/abstract-public-holidays/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-public-holidays +version: "1.0.0" +description: Abstract Public Holidays API — An API that delivers official public holiday data by country and year +activation: + keywords: + - "abstract-public-holidays" + - "abstract public holidays" + - "public holidays" + patterns: + - "(?i)abstract.?public.?holidays" + tags: + - "tools" + - "public-holidays" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_PUBLIC_HOLIDAYS_API_KEY] +--- + +# Abstract Public Holidays API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that delivers official public holiday data by country and year, enabling applications to access national and regional holiday calendars for scheduling, localization, and compliance use cases. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_PUBLIC_HOLIDAYS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abstract-vat-validation/SKILL.md b/skills/abstract-vat-validation/SKILL.md new file mode 100644 index 00000000..93b77e0d --- /dev/null +++ b/skills/abstract-vat-validation/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abstract-vat-validation +version: "1.0.0" +description: Abstract Vat Validation API — An API that validates VAT numbers against official registries +activation: + keywords: + - "abstract-vat-validation" + - "abstract vat validation" + - "vat validation" + patterns: + - "(?i)abstract.?vat.?validation" + tags: + - "tools" + - "vat-validation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABSTRACT_VAT_VALIDATION_API_KEY] +--- + +# Abstract Vat Validation API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> An API that validates VAT numbers against official registries, confirms company details, and helps businesses ensure tax compliance, reduce fraud risk, and automate cross-border invoicing workflows. + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `ABSTRACT_VAT_VALIDATION_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/abyssale/SKILL.md b/skills/abyssale/SKILL.md new file mode 100644 index 00000000..67283ee7 --- /dev/null +++ b/skills/abyssale/SKILL.md @@ -0,0 +1,46 @@ +--- +name: abyssale +version: "1.0.0" +description: Abyssale API — A cloud-based creative automation solution that helps teams design, generate +activation: + keywords: + - "abyssale" + - "creative automation platform" + patterns: + - "(?i)abyssale" + tags: + - "tools" + - "creative-automation-platform" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ABYSSALE_API_KEY] +--- + +# Abyssale API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> A cloud-based creative automation solution that helps teams design, generate, and scale thousands of on-brand visual assets in minutes from a single template, accelerates production through APIs and i + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `ABYSSALE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/activecampaign/SKILL.md b/skills/activecampaign/SKILL.md new file mode 100644 index 00000000..000e6696 --- /dev/null +++ b/skills/activecampaign/SKILL.md @@ -0,0 +1,81 @@ +--- +name: activecampaign +version: "1.0.0" +description: ActiveCampaign API — contacts, deals, automations, campaigns, lists +activation: + keywords: + - "activecampaign" + - "active campaign" + - "marketing automation" + exclude_keywords: + - "hubspot" + - "mailchimp" + patterns: + - "(?i)active.?campaign.*(contact|deal|automation|campaign)" + tags: + - "marketing" + - "crm" + - "automation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ACTIVECAMPAIGN_URL, ACTIVECAMPAIGN_API_KEY] +--- + +# ActiveCampaign API v3 + +Use the `http` tool. Include `Api-Token` header. + +## Base URL + +`https://{ACTIVECAMPAIGN_URL}.api-us1.com/api/3` + +## Actions + +**List contacts:** +``` +http(method="GET", url="https://{account}.api-us1.com/api/3/contacts?limit=20", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}]) +``` + +**Search contacts:** +``` +http(method="GET", url="https://{account}.api-us1.com/api/3/contacts?search=john@example.com", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}]) +``` + +**Create contact:** +``` +http(method="POST", url="https://{account}.api-us1.com/api/3/contacts", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}], body={"contact": {"email": "john@example.com", "firstName": "John", "lastName": "Doe", "phone": "+1234567890"}}) +``` + +**Update contact:** +``` +http(method="PUT", url="https://{account}.api-us1.com/api/3/contacts/", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}], body={"contact": {"firstName": "Updated"}}) +``` + +**List deals:** +``` +http(method="GET", url="https://{account}.api-us1.com/api/3/deals?limit=20", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}]) +``` + +**Create deal:** +``` +http(method="POST", url="https://{account}.api-us1.com/api/3/deals", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}], body={"deal": {"title": "New Deal", "value": 5000, "currency": "usd", "contact": "", "group": "", "stage": ""}}) +``` + +**Add contact to automation:** +``` +http(method="POST", url="https://{account}.api-us1.com/api/3/contactAutomations", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}], body={"contactAutomation": {"contact": "", "automation": ""}}) +``` + +**List automations:** +``` +http(method="GET", url="https://{account}.api-us1.com/api/3/automations?limit=20", headers=[{"name": "Api-Token", "value": "{ACTIVECAMPAIGN_API_KEY}"}]) +``` + +## Notes + +- All request/response bodies wrap data in the resource name: `{"contact": {...}}`, `{"contacts": [...]}`. +- Deal values are in cents (integer). +- Pagination: `limit` + `offset`. Check `meta.total` for count. +- Tags can be added via `/api/3/contactTags` with `{"contactTag": {"contact": "id", "tag": "id"}}`. diff --git a/skills/affinity-co/SKILL.md b/skills/affinity-co/SKILL.md new file mode 100644 index 00000000..cb7050d2 --- /dev/null +++ b/skills/affinity-co/SKILL.md @@ -0,0 +1,46 @@ +--- +name: affinity-co +version: "1.0.0" +description: Affinity.co API — Affinity is a relationship intelligence CRM that automatically captures and anal +activation: + keywords: + - "affinity-co" + - "affinity.co" + - "crm" + patterns: + - "(?i)affinity.?co" + tags: + - "crm" + - "sales" + - "contacts" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AFFINITY_CO_API_KEY] +--- + +# Affinity.co API + +Use the `http` tool. Credentials are automatically injected. + +> Affinity is a relationship intelligence CRM that automatically captures and analyzes your team's communication data to surface valuable connections, streamline deal management, and help you close more + +## Authentication + + +## Required Credentials + +- `AFFINITY_CO_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/agent-mail/SKILL.md b/skills/agent-mail/SKILL.md new file mode 100644 index 00000000..a698af28 --- /dev/null +++ b/skills/agent-mail/SKILL.md @@ -0,0 +1,46 @@ +--- +name: agent-mail +version: "1.0.0" +description: AgentMail API — Agent Mail enables developers to give AI agents unique +activation: + keywords: + - "agent-mail" + - "agentmail" + - "ai" + patterns: + - "(?i)agent.?mail" + tags: + - "ai" + - "machine-learning" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AGENT_MAIL_API_KEY] +--- + +# AgentMail API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Agent Mail enables developers to give AI agents unique, programmable email inboxes that can send, receive, and act on emails at scale—featuring API-first integration, custom domains, and built-in deli + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `AGENT_MAIL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/agent-ql/SKILL.md b/skills/agent-ql/SKILL.md new file mode 100644 index 00000000..e2667d28 --- /dev/null +++ b/skills/agent-ql/SKILL.md @@ -0,0 +1,47 @@ +--- +name: agent-ql +version: "1.0.0" +description: AgentQL API — AgentQL is a natural language interface that allows users to query their data us +activation: + keywords: + - "agent-ql" + - "agentql" + - "ai" + patterns: + - "(?i)agent.?ql" + tags: + - "ai" + - "machine-learning" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AGENTQL_API_KEY] +--- + +# AgentQL API + +Use the `http` tool. API key is automatically injected via `X-API-Key` header — **never construct auth headers manually**. + +> AgentQL is a natural language interface that allows users to query their data using plain English, enabling seamless interaction with databases and APIs without writing traditional code. + +## Authentication + +This integration uses **API Key** authentication via the `X-API-Key` header. +Format: `X-API-Key: ...` + +## Required Credentials + +- `AGENTQL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/agiled/SKILL.md b/skills/agiled/SKILL.md new file mode 100644 index 00000000..ed84cce0 --- /dev/null +++ b/skills/agiled/SKILL.md @@ -0,0 +1,38 @@ +--- +name: agiled +version: "1.0.0" +description: Agiled API — Agiled is an all-in-one business management platform that helps freelancers and +activation: + keywords: + - "agiled" + - "crm" + patterns: + - "(?i)agiled" + tags: + - "crm" + - "sales" + - "contacts" + max_context_tokens: 1200 +--- + +# Agiled API + +Use the `http` tool. API key is automatically injected as `api_token` query parameter. + +> Agiled is an all-in-one business management platform that helps freelancers and small businesses manage CRM, projects, finances, contracts, invoicing and client portals within a unified workspace. + +## Authentication + +This integration uses **query parameter** authentication via `api_token`. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ahrefs/SKILL.md b/skills/ahrefs/SKILL.md new file mode 100644 index 00000000..5b89b796 --- /dev/null +++ b/skills/ahrefs/SKILL.md @@ -0,0 +1,56 @@ +--- +name: ahrefs +version: "1.0.0" +description: Ahrefs API — Ahrefs is an all-in-one SEO toolset that helps businesses and marketers improve +activation: + keywords: + - "ahrefs" + - "tools" + patterns: + - "(?i)ahrefs" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AHREFS_API_KEY] +--- + +# Ahrefs API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.ahrefs.com/v3` + +## Actions + +**Get domain rating:** +``` +http(method="GET", url="https://api.ahrefs.com/v3/site-explorer/domain-rating?target=example.com&date=2026-03-01") +``` + +**Get backlinks:** +``` +http(method="GET", url="https://api.ahrefs.com/v3/site-explorer/all-backlinks?target=example.com&limit=10&mode=subdomains") +``` + +**Get organic keywords:** +``` +http(method="GET", url="https://api.ahrefs.com/v3/site-explorer/organic-keywords?target=example.com&limit=10&country=us") +``` + +**Get referring domains:** +``` +http(method="GET", url="https://api.ahrefs.com/v3/site-explorer/refdomains?target=example.com&limit=10&mode=subdomains") +``` + +## Notes + +- `target` can be a domain, subdomain, or URL. +- `mode`: `exact`, `prefix`, `domain`, `subdomains`. +- Dates in `YYYY-MM-DD` format. +- Results are paginated with `offset` and `limit`. diff --git a/skills/airtable/SKILL.md b/skills/airtable/SKILL.md new file mode 100644 index 00000000..717e9a69 --- /dev/null +++ b/skills/airtable/SKILL.md @@ -0,0 +1,85 @@ +--- +name: airtable +version: "1.0.0" +description: Airtable API — bases, tables, records, fields, views +activation: + keywords: + - "airtable" + - "airtable base" + - "airtable record" + exclude_keywords: + - "google sheets" + - "notion" + patterns: + - "(?i)airtable.*(base|table|record|field)" + - "(?i)(create|list|update).*airtable" + tags: + - "database" + - "spreadsheet" + - "productivity" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [AIRTABLE_ACCESS_TOKEN] +--- + +# Airtable Web API + +Use the `http` tool. Credentials are automatically injected for `api.airtable.com`. + +## Base URL + +`https://api.airtable.com/v0` + +## Actions + +**List bases:** +``` +http(method="GET", url="https://api.airtable.com/v0/meta/bases") +``` + +**List tables in base:** +``` +http(method="GET", url="https://api.airtable.com/v0/meta/bases//tables") +``` + +**List records:** +``` +http(method="GET", url="https://api.airtable.com/v0//?maxRecords=20&view=Grid%20view") +``` + +**List with filter:** +``` +http(method="GET", url="https://api.airtable.com/v0//?filterByFormula={Status}='Active'&sort[0][field]=Name&sort[0][direction]=asc&maxRecords=20") +``` + +**Get record:** +``` +http(method="GET", url="https://api.airtable.com/v0///") +``` + +**Create records:** +``` +http(method="POST", url="https://api.airtable.com/v0//", body={"records": [{"fields": {"Name": "Alice", "Email": "alice@example.com", "Status": "Active"}}]}) +``` + +**Update records:** +``` +http(method="PATCH", url="https://api.airtable.com/v0//", body={"records": [{"id": "", "fields": {"Status": "Done"}}]}) +``` + +**Delete records:** +``` +http(method="DELETE", url="https://api.airtable.com/v0//?records[]=&records[]=") +``` + +## Notes + +- Base IDs start with `app`, table IDs with `tbl`, record IDs with `rec`. +- Table name in URL must be URL-encoded if it contains spaces. +- `filterByFormula` uses Airtable formula syntax: `{Field Name}='value'`, `AND(...)`, `OR(...)`. +- Create/update accept up to 10 records per request. +- Pagination: use `offset` from response. When absent, no more records. +- Rate limit: 5 requests/second per base. +- Field names are case-sensitive and must match exactly. diff --git a/skills/alt-text-ai/SKILL.md b/skills/alt-text-ai/SKILL.md new file mode 100644 index 00000000..19a379ef --- /dev/null +++ b/skills/alt-text-ai/SKILL.md @@ -0,0 +1,47 @@ +--- +name: alt-text-ai +version: "1.0.0" +description: AltText AI API — An AI-driven service that automatically analyzes images and generates descriptiv +activation: + keywords: + - "alt-text-ai" + - "alttext ai" + - "generation tool" + patterns: + - "(?i)alt.?text.?ai" + tags: + - "tools" + - "generation-tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ALT_TEXT_AI_API_KEY] +--- + +# AltText AI API + +Use the `http` tool. API key is automatically injected via `X-API-Key` header — **never construct auth headers manually**. + +> An AI-driven service that automatically analyzes images and generates descriptive, SEO-friendly alt text to improve website accessibility, enhance search visibility across languages, and streamline im + +## Authentication + +This integration uses **API Key** authentication via the `X-API-Key` header. +Format: `X-API-Key: ...` + +## Required Credentials + +- `ALT_TEXT_AI_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/amazon-ads/SKILL.md b/skills/amazon-ads/SKILL.md new file mode 100644 index 00000000..e0a07332 --- /dev/null +++ b/skills/amazon-ads/SKILL.md @@ -0,0 +1,39 @@ +--- +name: amazon-ads +version: "1.0.0" +description: Amazon Ads API — Amazon Ads is an advertising platform that enables brands to promote their produ +activation: + keywords: + - "amazon-ads" + - "amazon ads" + - "marketing" + patterns: + - "(?i)amazon.?ads" + tags: + - "marketing" + - "email" + - "campaigns" + max_context_tokens: 1200 +--- + +# Amazon Ads API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Amazon Ads is an advertising platform that enables brands to promote their products across Amazon’s ecosystem, helping them reach shoppers through targeted ads, sponsored listings, and display campaig + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/anchor-browser/SKILL.md b/skills/anchor-browser/SKILL.md new file mode 100644 index 00000000..86f2176f --- /dev/null +++ b/skills/anchor-browser/SKILL.md @@ -0,0 +1,47 @@ +--- +name: anchor-browser +version: "1.0.0" +description: Anchor Browser API — Anchor Browser is a cloud-hosted automation platform that lets AI agents interac +activation: + keywords: + - "anchor-browser" + - "anchor browser" + - "web automation" + patterns: + - "(?i)anchor.?browser" + tags: + - "tools" + - "web-automation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ANCHOR_BROWSER_API_KEY] +--- + +# Anchor Browser API + +Use the `http` tool. API key is automatically injected via `anchor-api-key` header — **never construct auth headers manually**. + +> Anchor Browser is a cloud-hosted automation platform that lets AI agents interact with web pages like a human—navigating sites, clicking, typing, submitting forms and extracting data—so teams can auto + +## Authentication + +This integration uses **API Key** authentication via the `anchor-api-key` header. +Format: `anchor-api-key: ...` + +## Required Credentials + +- `ANCHOR_BROWSER_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/anthropic-admin/SKILL.md b/skills/anthropic-admin/SKILL.md new file mode 100644 index 00000000..43a2573b --- /dev/null +++ b/skills/anthropic-admin/SKILL.md @@ -0,0 +1,47 @@ +--- +name: anthropic-admin +version: "1.0.0" +description: Anthropic Admin API — Anthropic Admin provides administrative tools for managing access, API keys +activation: + keywords: + - "anthropic-admin" + - "anthropic admin" + - "ai" + patterns: + - "(?i)anthropic.?admin" + tags: + - "ai" + - "machine-learning" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ANTHROPIC_ADMIN_API_KEY] +--- + +# Anthropic Admin API + +Use the `http` tool. API key is automatically injected via `X-Api-Key` header — **never construct auth headers manually**. + +> Anthropic Admin provides administrative tools for managing access, API keys, usage, billing, and organizational settings for applications built with Claude AI models, allowing teams to control permiss + +## Authentication + +This integration uses **API Key** authentication via the `X-Api-Key` header. +Format: `X-Api-Key: ...` + +## Required Credentials + +- `ANTHROPIC_ADMIN_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/anthropic/SKILL.md b/skills/anthropic/SKILL.md new file mode 100644 index 00000000..36c4c691 --- /dev/null +++ b/skills/anthropic/SKILL.md @@ -0,0 +1,53 @@ +--- +name: anthropic +version: "1.0.0" +description: Anthropic API — Anthropic is an AI safety and research company focused on building reliable +activation: + keywords: + - "anthropic" + - "ai" + patterns: + - "(?i)anthropic" + tags: + - "ai" + - "machine-learning" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ANTHROPIC_API_KEY] +--- + +# Anthropic API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +## Base URL + +`https://api.anthropic.com/v1` + +**Required headers**: `x-api-key: {ANTHROPIC_API_KEY}`, `anthropic-version: 2023-06-01` + +## Actions + +**Create message:** +``` +http(method="POST", url="https://api.anthropic.com/v1/messages", headers=[{"name": "x-api-key","value": "{ANTHROPIC_API_KEY}"},{"name": "anthropic-version","value": "2023-06-01"}], body={"model": "claude-sonnet-4-20250514","max_tokens": 1024,"messages": [{"role": "user","content": "Hello"}]}) +``` + +**Create message with system prompt:** +``` +http(method="POST", url="https://api.anthropic.com/v1/messages", headers=[{"name": "x-api-key","value": "{ANTHROPIC_API_KEY}"},{"name": "anthropic-version","value": "2023-06-01"}], body={"model": "claude-sonnet-4-20250514","max_tokens": 1024,"system": "You are a helpful assistant.","messages": [{"role": "user","content": "Explain quantum computing"}]}) +``` + +**List models:** +``` +http(method="GET", url="https://api.anthropic.com/v1/models") +``` + +## Notes + +- Always include `anthropic-version: 2023-06-01` header. +- Models: `claude-sonnet-4-20250514`, `claude-haiku-4-5-20251001`, `claude-opus-4-20250514`. +- Max tokens is required for all message requests. +- Streaming: set `stream: true` in body. diff --git a/skills/apify/SKILL.md b/skills/apify/SKILL.md new file mode 100644 index 00000000..fa620815 --- /dev/null +++ b/skills/apify/SKILL.md @@ -0,0 +1,55 @@ +--- +name: apify +version: "1.0.0" +description: Apify API — Apify is a full‑stack web scraping and browser automation platform where develop +activation: + keywords: + - "apify" + - "tools" + patterns: + - "(?i)apify" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [APIFY_API_KEY] +--- + +# Apify API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.apify.com/v2` + +## Actions + +**List actors:** +``` +http(method="GET", url="https://api.apify.com/v2/acts?limit=10") +``` + +**Run actor:** +``` +http(method="POST", url="https://api.apify.com/v2/acts/{actor_id}/runs", body={"memory": 256,"timeout": 60}) +``` + +**Get run details:** +``` +http(method="GET", url="https://api.apify.com/v2/acts/{actor_id}/runs/{run_id}") +``` + +**Get dataset items:** +``` +http(method="GET", url="https://api.apify.com/v2/datasets/{dataset_id}/items?limit=100") +``` + +## Notes + +- Actor IDs look like `username~actor-name` or a hash. +- Run status: `READY`, `RUNNING`, `SUCCEEDED`, `FAILED`, `TIMED-OUT`, `ABORTED`. +- Default dataset is created per run; check `defaultDatasetId` in run details. diff --git a/skills/apollo/SKILL.md b/skills/apollo/SKILL.md new file mode 100644 index 00000000..65484f8b --- /dev/null +++ b/skills/apollo/SKILL.md @@ -0,0 +1,52 @@ +--- +name: apollo +version: "1.0.0" +description: Apollo API — Apollo is a sales intelligence and engagement platform that helps teams find and +activation: + keywords: + - "apollo" + - "crm" + patterns: + - "(?i)apollo" + tags: + - "crm" + - "sales" + - "contacts" + max_context_tokens: 1200 +--- + +# Apollo API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.apollo.io/api/v1` + +## Actions + +**Search people:** +``` +http(method="POST", url="https://api.apollo.io/api/v1/mixed_people/search", body={"person_titles": ["CEO"],"person_locations": ["San Francisco"],"page": 1,"per_page": 10}) +``` + +**Search organizations:** +``` +http(method="POST", url="https://api.apollo.io/api/v1/mixed_companies/search", body={"organization_locations": ["United States"],"page": 1,"per_page": 10}) +``` + +**Get person:** +``` +http(method="GET", url="https://api.apollo.io/api/v1/people/{person_id}") +``` + +**Enrich person:** +``` +http(method="POST", url="https://api.apollo.io/api/v1/people/match", body={"email": "john@example.com"}) +``` + +## Notes + +- API key goes in the request body as `api_key` or as a header. +- Search supports filters: `person_titles`, `person_locations`, `organization_domains`. +- Rate limit: 50 requests per minute on free tier. diff --git a/skills/asana/SKILL.md b/skills/asana/SKILL.md new file mode 100644 index 00000000..5152a2a4 --- /dev/null +++ b/skills/asana/SKILL.md @@ -0,0 +1,87 @@ +--- +name: asana +version: "1.0.0" +description: Asana REST API — tasks, projects, sections, comments, search +activation: + keywords: + - "asana" + - "asana task" + - "asana project" + exclude_keywords: + - "jira" + - "trello" + patterns: + - "(?i)asana.*(task|project|section)" + - "(?i)(create|list|update|complete).*asana" + tags: + - "project-management" + - "task-management" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [ASANA_ACCESS_TOKEN] +--- + +# Asana REST API + +Use the `http` tool. Credentials are automatically injected for `app.asana.com`. + +## Base URL + +`https://app.asana.com/api/1.0` + +## Actions + +**List my tasks:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/user_task_lists/me/tasks?workspace=&opt_fields=name,completed,due_on,assignee_section.name&limit=20") +``` + +**Get task:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/tasks/?opt_fields=name,notes,completed,due_on,assignee.name,projects.name,tags.name") +``` + +**Create task:** +``` +http(method="POST", url="https://app.asana.com/api/1.0/tasks", body={"data": {"name": "Task title", "notes": "Description", "projects": [""], "due_on": "2026-04-01", "assignee": "me"}}) +``` + +**Update task:** +``` +http(method="PUT", url="https://app.asana.com/api/1.0/tasks/", body={"data": {"completed": true}}) +``` + +**List project tasks:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/projects//tasks?opt_fields=name,completed,due_on,assignee.name&limit=50") +``` + +**Add comment:** +``` +http(method="POST", url="https://app.asana.com/api/1.0/tasks//stories", body={"data": {"text": "Comment text"}}) +``` + +**Search tasks:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/workspaces//tasks/search?text=search+term&opt_fields=name,completed&limit=20") +``` + +**List projects:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/projects?workspace=&opt_fields=name,current_status&limit=50") +``` + +**List workspaces:** +``` +http(method="GET", url="https://app.asana.com/api/1.0/workspaces") +``` + +## Notes + +- All response data is wrapped in `{"data": ...}`. Errors: `{"errors": [{"message": "..."}]}`. +- Use `opt_fields` to request specific fields (comma-separated). Without it, you get minimal data. +- GIDs are numeric strings like `"1234567890123456"`. +- Dates are ISO format `YYYY-MM-DD`. Due times use `due_at` (ISO 8601 with timezone). +- Pagination: `offset` token from `next_page.offset`. Check `next_page` for more. diff --git a/skills/attio/SKILL.md b/skills/attio/SKILL.md new file mode 100644 index 00000000..9e0d9bea --- /dev/null +++ b/skills/attio/SKILL.md @@ -0,0 +1,58 @@ +--- +name: attio +version: "1.0.0" +description: Attio API — Attio is a modern CRM platform that offers fully customizable workspaces +activation: + keywords: + - "attio" + - "crm" + patterns: + - "(?i)attio" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +--- + +# Attio API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.attio.com/v2` + +## Actions + +**List records:** +``` +http(method="POST", url="https://api.attio.com/v2/objects/{object_slug}/records/query", body={"limit": 20}) +``` + +**Get record:** +``` +http(method="GET", url="https://api.attio.com/v2/objects/{object_slug}/records/{record_id}") +``` + +**Create record:** +``` +http(method="POST", url="https://api.attio.com/v2/objects/{object_slug}/records", body={"data": {"values": {"name": [{"value": "Acme Corp"}]}}}) +``` + +**List objects:** +``` +http(method="GET", url="https://api.attio.com/v2/objects") +``` + +**List lists:** +``` +http(method="GET", url="https://api.attio.com/v2/lists") +``` + +## Notes + +- Standard objects: `companies`, `people`, `deals`. +- Values are arrays of typed entries: `[{"value": "..."}]`. +- Use `/objects/{slug}/records/query` with filters for searching. diff --git a/skills/auth0-management/SKILL.md b/skills/auth0-management/SKILL.md new file mode 100644 index 00000000..864308b6 --- /dev/null +++ b/skills/auth0-management/SKILL.md @@ -0,0 +1,61 @@ +--- +name: auth0-management +version: "1.0.0" +description: Auth0 Management API — Auth0 delivers a flexible, drop-in authentication and authorization platform tha +activation: + keywords: + - "auth0-management" + - "auth0 management" + - "authentication" + patterns: + - "(?i)auth0.?management" + tags: + - "tools" + - "authentication" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AUTH0_API_TOKEN, AUTH0_MANAGEMENT_TENANT_DOMAIN] +--- + +# Auth0 Management API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{AUTH0_DOMAIN}/api/v2` + +## Actions + +**List users:** +``` +http(method="GET", url="https://{AUTH0_DOMAIN}/api/v2/users?page=0&per_page=10") +``` + +**Get user:** +``` +http(method="GET", url="https://{AUTH0_DOMAIN}/api/v2/users/{user_id}") +``` + +**Create user:** +``` +http(method="POST", url="https://{AUTH0_DOMAIN}/api/v2/users", body={"email": "john@example.com","password": "SecureP@ss1","connection": "Username-Password-Authentication"}) +``` + +**Update user:** +``` +http(method="PATCH", url="https://{AUTH0_DOMAIN}/api/v2/users/{user_id}", body={"name": "John Doe"}) +``` + +**List roles:** +``` +http(method="GET", url="https://{AUTH0_DOMAIN}/api/v2/roles") +``` + +## Notes + +- `user_id` is URL-encoded: `auth0|abc123` → `auth0%7Cabc123`. +- Connections: `Username-Password-Authentication`, `google-oauth2`, etc. +- Use `q` param for Lucene query syntax search: `?q=email:"*@acme.com"`. diff --git a/skills/autodesk/SKILL.md b/skills/autodesk/SKILL.md new file mode 100644 index 00000000..e8f5adde --- /dev/null +++ b/skills/autodesk/SKILL.md @@ -0,0 +1,38 @@ +--- +name: autodesk +version: "1.0.0" +description: Autodesk API — Autodesk is a global leader in design and engineering software +activation: + keywords: + - "autodesk" + - "software" + patterns: + - "(?i)autodesk" + tags: + - "software" + - "development" + - "tools" + max_context_tokens: 1200 +--- + +# Autodesk API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Autodesk is a global leader in design and engineering software, offering a cloud‑connected Design and Make Platform—including AutoCAD, Revit, Fusion 360, and Autodesk Platform Services—that connects d + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ayrshare/SKILL.md b/skills/ayrshare/SKILL.md new file mode 100644 index 00000000..3afa7e71 --- /dev/null +++ b/skills/ayrshare/SKILL.md @@ -0,0 +1,46 @@ +--- +name: ayrshare +version: "1.0.0" +description: Ayrshare API — Ayrshare provides a unified REST-based social media API that lets developers pro +activation: + keywords: + - "ayrshare" + - "social media" + patterns: + - "(?i)ayrshare" + tags: + - "social-media" + - "social" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [AYRSHARE_API_KEY] +--- + +# Ayrshare API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Ayrshare provides a unified REST-based social media API that lets developers programmatically post, schedule, delete, and analyze content across 13 major networks, manage comments and messages, and au + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Bearer ...` + +## Required Credentials + +- `AYRSHARE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/basin/SKILL.md b/skills/basin/SKILL.md new file mode 100644 index 00000000..3f0e11ae --- /dev/null +++ b/skills/basin/SKILL.md @@ -0,0 +1,45 @@ +--- +name: basin +version: "1.0.0" +description: Basin API — Basin is a form backend service that captures form submissions from static sites +activation: + keywords: + - "basin" + - "workflow automation" + patterns: + - "(?i)basin" + tags: + - "tools" + - "workflow-automation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BASIN_API_KEY] +--- + +# Basin API + +Use the `http` tool. API key is automatically injected as `api_token` query parameter. + +> Basin is a form backend service that captures form submissions from static sites and forwards data to email, webhooks or integrations—enabling developers to handle form data without building a custom + +## Authentication + +This integration uses **query parameter** authentication via `api_token`. + +## Required Credentials + +- `BASIN_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/beehiiv/SKILL.md b/skills/beehiiv/SKILL.md new file mode 100644 index 00000000..a0cdd50a --- /dev/null +++ b/skills/beehiiv/SKILL.md @@ -0,0 +1,55 @@ +--- +name: beehiiv +version: "1.0.0" +description: Beehiiv API — Beehiiv is a newsletter platform designed for creators and publishers to grow +activation: + keywords: + - "beehiiv" + - "tools" + patterns: + - "(?i)beehiiv" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BEEHIIV_API_KEY] +--- + +# Beehiiv API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.beehiiv.com/v2` + +## Actions + +**List publications:** +``` +http(method="GET", url="https://api.beehiiv.com/v2/publications") +``` + +**List subscribers:** +``` +http(method="GET", url="https://api.beehiiv.com/v2/publications/{pub_id}/subscriptions?limit=10") +``` + +**Create subscriber:** +``` +http(method="POST", url="https://api.beehiiv.com/v2/publications/{pub_id}/subscriptions", body={"email": "reader@example.com","reactivate_existing": true}) +``` + +**List posts:** +``` +http(method="GET", url="https://api.beehiiv.com/v2/publications/{pub_id}/posts?status=confirmed&limit=10") +``` + +## Notes + +- Publication IDs start with `pub_`. +- Post status: `draft`, `confirmed` (published), `archived`. +- Subscriber status: `active`, `inactive`, `validating`. diff --git a/skills/benchmark-email/SKILL.md b/skills/benchmark-email/SKILL.md new file mode 100644 index 00000000..0201a614 --- /dev/null +++ b/skills/benchmark-email/SKILL.md @@ -0,0 +1,48 @@ +--- +name: benchmark-email +version: "1.0.0" +description: Benchmark Email API — Benchmark Email is an intuitive email-marketing platform that enables marketers +activation: + keywords: + - "benchmark-email" + - "benchmark email" + - "marketing" + patterns: + - "(?i)benchmark.?email" + tags: + - "marketing" + - "email" + - "campaigns" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BENCHMARK_EMAIL_AUTH_TOKEN] +--- + +# Benchmark Email API + +Use the `http` tool. API key is automatically injected via `AuthToken` header — **never construct auth headers manually**. + +> Benchmark Email is an intuitive email-marketing platform that enables marketers to design mobile-responsive campaigns with drag-and-drop ease, segment contacts for targeted sends, and track real-time + +## Authentication + +This integration uses **API Key** authentication via the `AuthToken` header. +Format: `AuthToken: ...` + +## Required Credentials + +- `BENCHMARK_EMAIL_AUTH_TOKEN` — Auth Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/benzinga/SKILL.md b/skills/benzinga/SKILL.md new file mode 100644 index 00000000..ad78629c --- /dev/null +++ b/skills/benzinga/SKILL.md @@ -0,0 +1,45 @@ +--- +name: benzinga +version: "1.0.0" +description: Benzinga API — A real-time financial news and market data service that delivers breaking market +activation: + keywords: + - "benzinga" + - "financial data" + patterns: + - "(?i)benzinga" + tags: + - "tools" + - "financial-data" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BENZINGA_API_KEY] +--- + +# Benzinga API + +Use the `http` tool. API key is automatically injected as `token` query parameter. + +> A real-time financial news and market data service that delivers breaking market updates, analysis, earnings, and trading insights to investors, traders, and finance professionals. + +## Authentication + +This integration uses **query parameter** authentication via `token`. + +## Required Credentials + +- `BENZINGA_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/better-proposals/SKILL.md b/skills/better-proposals/SKILL.md new file mode 100644 index 00000000..f2571c21 --- /dev/null +++ b/skills/better-proposals/SKILL.md @@ -0,0 +1,47 @@ +--- +name: better-proposals +version: "1.0.0" +description: Better Proposals API — A web-based platform that enables businesses to create, customize, send +activation: + keywords: + - "better-proposals" + - "better proposals" + - "proposal software" + patterns: + - "(?i)better.?proposals" + tags: + - "tools" + - "proposal-software" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BETTER_PROPOSALS_API_TOKEN] +--- + +# Better Proposals API + +Use the `http` tool. API key is automatically injected via `Bptoken` header — **never construct auth headers manually**. + +> A web-based platform that enables businesses to create, customize, send, and track professional sales proposals and contracts with interactive elements, e-signatures, and analytics to streamline clien + +## Authentication + +This integration uses **API Key** authentication via the `Bptoken` header. +Format: `Bptoken: ...` + +## Required Credentials + +- `BETTER_PROPOSALS_API_TOKEN` — API Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/big-commerce/SKILL.md b/skills/big-commerce/SKILL.md new file mode 100644 index 00000000..7e8b2a0c --- /dev/null +++ b/skills/big-commerce/SKILL.md @@ -0,0 +1,61 @@ +--- +name: big-commerce +version: "1.0.0" +description: BigCommerce API — BigCommerce is an open SaaS eCommerce platform that enables businesses to build +activation: + keywords: + - "big-commerce" + - "bigcommerce" + - "ecommerce" + patterns: + - "(?i)big.?commerce" + tags: + - "tools" + - "ecommerce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BIG_COMMERCE_STORE_HASH, BIG_COMMERCE_ACCESS_TOKEN] +--- + +# BigCommerce API + +Use the `http` tool. API key is automatically injected via `X-Auth-Token` header — **never construct auth headers manually**. + +## Base URL + +`https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3` + +## Actions + +**List products:** +``` +http(method="GET", url="https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3/catalog/products?limit=10") +``` + +**Get product:** +``` +http(method="GET", url="https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3/catalog/products/{product_id}") +``` + +**Create product:** +``` +http(method="POST", url="https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3/catalog/products", body={"name": "Widget","type": "physical","weight": 1.0,"price": 29.99}) +``` + +**List orders:** +``` +http(method="GET", url="https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3/orders?limit=10") +``` + +**List customers:** +``` +http(method="GET", url="https://api.bigcommerce.com/stores/{BIGCOMMERCE_STORE_HASH}/v3/customers?limit=10") +``` + +## Notes + +- Auth via `X-Auth-Token` header (auto-injected). +- Products have `type`: `physical`, `digital`. +- Prices are decimals, weights in the store's configured unit. diff --git a/skills/bigquery/SKILL.md b/skills/bigquery/SKILL.md new file mode 100644 index 00000000..94ebcb00 --- /dev/null +++ b/skills/bigquery/SKILL.md @@ -0,0 +1,53 @@ +--- +name: bigquery +version: "1.0.0" +description: BigQuery API — BigQuery is a serverless, highly scalable +activation: + keywords: + - "bigquery" + - "ai" + patterns: + - "(?i)bigquery" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +--- + +# BigQuery API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://bigquery.googleapis.com/bigquery/v2` + +## Actions + +**List datasets:** +``` +http(method="GET", url="https://bigquery.googleapis.com/bigquery/v2/projects/{project_id}/datasets") +``` + +**List tables:** +``` +http(method="GET", url="https://bigquery.googleapis.com/bigquery/v2/projects/{project_id}/datasets/{dataset_id}/tables") +``` + +**Run query:** +``` +http(method="POST", url="https://bigquery.googleapis.com/bigquery/v2/projects/{project_id}/queries", body={"query": "SELECT * FROM `project.dataset.table` LIMIT 10","useLegacySql": false}) +``` + +**Get query results:** +``` +http(method="GET", url="https://bigquery.googleapis.com/bigquery/v2/projects/{project_id}/queries/{job_id}") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Queries use Standard SQL by default (`useLegacySql: false`). +- Large results: check `jobComplete` field; poll with `getQueryResults` if `false`. +- Table references: `project.dataset.table`. diff --git a/skills/blaze-meter-functional/SKILL.md b/skills/blaze-meter-functional/SKILL.md new file mode 100644 index 00000000..16da11a0 --- /dev/null +++ b/skills/blaze-meter-functional/SKILL.md @@ -0,0 +1,47 @@ +--- +name: blaze-meter-functional +version: "1.0.0" +description: BlazeMeter Functional API — BlazeMeter is a testing platform for web and API applications +activation: + keywords: + - "blaze-meter-functional" + - "blazemeter functional" + - "developer tool" + patterns: + - "(?i)blaze.?meter.?functional" + tags: + - "tools" + - "developer-tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BLAZE_METER_FUNCTIONAL_API_KEY, BLAZE_METER_FUNCTIONAL_API_SECRET, BLAZE_METER_ACCOUNT_ID] +--- + +# BlazeMeter Functional API + +Use the `http` tool. Credentials are automatically injected. + +> BlazeMeter is a testing platform for web and API applications, and its Functional API enables developers to programmatically create, manage, and run automated API tests to validate responses, workflow + +## Authentication + + +## Required Credentials + +- `BLAZE_METER_FUNCTIONAL_API_KEY` — API Key +- `BLAZE_METER_FUNCTIONAL_API_SECRET` — API Secret +- `BLAZE_METER_ACCOUNT_ID` — Account ID + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/blaze-meter-performance/SKILL.md b/skills/blaze-meter-performance/SKILL.md new file mode 100644 index 00000000..b3d93eba --- /dev/null +++ b/skills/blaze-meter-performance/SKILL.md @@ -0,0 +1,46 @@ +--- +name: blaze-meter-performance +version: "1.0.0" +description: BlazeMeter Performance API — BlazeMeter is a testing platform for web and API applications +activation: + keywords: + - "blaze-meter-performance" + - "blazemeter performance" + - "developer tool" + patterns: + - "(?i)blaze.?meter.?performance" + tags: + - "tools" + - "developer-tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BLAZE_METER_PERFORMANCE_API_KEY, BLAZE_METER_PERFORMANCE_API_SECRET] +--- + +# BlazeMeter Performance API + +Use the `http` tool. Credentials are automatically injected. + +> BlazeMeter is a testing platform for web and API applications, and its Performance API enables developers to programmatically create, configure, run, and retrieve results from large-scale performance + +## Authentication + + +## Required Credentials + +- `BLAZE_METER_PERFORMANCE_API_KEY` — API Key +- `BLAZE_METER_PERFORMANCE_API_SECRET` — API Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/blaze-meter-service-virtualization/SKILL.md b/skills/blaze-meter-service-virtualization/SKILL.md new file mode 100644 index 00000000..4740ca5b --- /dev/null +++ b/skills/blaze-meter-service-virtualization/SKILL.md @@ -0,0 +1,46 @@ +--- +name: blaze-meter-service-virtualization +version: "1.0.0" +description: BlazeMeter Service Virtualization API — BlazeMeter is a testing platform for web and API applications +activation: + keywords: + - "blaze-meter-service-virtualization" + - "blazemeter service virtualization" + - "developer tool" + patterns: + - "(?i)blaze.?meter.?service.?virtualization" + tags: + - "tools" + - "developer-tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BLAZE_METER_SERVICE_VIRTUALIZATION_API_KEY, BLAZE_METER_SERVICE_VIRTUALIZATION_API_SECRET] +--- + +# BlazeMeter Service Virtualization API + +Use the `http` tool. Credentials are automatically injected. + +> BlazeMeter is a testing platform for web and API applications, and its Service Virtualization API enables developers to programmatically create and manage virtual services that simulate APIs and syste + +## Authentication + + +## Required Credentials + +- `BLAZE_METER_SERVICE_VIRTUALIZATION_API_KEY` — API Key +- `BLAZE_METER_SERVICE_VIRTUALIZATION_API_SECRET` — API Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bluebeam/SKILL.md b/skills/bluebeam/SKILL.md new file mode 100644 index 00000000..c762700b --- /dev/null +++ b/skills/bluebeam/SKILL.md @@ -0,0 +1,38 @@ +--- +name: bluebeam +version: "1.0.0" +description: Bluebeam API — Bluebeam is a PDF-centric collaboration platform tailored for architecture +activation: + keywords: + - "bluebeam" + - "software" + patterns: + - "(?i)bluebeam" + tags: + - "software" + - "development" + - "tools" + max_context_tokens: 1200 +--- + +# Bluebeam API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Bluebeam is a PDF-centric collaboration platform tailored for architecture, engineering, and construction professionals, offering industry-grade markup, measurement, takeoff, and document management t + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bluesky/SKILL.md b/skills/bluesky/SKILL.md new file mode 100644 index 00000000..d1aff072 --- /dev/null +++ b/skills/bluesky/SKILL.md @@ -0,0 +1,61 @@ +--- +name: bluesky +version: "1.0.0" +description: Bluesky API — Bluesky is a decentralized social media platform built on the open-source AT Pro +activation: + keywords: + - "bluesky" + - "tools" + patterns: + - "(?i)bluesky" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BLUESKY_ACCESS_TOKEN, BLUESKY_ENTRYWAY] +--- + +# Bluesky API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://bsky.social/xrpc` + +## Actions + +**Create session (login):** +``` +http(method="POST", url="https://bsky.social/xrpc/com.atproto.server.createSession", body={"identifier": "your.handle","password": "app-password"}) +``` + +**Create post:** +``` +http(method="POST", url="https://bsky.social/xrpc/com.atproto.repo.createRecord", body={"repo": "did:plc:xxx","collection": "app.bsky.feed.post","record": {"text": "Hello Bluesky!","$type": "app.bsky.feed.post","createdAt": "2026-03-27T00:00:00Z"}}) +``` + +**Get profile:** +``` +http(method="GET", url="https://bsky.social/xrpc/app.bsky.actor.getProfile?actor=your.handle") +``` + +**Get timeline:** +``` +http(method="GET", url="https://bsky.social/xrpc/app.bsky.feed.getTimeline?limit=20") +``` + +**Search posts:** +``` +http(method="GET", url="https://bsky.social/xrpc/app.bsky.feed.searchPosts?q=search+term&limit=10") +``` + +## Notes + +- First create a session to get an access token. +- Posts are AT Protocol records in collection `app.bsky.feed.post`. +- Handles look like `username.bsky.social` or custom domains. +- DIDs are persistent identifiers: `did:plc:xxxxx`. diff --git a/skills/bookingmood/SKILL.md b/skills/bookingmood/SKILL.md new file mode 100644 index 00000000..08046131 --- /dev/null +++ b/skills/bookingmood/SKILL.md @@ -0,0 +1,45 @@ +--- +name: bookingmood +version: "1.0.0" +description: Bookingmood API — A flexible booking platform that lets rental and vacation property owners embed +activation: + keywords: + - "bookingmood" + - "booking software" + patterns: + - "(?i)bookingmood" + tags: + - "tools" + - "booking-software" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BOOKINGMOOD_API_KEY] +--- + +# Bookingmood API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> A flexible booking platform that lets rental and vacation property owners embed customizable calendars on their websites, manage availability and reservations, track payments, sync with external calen + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `BOOKINGMOOD_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bot-star/SKILL.md b/skills/bot-star/SKILL.md new file mode 100644 index 00000000..a8470fef --- /dev/null +++ b/skills/bot-star/SKILL.md @@ -0,0 +1,46 @@ +--- +name: bot-star +version: "1.0.0" +description: BotStar API — A visual bot-building platform that enables businesses to design, deploy +activation: + keywords: + - "bot-star" + - "botstar" + - "chatbot builder" + patterns: + - "(?i)bot.?star" + tags: + - "tools" + - "chatbot-builder" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BOT_STAR_API_TOKEN] +--- + +# BotStar API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> A visual bot-building platform that enables businesses to design, deploy, and manage AI-powered chatbots for websites, messaging apps, and customer support workflows without coding. + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `BOT_STAR_API_TOKEN` — API Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bouncer/SKILL.md b/skills/bouncer/SKILL.md new file mode 100644 index 00000000..ceee744e --- /dev/null +++ b/skills/bouncer/SKILL.md @@ -0,0 +1,46 @@ +--- +name: bouncer +version: "1.0.0" +description: Bouncer API — A cloud-based platform that verifies and cleans email lists by identifying inval +activation: + keywords: + - "bouncer" + - "email verification" + patterns: + - "(?i)bouncer" + tags: + - "tools" + - "email-verification" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BOUNCER_API_KEY] +--- + +# Bouncer API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> A cloud-based platform that verifies and cleans email lists by identifying invalid, risky, or disposable email addresses to improve deliverability, reduce bounce rates, and enhance email campaign perf + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `BOUNCER_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/box-hero/SKILL.md b/skills/box-hero/SKILL.md new file mode 100644 index 00000000..a5c81c45 --- /dev/null +++ b/skills/box-hero/SKILL.md @@ -0,0 +1,46 @@ +--- +name: box-hero +version: "1.0.0" +description: BoxHero API — A cloud-based inventory and stock management platform that enables businesses to +activation: + keywords: + - "box-hero" + - "boxhero" + - "inventory management" + patterns: + - "(?i)box.?hero" + tags: + - "tools" + - "inventory-management" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BOX_HERO_API_TOKEN] +--- + +# BoxHero API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> A cloud-based inventory and stock management platform that enables businesses to track products, manage warehouses, monitor stock levels in real time, and automate order fulfillment across sales chann + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `BOX_HERO_API_TOKEN` — API Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/box/SKILL.md b/skills/box/SKILL.md new file mode 100644 index 00000000..f6cf5b94 --- /dev/null +++ b/skills/box/SKILL.md @@ -0,0 +1,84 @@ +--- +name: box +version: "1.0.0" +description: Box API — files, folders, collaborations, search, comments +activation: + keywords: + - "box" + - "box.com" + - "box file" + exclude_keywords: + - "dropbox" + - "google drive" + patterns: + - "(?i)box\\.com.*(file|folder|share)" + - "(?i)(upload|download|share).*box" + tags: + - "file-storage" + - "cloud-storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BOX_ACCESS_TOKEN] +--- + +# Box Content API + +Use the `http` tool. Credentials are automatically injected for `api.box.com`. + +## Base URL + +`https://api.box.com/2.0` + +## Actions + +**Get folder items:** +``` +http(method="GET", url="https://api.box.com/2.0/folders//items?fields=id,name,type,modified_at,size&limit=20") +``` +Root folder ID is `"0"`. + +**Get file info:** +``` +http(method="GET", url="https://api.box.com/2.0/files/?fields=id,name,size,modified_at,shared_link") +``` + +**Search:** +``` +http(method="GET", url="https://api.box.com/2.0/search?query=report&type=file&limit=20") +``` + +**Create folder:** +``` +http(method="POST", url="https://api.box.com/2.0/folders", body={"name": "New Folder", "parent": {"id": "0"}}) +``` + +**Copy file:** +``` +http(method="POST", url="https://api.box.com/2.0/files//copy", body={"parent": {"id": ""}}) +``` + +**Create shared link:** +``` +http(method="PUT", url="https://api.box.com/2.0/files/?fields=shared_link", body={"shared_link": {"access": "open"}}) +``` + +**Add collaboration:** +``` +http(method="POST", url="https://api.box.com/2.0/collaborations", body={"item": {"type": "folder", "id": ""}, "accessible_by": {"type": "user", "login": "user@example.com"}, "role": "editor"}) +``` + +**Add comment:** +``` +http(method="POST", url="https://api.box.com/2.0/comments", body={"item": {"type": "file", "id": ""}, "message": "Please review"}) +``` + +## Notes + +- Root folder is always `"0"`. +- Collaboration roles: `editor`, `viewer`, `previewer`, `uploader`, `co-owner`. +- Shared link access: `open` (anyone), `company` (organization), `collaborators` (invited only). +- Use `fields` param to request specific properties. +- Pagination: `offset` + `limit`. Check `total_count`. +- File uploads use `https://upload.box.com/api/2.0/files/content` (different host). diff --git a/skills/breathe/SKILL.md b/skills/breathe/SKILL.md new file mode 100644 index 00000000..1aed512f --- /dev/null +++ b/skills/breathe/SKILL.md @@ -0,0 +1,46 @@ +--- +name: breathe +version: "1.0.0" +description: Breathe API — Breathe is a cloud-based HR software designed for small and medium-sized busines +activation: + keywords: + - "breathe" + - "hris" + patterns: + - "(?i)breathe" + tags: + - "tools" + - "hris" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BREATHE_API_KEY] +--- + +# Breathe API + +Use the `http` tool. API key is automatically injected via `X-API-KEY` header — **never construct auth headers manually**. + +> Breathe is a cloud-based HR software designed for small and medium-sized businesses, providing tools for managing employee records, leave requests, performance reviews, document storage, and reporting + +## Authentication + +This integration uses **API Key** authentication via the `X-API-KEY` header. +Format: `X-API-KEY: ...` + +## Required Credentials + +- `BREATHE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/brevo/SKILL.md b/skills/brevo/SKILL.md new file mode 100644 index 00000000..9410c852 --- /dev/null +++ b/skills/brevo/SKILL.md @@ -0,0 +1,76 @@ +--- +name: brevo +version: "1.0.0" +description: Brevo (Sendinblue) API — email campaigns, contacts, transactional email, SMS +activation: + keywords: + - "brevo" + - "sendinblue" + - "email campaign" + exclude_keywords: + - "mailchimp" + - "resend" + patterns: + - "(?i)(brevo|sendinblue).*(email|contact|campaign|sms)" + tags: + - "email" + - "marketing" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BREVO_API_KEY] +--- + +# Brevo API (formerly Sendinblue) + +Use the `http` tool. Include `api-key` header. + +## Base URL + +`https://api.brevo.com/v3` + +## Actions + +**Send transactional email:** +``` +http(method="POST", url="https://api.brevo.com/v3/smtp/email", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}], body={"sender": {"name": "My App", "email": "noreply@yourdomain.com"}, "to": [{"email": "recipient@example.com", "name": "John"}], "subject": "Welcome!", "htmlContent": "

Hello John

Welcome aboard.

"}) +``` + +**List contacts:** +``` +http(method="GET", url="https://api.brevo.com/v3/contacts?limit=20&offset=0", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}]) +``` + +**Create contact:** +``` +http(method="POST", url="https://api.brevo.com/v3/contacts", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}], body={"email": "new@example.com", "attributes": {"FIRSTNAME": "Alice", "LASTNAME": "Smith"}, "listIds": [1]}) +``` + +**Update contact:** +``` +http(method="PUT", url="https://api.brevo.com/v3/contacts/user@example.com", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}], body={"attributes": {"FIRSTNAME": "Updated"}}) +``` + +**List email campaigns:** +``` +http(method="GET", url="https://api.brevo.com/v3/emailCampaigns?limit=20&status=sent", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}]) +``` + +**Get campaign stats:** +``` +http(method="GET", url="https://api.brevo.com/v3/emailCampaigns/", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}]) +``` + +**Send SMS:** +``` +http(method="POST", url="https://api.brevo.com/v3/transactionalSMS/sms", headers=[{"name": "api-key", "value": "{BREVO_API_KEY}"}], body={"sender": "MyApp", "recipient": "+1234567890", "content": "Your code is 123456", "type": "transactional"}) +``` + +## Notes + +- Contact attributes are uppercase: `FIRSTNAME`, `LASTNAME`, `SMS`. +- `listIds` are integer IDs of contact lists. +- Campaign statuses: `draft`, `sent`, `queued`, `suspended`, `in_process`. +- Pagination: `limit` + `offset`. Check `count` for total. +- Transactional email returns `messageId` for tracking. diff --git a/skills/brex/SKILL.md b/skills/brex/SKILL.md new file mode 100644 index 00000000..7bab9d3e --- /dev/null +++ b/skills/brex/SKILL.md @@ -0,0 +1,37 @@ +--- +name: brex +version: "1.0.0" +description: Brex API — Brex combines corporate cards, business accounts, expense management, bill pay +activation: + keywords: + - "brex" + - "finance" + patterns: + - "(?i)brex" + tags: + - "tools" + - "finance" + max_context_tokens: 1200 +--- + +# Brex API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Brex combines corporate cards, business accounts, expense management, bill pay, and travel booking into a single AI-powered financial operations platform—offering unified spend control, real-time visi + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bright-data/SKILL.md b/skills/bright-data/SKILL.md new file mode 100644 index 00000000..5ee6dd51 --- /dev/null +++ b/skills/bright-data/SKILL.md @@ -0,0 +1,46 @@ +--- +name: bright-data +version: "1.0.0" +description: BrightData API — Bright Data (formerly Luminati) is a comprehensive web data platform offering a +activation: + keywords: + - "bright-data" + - "brightdata" + - "tools" + patterns: + - "(?i)bright.?data" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BRIGHT_DATA_API_KEY] +--- + +# BrightData API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Bright Data (formerly Luminati) is a comprehensive web data platform offering a global proxy network (residential, mobile, ISP, data center), browser-based scraping, SERP APIs, and managed data pipeli + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `BRIGHT_DATA_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/browse-ai/SKILL.md b/skills/browse-ai/SKILL.md new file mode 100644 index 00000000..aaa0b709 --- /dev/null +++ b/skills/browse-ai/SKILL.md @@ -0,0 +1,46 @@ +--- +name: browse-ai +version: "1.0.0" +description: Browse AI API — Browse AI is a no-code, AI-powered web scraping and monitoring platform that ena +activation: + keywords: + - "browse-ai" + - "browse ai" + - "scraper" + patterns: + - "(?i)browse.?ai" + tags: + - "tools" + - "scraper" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BROWSE_AI_API_KEY] +--- + +# Browse AI API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Browse AI is a no-code, AI-powered web scraping and monitoring platform that enables users to extract structured data from any website, set automated alerts for changes, and funnel the output into spr + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `BROWSE_AI_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/browserbase/SKILL.md b/skills/browserbase/SKILL.md new file mode 100644 index 00000000..e3a05b96 --- /dev/null +++ b/skills/browserbase/SKILL.md @@ -0,0 +1,51 @@ +--- +name: browserbase +version: "1.0.0" +description: Browserbase API — Browserbase is a cloud platform that lets developers run headless browsers at sc +activation: + keywords: + - "browserbase" + - "ai" + patterns: + - "(?i)browserbase" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BROWSERBASE_API_KEY] +--- + +# Browserbase API + +Use the `http` tool. API key is automatically injected via `X-BB-API-Key` header — **never construct auth headers manually**. + +## Base URL + +`https://api.browserbase.com/v1` + +## Actions + +**Create session:** +``` +http(method="POST", url="https://api.browserbase.com/v1/sessions", body={"projectId": ""}) +``` + +**List sessions:** +``` +http(method="GET", url="https://api.browserbase.com/v1/sessions?limit=10") +``` + +**Get session:** +``` +http(method="GET", url="https://api.browserbase.com/v1/sessions/{session_id}") +``` + +## Notes + +- Sessions provide a headless browser instance. +- Connect via CDP (Chrome DevTools Protocol) using the session's debug URL. +- Project ID is required for session creation. diff --git a/skills/bug-bug/SKILL.md b/skills/bug-bug/SKILL.md new file mode 100644 index 00000000..29921c25 --- /dev/null +++ b/skills/bug-bug/SKILL.md @@ -0,0 +1,47 @@ +--- +name: bug-bug +version: "1.0.0" +description: BugBug API — A no-code testing platform that automatically crawls websites and web apps to de +activation: + keywords: + - "bug-bug" + - "bugbug" + - "bug detection" + patterns: + - "(?i)bug.?bug" + tags: + - "tools" + - "bug-detection" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BUG_BUG_API_KEY] +--- + +# BugBug API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> A no-code testing platform that automatically crawls websites and web apps to detect visual issues, broken links, and UI regressions, helping teams maintain quality, catch bugs early, and streamline Q + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Token ...` + +## Required Credentials + +- `BUG_BUG_API_KEY` — API key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/bug-herd/SKILL.md b/skills/bug-herd/SKILL.md new file mode 100644 index 00000000..2ca79c91 --- /dev/null +++ b/skills/bug-herd/SKILL.md @@ -0,0 +1,46 @@ +--- +name: bug-herd +version: "1.0.0" +description: BugHerd API — A web-based issue and feedback tracking tool that lets teams capture visual bugs +activation: + keywords: + - "bug-herd" + - "bugherd" + - "bug tracking" + patterns: + - "(?i)bug.?herd" + tags: + - "tools" + - "bug-tracking" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BUG_HERD_USERNAME, BUG_HERD_PASSWORD] +--- + +# BugHerd API + +Use the `http` tool. Credentials are automatically injected. + +> A web-based issue and feedback tracking tool that lets teams capture visual bugs directly on web pages, annotate problems, manage tickets, and collaborate on fixes for faster design and development cy + +## Authentication + + +## Required Credentials + +- `BUG_HERD_USERNAME` — API Key +- `BUG_HERD_PASSWORD` — Password + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/byte-forms/SKILL.md b/skills/byte-forms/SKILL.md new file mode 100644 index 00000000..5358176a --- /dev/null +++ b/skills/byte-forms/SKILL.md @@ -0,0 +1,47 @@ +--- +name: byte-forms +version: "1.0.0" +description: ByteForms API — A no-code form creation tool that enables businesses to design, deploy +activation: + keywords: + - "byte-forms" + - "byteforms" + - "form builder" + patterns: + - "(?i)byte.?forms" + tags: + - "tools" + - "form-builder" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [BYTE_FORMS_API_KEY] +--- + +# ByteForms API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> A no-code form creation tool that enables businesses to design, deploy, and embed customizable online forms for data collection, surveys, and customer feedback with optional logic and integrations. + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: ...` + +## Required Credentials + +- `BYTE_FORMS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/calcom/SKILL.md b/skills/calcom/SKILL.md new file mode 100644 index 00000000..8f2d3910 --- /dev/null +++ b/skills/calcom/SKILL.md @@ -0,0 +1,81 @@ +--- +name: calcom +version: "1.0.0" +description: Cal.com API v2 — event types, bookings, availability, schedules +activation: + keywords: + - "cal.com" + - "calcom" + - "cal dot com" + exclude_keywords: + - "calendly" + - "google calendar" + patterns: + - "(?i)cal\\.?com.*(event|booking|availability|schedule)" + tags: + - "scheduling" + - "calendar" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CALCOM_API_KEY] +--- + +# Cal.com API v2 + +Use the `http` tool. Credentials are automatically injected for `api.cal.com`. + +## Base URL + +`https://api.cal.com/v2` + +## Actions + +**List event types:** +``` +http(method="GET", url="https://api.cal.com/v2/event-types") +``` + +**Get event type:** +``` +http(method="GET", url="https://api.cal.com/v2/event-types/") +``` + +**List bookings:** +``` +http(method="GET", url="https://api.cal.com/v2/bookings?status=upcoming&take=20") +``` + +**Get booking:** +``` +http(method="GET", url="https://api.cal.com/v2/bookings/") +``` + +**Create booking:** +``` +http(method="POST", url="https://api.cal.com/v2/bookings", body={"eventTypeId": 123, "start": "2026-04-01T10:00:00Z", "attendee": {"name": "John Doe", "email": "john@example.com", "timeZone": "America/New_York"}, "metadata": {}}) +``` + +**Cancel booking:** +``` +http(method="POST", url="https://api.cal.com/v2/bookings//cancel", body={"cancellationReason": "Schedule conflict"}) +``` + +**Get availability:** +``` +http(method="GET", url="https://api.cal.com/v2/slots/available?startTime=2026-04-01T00:00:00Z&endTime=2026-04-07T00:00:00Z&eventTypeId=123") +``` + +**List schedules:** +``` +http(method="GET", url="https://api.cal.com/v2/schedules") +``` + +## Notes + +- Responses: `{"status": "success", "data": {...}}`. +- Booking status: `upcoming`, `recurring`, `past`, `cancelled`, `unconfirmed`. +- Times are always UTC (ISO 8601). Attendee specifies their timezone. +- Booking UIDs are UUID strings. +- Use `take` and `skip` for pagination. diff --git a/skills/calendly/SKILL.md b/skills/calendly/SKILL.md new file mode 100644 index 00000000..60ae450a --- /dev/null +++ b/skills/calendly/SKILL.md @@ -0,0 +1,77 @@ +--- +name: calendly +version: "1.0.0" +description: Calendly API v2 — event types, scheduled events, invitees +activation: + keywords: + - "calendly" + - "calendly event" + - "booking" + - "scheduling link" + exclude_keywords: + - "cal.com" + - "google calendar" + patterns: + - "(?i)calendly.*(event|booking|invitee|schedule)" + tags: + - "scheduling" + - "calendar" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CALENDLY_ACCESS_TOKEN] +--- + +# Calendly API v2 + +Use the `http` tool. Credentials are automatically injected for `api.calendly.com`. + +## Base URL + +`https://api.calendly.com` + +## Actions + +**Get current user:** +``` +http(method="GET", url="https://api.calendly.com/users/me") +``` + +**List event types:** +``` +http(method="GET", url="https://api.calendly.com/event_types?user=&count=20") +``` + +**List scheduled events:** +``` +http(method="GET", url="https://api.calendly.com/scheduled_events?user=&min_start_time=2026-03-27T00:00:00Z&max_start_time=2026-04-30T00:00:00Z&status=active&count=20") +``` + +**Get event details:** +``` +http(method="GET", url="https://api.calendly.com/scheduled_events/") +``` + +**List invitees for event:** +``` +http(method="GET", url="https://api.calendly.com/scheduled_events//invitees?count=20") +``` + +**Cancel event:** +``` +http(method="POST", url="https://api.calendly.com/scheduled_events//cancellation", body={"reason": "Schedule conflict"}) +``` + +**List organization members:** +``` +http(method="GET", url="https://api.calendly.com/organization_memberships?organization=") +``` + +## Notes + +- Resources are identified by URIs (e.g., `https://api.calendly.com/users/ABCDEF123456`), not plain IDs. +- First call `GET /users/me` to get your `uri` and `current_organization`. +- Event status: `active`, `canceled`. +- Pagination: use `page_token` from `pagination.next_page_token`. +- Dates are ISO 8601 with timezone (UTC recommended). diff --git a/skills/canva/SKILL.md b/skills/canva/SKILL.md new file mode 100644 index 00000000..c107df2f --- /dev/null +++ b/skills/canva/SKILL.md @@ -0,0 +1,51 @@ +--- +name: canva +version: "1.0.0" +description: Canva API — Canva is a cloud-based graphic design platform with a drag‑and‑drop editor +activation: + keywords: + - "canva" + - "tools" + patterns: + - "(?i)canva" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +--- + +# Canva API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.canva.com/rest/v1` + +## Actions + +**List designs:** +``` +http(method="GET", url="https://api.canva.com/rest/v1/designs?limit=10") +``` + +**Get design:** +``` +http(method="GET", url="https://api.canva.com/rest/v1/designs/{design_id}") +``` + +**Create design:** +``` +http(method="POST", url="https://api.canva.com/rest/v1/designs", body={"title": "My Design","design_type": {"type": "preset","name": "doc"}}) +``` + +**Export design:** +``` +http(method="POST", url="https://api.canva.com/rest/v1/designs/{design_id}/exports", body={"format": {"type": "png"}}) +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Design types: `doc`, `presentation`, `whiteboard`, `social_media`. +- Export formats: `png`, `jpg`, `pdf`, `svg`, `mp4`. diff --git a/skills/capsule/SKILL.md b/skills/capsule/SKILL.md new file mode 100644 index 00000000..02dfa1c0 --- /dev/null +++ b/skills/capsule/SKILL.md @@ -0,0 +1,39 @@ +--- +name: capsule +version: "1.0.0" +description: Capsule API — Capsule CRM is a streamlined cloud-based CRM designed for small businesses and s +activation: + keywords: + - "capsule" + - "crm" + patterns: + - "(?i)capsule" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +--- + +# Capsule API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Capsule CRM is a streamlined cloud-based CRM designed for small businesses and sales teams, furnishing contact and organisation management, sales pipelines, tasks, projects, and analytics in one place + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/cats/SKILL.md b/skills/cats/SKILL.md new file mode 100644 index 00000000..dd73edda --- /dev/null +++ b/skills/cats/SKILL.md @@ -0,0 +1,46 @@ +--- +name: cats +version: "1.0.0" +description: CATS API — CATS is a web-based applicant tracking system designed for recruiting agencies a +activation: + keywords: + - "cats" + - "ats" + patterns: + - "(?i)cats" + tags: + - "tools" + - "ats" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CATS_API_KEY] +--- + +# CATS API + +Use the `http` tool. API key is automatically injected via `authorization` header — **never construct auth headers manually**. + +> CATS is a web-based applicant tracking system designed for recruiting agencies and HR teams, offering tools for job posting, resume parsing, candidate tracking, custom workflows, analytics, and integr + +## Authentication + +This integration uses **API Key** authentication via the `authorization` header. +Format: `authorization: Token ...` + +## Required Credentials + +- `CATS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/central-station-crm/SKILL.md b/skills/central-station-crm/SKILL.md new file mode 100644 index 00000000..16fa4822 --- /dev/null +++ b/skills/central-station-crm/SKILL.md @@ -0,0 +1,49 @@ +--- +name: central-station-crm +version: "1.0.0" +description: Central Station CRM API — CentralStationCRM is a lightweight CRM designed for small businesses to manage c +activation: + keywords: + - "central-station-crm" + - "central station crm" + - "crm" + patterns: + - "(?i)central.?station.?crm" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CENTRAL_STATION_CRM_API_KEY] +--- + +# Central Station CRM API + +Use the `http` tool. API key is automatically injected via `X-apikey` header — **never construct auth headers manually**. + +> CentralStationCRM is a lightweight CRM designed for small businesses to manage contacts, track deals, organize tasks and streamline customer relationships with a simple, user-friendly interface. + +## Authentication + +This integration uses **API Key** authentication via the `X-apikey` header. +Format: `X-apikey: ...` + +## Required Credentials + +- `CENTRAL_STATION_CRM_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/chargebee/SKILL.md b/skills/chargebee/SKILL.md new file mode 100644 index 00000000..d1c5414b --- /dev/null +++ b/skills/chargebee/SKILL.md @@ -0,0 +1,65 @@ +--- +name: chargebee +version: "1.0.0" +description: Chargebee API — Chargebee is a subscription billing and revenue operations platform that helps S +activation: + keywords: + - "chargebee" + - "crm" + patterns: + - "(?i)chargebee" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CHARGEBEE_SUBDOMAIN, CHARGEBEE_API_KEY] +--- + +# Chargebee API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://{CHARGEBEE_SITE}.chargebee.com/api/v2` + +**Content-Type**: `application/x-www-form-urlencoded` for POST/PUT requests. + +## Actions + +**List subscriptions:** +``` +http(method="GET", url="https://{CHARGEBEE_SITE}.chargebee.com/api/v2/subscriptions?limit=10") +``` + +**Get subscription:** +``` +http(method="GET", url="https://{CHARGEBEE_SITE}.chargebee.com/api/v2/subscriptions/{subscription_id}") +``` + +**Create subscription:** +``` +http(method="POST", url="https://{CHARGEBEE_SITE}.chargebee.com/api/v2/subscriptions", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="customer[email]=john@example.com&plan_id=basic-monthly") +``` + +**List customers:** +``` +http(method="GET", url="https://{CHARGEBEE_SITE}.chargebee.com/api/v2/customers?limit=10") +``` + +**List invoices:** +``` +http(method="GET", url="https://{CHARGEBEE_SITE}.chargebee.com/api/v2/invoices?limit=10&sort_by[asc]=date") +``` + +## Notes + +- Uses Basic auth with API key as username and empty password. +- POST bodies are form-encoded with bracket notation: `customer[email]=...`. +- Subscription states: `future`, `in_trial`, `active`, `non_renewing`, `paused`, `cancelled`. +- Pagination: `offset` key in response; pass as `?offset=...` for next page. diff --git a/skills/circle-ci/SKILL.md b/skills/circle-ci/SKILL.md new file mode 100644 index 00000000..9897f863 --- /dev/null +++ b/skills/circle-ci/SKILL.md @@ -0,0 +1,63 @@ +--- +name: circle-ci +version: "1.0.0" +description: Circle CI API — CircleCI is a continuous integration and delivery (CI/CD) platform that automate +activation: + keywords: + - "circle-ci" + - "circle ci" + - "devops" + patterns: + - "(?i)circle.?ci" + tags: + - "devops" + - "ci-cd" + - "deployment" + - "dev-ops" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CIRCLE_CI_API_KEY] +--- + +# Circle CI API + +Use the `http` tool. API key is automatically injected via `Circle-Token` header — **never construct auth headers manually**. + +## Base URL + +`https://circleci.com/api/v2` + +## Actions + +**Get current user:** +``` +http(method="GET", url="https://circleci.com/api/v2/me") +``` + +**List pipelines:** +``` +http(method="GET", url="https://circleci.com/api/v2/project/{project_slug}/pipeline?branch=main") +``` + +**Get pipeline:** +``` +http(method="GET", url="https://circleci.com/api/v2/pipeline/{pipeline_id}") +``` + +**List workflows:** +``` +http(method="GET", url="https://circleci.com/api/v2/pipeline/{pipeline_id}/workflow") +``` + +**Trigger pipeline:** +``` +http(method="POST", url="https://circleci.com/api/v2/project/{project_slug}/pipeline", body={"branch": "main","parameters": {}}) +``` + +## Notes + +- Project slug format: `gh/{org}/{repo}` or `bb/{org}/{repo}`. +- Pipeline statuses: `created`, `errored`, `setup-pending`, `setup`, `pending`. +- Workflow statuses: `success`, `running`, `not_run`, `failed`, `error`, `failing`, `on_hold`, `canceled`. diff --git a/skills/clerk/SKILL.md b/skills/clerk/SKILL.md new file mode 100644 index 00000000..4a1003d1 --- /dev/null +++ b/skills/clerk/SKILL.md @@ -0,0 +1,68 @@ +--- +name: clerk +version: "1.0.0" +description: Clerk API — Clerk provides user authentication and user management solutions for modern web +activation: + keywords: + - "clerk" + - "crm" + patterns: + - "(?i)clerk" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CLERK_API_KEY] +--- + +# Clerk API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.clerk.com/v1` + +## Actions + +**List users:** +``` +http(method="GET", url="https://api.clerk.com/v1/users?limit=10&order_by=-created_at") +``` + +**Get user:** +``` +http(method="GET", url="https://api.clerk.com/v1/users/{user_id}") +``` + +**Create user:** +``` +http(method="POST", url="https://api.clerk.com/v1/users", body={"email_address": ["john@example.com"],"first_name": "John","last_name": "Doe","password": "SecureP@ss1"}) +``` + +**Update user:** +``` +http(method="PATCH", url="https://api.clerk.com/v1/users/{user_id}", body={"first_name": "Jane"}) +``` + +**Delete user:** +``` +http(method="DELETE", url="https://api.clerk.com/v1/users/{user_id}") +``` + +**List organizations:** +``` +http(method="GET", url="https://api.clerk.com/v1/organizations?limit=10") +``` + +## Notes + +- User IDs start with `user_`. +- Email addresses are arrays — users can have multiple. +- Use `?query=` for fuzzy search across name/email. +- Pagination: `limit` + `offset`. diff --git a/skills/click-house/SKILL.md b/skills/click-house/SKILL.md new file mode 100644 index 00000000..6e7e710a --- /dev/null +++ b/skills/click-house/SKILL.md @@ -0,0 +1,52 @@ +--- +name: click-house +version: "1.0.0" +description: ClickHouse API — ClickHouse is an ultra-fast, column-oriented database designed for real-time ana +activation: + keywords: + - "click-house" + - "clickhouse" + - "analytics" + patterns: + - "(?i)click.?house" + tags: + - "analytics" + - "data" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CLICK_HOUSE_API_KEY, CLICK_HOUSE_SECRET_KEY] +--- + +# ClickHouse API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://{CLICKHOUSE_HOST}:8443` + +## Actions + +**Run query:** +``` +http(method="POST", url="https://{CLICKHOUSE_HOST}:8443/?query=SELECT+1") +``` + +**List tables:** +``` +http(method="POST", url="https://{CLICKHOUSE_HOST}:8443/?query=SHOW+TABLES+FROM+default") +``` + +**Insert data:** +``` +http(method="POST", url="https://{CLICKHOUSE_HOST}:8443/?query=INSERT+INTO+table+FORMAT+JSONEachRow", body=[{"col1": "value1","col2": 42}]) +``` + +## Notes + +- ClickHouse uses HTTP interface on port 8443 (HTTPS) or 8123 (HTTP). +- Pass SQL in `query` parameter or POST body. +- Output formats: `JSON`, `JSONEachRow`, `CSV`, `TSV`. +- Auth: Basic auth or `X-ClickHouse-User`/`X-ClickHouse-Key` headers. diff --git a/skills/click-send/SKILL.md b/skills/click-send/SKILL.md new file mode 100644 index 00000000..b879b04d --- /dev/null +++ b/skills/click-send/SKILL.md @@ -0,0 +1,52 @@ +--- +name: click-send +version: "1.0.0" +description: ClickSend API — A cloud-based messaging and communication service that enables businesses to sen +activation: + keywords: + - "click-send" + - "clicksend" + - "communication" + patterns: + - "(?i)click.?send" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CLICK_SEND_USERNAME, CLICK_SEND_PASSWORD] +--- + +# ClickSend API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://rest.clicksend.com/v3` + +## Actions + +**Send SMS:** +``` +http(method="POST", url="https://rest.clicksend.com/v3/sms/send", body={"messages": [{"to": "+1234567890","body": "Hello!","source": "sdk"}]}) +``` + +**Get SMS history:** +``` +http(method="GET", url="https://rest.clicksend.com/v3/sms/history?page=1&limit=10") +``` + +**Send email:** +``` +http(method="POST", url="https://rest.clicksend.com/v3/email/send", body={"to": [{"email": "recipient@example.com","name": "John"}],"from": {"email": "sender@example.com"},"subject": "Hello","body": "

Content

"}) +``` + +## Notes + +- Uses Basic auth with username and API key. +- SMS `to` must include country code (e.g., `+1234567890`). +- Supports SMS, MMS, email, voice, fax, and postal mail. diff --git a/skills/clickup/SKILL.md b/skills/clickup/SKILL.md new file mode 100644 index 00000000..2e3730ba --- /dev/null +++ b/skills/clickup/SKILL.md @@ -0,0 +1,83 @@ +--- +name: clickup +version: "1.0.0" +description: ClickUp API v2 — tasks, spaces, lists, comments, time tracking +activation: + keywords: + - "clickup" + - "clickup task" + - "clickup space" + exclude_keywords: + - "jira" + - "asana" + patterns: + - "(?i)clickup.*(task|space|list|folder)" + - "(?i)(create|list|update).*clickup" + tags: + - "project-management" + - "task-management" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [CLICKUP_API_TOKEN] +--- + +# ClickUp API v2 + +Use the `http` tool. Credentials are automatically injected for `api.clickup.com`. + +## Base URL + +`https://api.clickup.com/api/v2` + +## Actions + +**List workspaces (teams):** +``` +http(method="GET", url="https://api.clickup.com/api/v2/team") +``` + +**List spaces:** +``` +http(method="GET", url="https://api.clickup.com/api/v2/team//space") +``` + +**List folders in space:** +``` +http(method="GET", url="https://api.clickup.com/api/v2/space//folder") +``` + +**List tasks in a list:** +``` +http(method="GET", url="https://api.clickup.com/api/v2/list//task?page=0&subtasks=true&include_closed=false") +``` + +**Get task:** +``` +http(method="GET", url="https://api.clickup.com/api/v2/task/") +``` + +**Create task:** +``` +http(method="POST", url="https://api.clickup.com/api/v2/list//task", body={"name": "Task name", "description": "Details", "status": "to do", "priority": 2, "due_date": 1775000000000, "assignees": [123456]}) +``` + +**Update task:** +``` +http(method="PUT", url="https://api.clickup.com/api/v2/task/", body={"status": "in progress", "priority": 1}) +``` + +**Add comment:** +``` +http(method="POST", url="https://api.clickup.com/api/v2/task//comment", body={"comment_text": "My comment"}) +``` + +## Notes + +- Priority: 1=Urgent, 2=High, 3=Normal, 4=Low. +- Due dates are Unix timestamps in **milliseconds**. +- Status values are lowercase strings matching your workspace statuses. +- Task IDs are alphanumeric strings like `"abc123"`. +- Hierarchy: Team → Space → Folder → List → Task. +- Pagination: `page` param (0-indexed). Returns empty array when no more. diff --git a/skills/close/SKILL.md b/skills/close/SKILL.md new file mode 100644 index 00000000..e7c6a4fb --- /dev/null +++ b/skills/close/SKILL.md @@ -0,0 +1,59 @@ +--- +name: close +version: "1.0.0" +description: Close API — Close is a sales engagement CRM designed to help inside sales teams close more d +activation: + keywords: + - "close" + - "crm" + patterns: + - "(?i)close" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +--- + +# Close API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.close.com/api/v1` + +## Actions + +**List leads:** +``` +http(method="GET", url="https://api.close.com/api/v1/lead/?_limit=10") +``` + +**Get lead:** +``` +http(method="GET", url="https://api.close.com/api/v1/lead/{lead_id}/") +``` + +**Create lead:** +``` +http(method="POST", url="https://api.close.com/api/v1/lead/", body={"name": "Acme Corp","contacts": [{"name": "John Doe","emails": [{"email": "john@acme.com","type": "office"}]}]}) +``` + +**Search leads:** +``` +http(method="POST", url="https://api.close.com/api/v1/data/search/", body={"query": {"type": "and","queries": [{"type": "field_condition","field": {"field_name": "lead_name"},"condition": {"type": "text","mode": "full_words","value": "Acme"}}]},"results_limit": 10}) +``` + +**List activities:** +``` +http(method="GET", url="https://api.close.com/api/v1/activity/?_limit=10") +``` + +## Notes + +- Uses API key as Basic auth username (no password). +- Lead IDs start with `lead_`. +- Activities: `EmailThread`, `Call`, `SMS`, `Note`, `Meeting`. +- Pagination: `_skip` and `_limit` params. diff --git a/skills/cloudinary/SKILL.md b/skills/cloudinary/SKILL.md new file mode 100644 index 00000000..d5d6c043 --- /dev/null +++ b/skills/cloudinary/SKILL.md @@ -0,0 +1,58 @@ +--- +name: cloudinary +version: "1.0.0" +description: Cloudinary API — Cloudinary is a cloud-based media management platform that enables developers an +activation: + keywords: + - "cloudinary" + - "media management" + patterns: + - "(?i)cloudinary" + tags: + - "tools" + - "media-management" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CLOUDINARY_USERNAME, CLOUDINARY_PASSWORD, CLOUDINARY_CLOUD_NAME] +--- + +# Cloudinary API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://api.cloudinary.com/v1_1/{CLOUDINARY_CLOUD_NAME}` + +**Content-Type**: `application/x-www-form-urlencoded` for POST/PUT requests. + +## Actions + +**Upload image:** +``` +http(method="POST", url="https://api.cloudinary.com/v1_1/{CLOUDINARY_CLOUD_NAME}/image/upload", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="file=https://example.com/image.jpg&upload_preset=my_preset") +``` + +**Get resource details:** +``` +http(method="GET", url="https://api.cloudinary.com/v1_1/{CLOUDINARY_CLOUD_NAME}/resources/image/upload/{public_id}") +``` + +**List resources:** +``` +http(method="GET", url="https://api.cloudinary.com/v1_1/{CLOUDINARY_CLOUD_NAME}/resources/image?max_results=10") +``` + +**Delete resource:** +``` +http(method="DELETE", url="https://api.cloudinary.com/v1_1/{CLOUDINARY_CLOUD_NAME}/resources/image/upload?public_ids[]={public_id}") +``` + +## Notes + +- Uses Basic auth with API key and secret. +- Upload accepts URL, base64, or file. +- Transformations via URL: `https://res.cloudinary.com/{cloud}/image/upload/w_300,h_200,c_fill/{public_id}`. +- Upload presets define default transformations and folders. diff --git a/skills/clover/SKILL.md b/skills/clover/SKILL.md new file mode 100644 index 00000000..77805da8 --- /dev/null +++ b/skills/clover/SKILL.md @@ -0,0 +1,37 @@ +--- +name: clover +version: "1.0.0" +description: Clover API — Clover is a point-of-sale and business management system that helps businesses a +activation: + keywords: + - "clover" + - "pos" + patterns: + - "(?i)clover" + tags: + - "tools" + - "POS" + max_context_tokens: 1200 +--- + +# Clover API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Clover is a point-of-sale and business management system that helps businesses accept payments, track sales, manage inventory, and run operations from one integrated platform. + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/cockroach-labs/SKILL.md b/skills/cockroach-labs/SKILL.md new file mode 100644 index 00000000..cfc78373 --- /dev/null +++ b/skills/cockroach-labs/SKILL.md @@ -0,0 +1,47 @@ +--- +name: cockroach-labs +version: "1.0.0" +description: Cockroach Labs API — Cockroach Labs develops a distributed SQL database designed for cloud applicatio +activation: + keywords: + - "cockroach-labs" + - "cockroach labs" + - "cloud database" + patterns: + - "(?i)cockroach.?labs" + tags: + - "tools" + - "cloud-database" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [COCKROACH_LABS_API_KEY] +--- + +# Cockroach Labs API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Cockroach Labs develops a distributed SQL database designed for cloud applications, providing scalable, resilient, strongly consistent data storage with multi-region replication, automatic failover, a + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Bearer ...` + +## Required Credentials + +- `COCKROACH_LABS_API_KEY` — API Keys + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/coda/SKILL.md b/skills/coda/SKILL.md new file mode 100644 index 00000000..5f714696 --- /dev/null +++ b/skills/coda/SKILL.md @@ -0,0 +1,61 @@ +--- +name: coda +version: "1.0.0" +description: Coda API — Coda is an all-in-one collaborative workspace that blends the flexibility of doc +activation: + keywords: + - "coda" + - "productivity" + patterns: + - "(?i)coda" + tags: + - "productivity" + - "collaboration" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CODA_ACCESS_TOKEN] +--- + +# Coda API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://coda.io/apis/v1` + +## Actions + +**List docs:** +``` +http(method="GET", url="https://coda.io/apis/v1/docs?limit=10") +``` + +**Get doc:** +``` +http(method="GET", url="https://coda.io/apis/v1/docs/{doc_id}") +``` + +**List tables:** +``` +http(method="GET", url="https://coda.io/apis/v1/docs/{doc_id}/tables") +``` + +**List rows:** +``` +http(method="GET", url="https://coda.io/apis/v1/docs/{doc_id}/tables/{table_id}/rows?limit=20") +``` + +**Insert row:** +``` +http(method="POST", url="https://coda.io/apis/v1/docs/{doc_id}/tables/{table_id}/rows", body={"rows": [{"cells": [{"column": "Name","value": "John"},{"column": "Email","value": "john@example.com"}]}]}) +``` + +## Notes + +- Doc IDs are alphanumeric strings. +- Tables can be referenced by name or ID. +- Row values reference columns by name or ID. +- Pagination: `pageToken` from response's `nextPageToken`. diff --git a/skills/conductor/SKILL.md b/skills/conductor/SKILL.md new file mode 100644 index 00000000..9b104e55 --- /dev/null +++ b/skills/conductor/SKILL.md @@ -0,0 +1,45 @@ +--- +name: conductor +version: "1.0.0" +description: Conductor API — Conductor is an enterprise-scale website optimization and AI-powered intelligenc +activation: + keywords: + - "conductor" + - "tools" + patterns: + - "(?i)conductor" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CONDUCTOR_API_KEY] +--- + +# Conductor API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Conductor is an enterprise-scale website optimization and AI-powered intelligence platform that combines SEO, AI-generated content suggestions, and continuous site health monitoring—empowering marketi + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `CONDUCTOR_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/contentstack-content-delivery/SKILL.md b/skills/contentstack-content-delivery/SKILL.md new file mode 100644 index 00000000..60b23a0d --- /dev/null +++ b/skills/contentstack-content-delivery/SKILL.md @@ -0,0 +1,49 @@ +--- +name: contentstack-content-delivery +version: "1.0.0" +description: Contentstack Content Delivery API — Contentstack Content Delivery API is a high-performance +activation: + keywords: + - "contentstack-content-delivery" + - "contentstack content delivery" + - "tools" + patterns: + - "(?i)contentstack.?content.?delivery" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CONTENTSTACK_CONTENT_DELIVERY_BASE_URL, CONTENTSTACK_CONTENT_DELIVERY_STACK_API_KEY, CONTENTSTACK_CONTENT_DELIVERY_DELIVERY_TOKEN] +--- + +# Contentstack Content Delivery API + +Use the `http` tool. API key is automatically injected via `api_key` header — **never construct auth headers manually**. + +> Contentstack Content Delivery API is a high-performance, read-only REST and GraphQL service that retrieves published content from your headless CMS via a global CDN—supporting efficient queries, cachi + +## Authentication + +This integration uses **API Key** authentication via the `api_key` header. +Format: `api_key: ...` + +## Required Credentials + +- `CONTENTSTACK_CONTENT_DELIVERY_BASE_URL` — Base URL +- `CONTENTSTACK_CONTENT_DELIVERY_STACK_API_KEY` — Stack API Key +- `CONTENTSTACK_CONTENT_DELIVERY_DELIVERY_TOKEN` — Delivery Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/contentstack-content-management/SKILL.md b/skills/contentstack-content-management/SKILL.md new file mode 100644 index 00000000..a76d94f4 --- /dev/null +++ b/skills/contentstack-content-management/SKILL.md @@ -0,0 +1,46 @@ +--- +name: contentstack-content-management +version: "1.0.0" +description: Contentstack Content Management API — Contentstack’s Content Management API is a powerful +activation: + keywords: + - "contentstack-content-management" + - "contentstack content management" + - "tools" + patterns: + - "(?i)contentstack.?content.?management" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CONTENTSTACK_CONTENT_MANAGEMENT_STACK_API_KEY] +--- + +# Contentstack Content Management API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Contentstack’s Content Management API is a powerful, API-first REST interface that enables developers to programmatically create, update, delete, and structure content—supporting secure token-based ac + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Required Credentials + +- `CONTENTSTACK_CONTENT_MANAGEMENT_STACK_API_KEY` — Stack API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/convex-deployment/SKILL.md b/skills/convex-deployment/SKILL.md new file mode 100644 index 00000000..6db7ab93 --- /dev/null +++ b/skills/convex-deployment/SKILL.md @@ -0,0 +1,48 @@ +--- +name: convex-deployment +version: "1.0.0" +description: Convex Deployment API — Convex Deployment enables developers to deploy backend functions +activation: + keywords: + - "convex-deployment" + - "convex deployment" + - "tools" + patterns: + - "(?i)convex.?deployment" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CONVEX_DEPLOYMENT_DEPLOY_KEY, CONVEX_DEPLOYMENT_BASE_URL] +--- + +# Convex Deployment API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Convex Deployment enables developers to deploy backend functions, database schema, indexes, and configuration for applications built on the Convex platform. It supports development, preview, and produ + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Convex ...` + +## Required Credentials + +- `CONVEX_DEPLOYMENT_DEPLOY_KEY` — API Key +- `CONVEX_DEPLOYMENT_BASE_URL` — Deployment URL + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/convex-management/SKILL.md b/skills/convex-management/SKILL.md new file mode 100644 index 00000000..a931e197 --- /dev/null +++ b/skills/convex-management/SKILL.md @@ -0,0 +1,38 @@ +--- +name: convex-management +version: "1.0.0" +description: Convex Management API — Convex Management provides a developer console for managing applications built o +activation: + keywords: + - "convex-management" + - "convex management" + - "baas" + patterns: + - "(?i)convex.?management" + tags: + - "tools" + - "baas" + max_context_tokens: 1200 +--- + +# Convex Management API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Convex Management provides a developer console for managing applications built on the Convex backend platform, including database data, serverless functions, deployments, logs, and configuration, help + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/coresignal/SKILL.md b/skills/coresignal/SKILL.md new file mode 100644 index 00000000..29f9d84f --- /dev/null +++ b/skills/coresignal/SKILL.md @@ -0,0 +1,47 @@ +--- +name: coresignal +version: "1.0.0" +description: Coresignal API — Coresignal provides large-scale public web data for investment, HR tech +activation: + keywords: + - "coresignal" + - "ai" + patterns: + - "(?i)coresignal" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CORESIGNAL_API_KEY] +--- + +# Coresignal API + +Use the `http` tool. API key is automatically injected via `apikey` header — **never construct auth headers manually**. + +> Coresignal provides large-scale public web data for investment, HR tech, and other industries. It offers datasets on companies, jobs, people, and more to power business insights and machine learning m + +## Authentication + +This integration uses **API Key** authentication via the `apikey` header. +Format: `apikey: ...` + +## Required Credentials + +- `CORESIGNAL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/currents-news/SKILL.md b/skills/currents-news/SKILL.md new file mode 100644 index 00000000..bf4ffa4b --- /dev/null +++ b/skills/currents-news/SKILL.md @@ -0,0 +1,46 @@ +--- +name: currents-news +version: "1.0.0" +description: Currents News API — Currents News API offers a real-time, RESTful news service that delivers global +activation: + keywords: + - "currents-news" + - "currents news" + - "news" + patterns: + - "(?i)currents.?news" + tags: + - "news" + - "media" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [CURRENTS_NEWS_API_KEY] +--- + +# Currents News API + +Use the `http` tool. API key is automatically injected as `apiKey` query parameter. + +> Currents News API offers a real-time, RESTful news service that delivers global articles from 70+ countries in over 18 languages, supports keyword-based and SQL-style queries, and provides historical + +## Authentication + +This integration uses **query parameter** authentication via `apiKey`. + +## Required Credentials + +- `CURRENTS_NEWS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/data-for-seo/SKILL.md b/skills/data-for-seo/SKILL.md new file mode 100644 index 00000000..7d56ee85 --- /dev/null +++ b/skills/data-for-seo/SKILL.md @@ -0,0 +1,47 @@ +--- +name: data-for-seo +version: "1.0.0" +description: Data For SEO API — DataForSEO provides a comprehensive suite of RESTful APIs and data services that +activation: + keywords: + - "data-for-seo" + - "data for seo" + - "seo" + patterns: + - "(?i)data.?for.?seo" + tags: + - "tools" + - "seo" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DATA_FOR_SEO_BASE64_CREDENTIALS] +--- + +# Data For SEO API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> DataForSEO provides a comprehensive suite of RESTful APIs and data services that deliver search-engine results (SERP), keyword metrics, backlinks, app store info, site technical audits, and domain ana + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Basic ...` + +## Required Credentials + +- `DATA_FOR_SEO_BASE64_CREDENTIALS` — Basic Credential (Base64) + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/databox/SKILL.md b/skills/databox/SKILL.md new file mode 100644 index 00000000..7e9e411c --- /dev/null +++ b/skills/databox/SKILL.md @@ -0,0 +1,47 @@ +--- +name: databox +version: "1.0.0" +description: Databox API — Databox is a business analytics platform that unifies metrics from multiple tool +activation: + keywords: + - "databox" + - "analytics" + patterns: + - "(?i)databox" + tags: + - "analytics" + - "data" + - "" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DATABOX_API_KEY] +--- + +# Databox API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> Databox is a business analytics platform that unifies metrics from multiple tools into customizable dashboards and alerts, helping teams track performance and make data-driven decisions in real time. + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `DATABOX_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/datadog/SKILL.md b/skills/datadog/SKILL.md new file mode 100644 index 00000000..ce3b17bf --- /dev/null +++ b/skills/datadog/SKILL.md @@ -0,0 +1,85 @@ +--- +name: datadog +version: "1.0.0" +description: Datadog API — monitors, events, metrics, dashboards, incidents +activation: + keywords: + - "datadog" + - "monitoring" + - "datadog alert" + - "datadog monitor" + exclude_keywords: + - "sentry" + - "grafana" + - "new relic" + patterns: + - "(?i)datadog.*(monitor|alert|metric|dashboard|incident)" + - "(?i)(create|list|mute).*monitor" + tags: + - "monitoring" + - "observability" + - "devops" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [DATADOG_API_KEY, DATADOG_APP_KEY] +--- + +# Datadog API + +Use the `http` tool. Include both API and application keys as headers. + +## Base URL + +`https://api.datadoghq.com/api` (US1). Other sites: `api.us3.datadoghq.com`, `api.datadoghq.eu`, etc. + +Required headers on every request: +``` +headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}] +``` + +## Actions + +**List monitors:** +``` +http(method="GET", url="https://api.datadoghq.com/api/v1/monitor?page=0&page_size=20", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}]) +``` + +**Get monitor:** +``` +http(method="GET", url="https://api.datadoghq.com/api/v1/monitor/", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}]) +``` + +**Mute monitor:** +``` +http(method="POST", url="https://api.datadoghq.com/api/v1/monitor//mute", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}], body={"end": 1775000000}) +``` + +**Post event:** +``` +http(method="POST", url="https://api.datadoghq.com/api/v1/events", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}], body={"title": "Deploy completed", "text": "Version 2.1.0 deployed to production", "alert_type": "info", "tags": ["env:production", "service:api"]}) +``` + +**Query metrics:** +``` +http(method="GET", url="https://api.datadoghq.com/api/v1/query?from=1775000000&to=1775100000&query=avg:system.cpu.user{host:myhost}", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}]) +``` + +**List dashboards:** +``` +http(method="GET", url="https://api.datadoghq.com/api/v1/dashboard/lists/manual", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}]) +``` + +**List incidents:** +``` +http(method="GET", url="https://api.datadoghq.com/api/v2/incidents?page[size]=10", headers=[{"name": "DD-API-KEY", "value": "{DATADOG_API_KEY}"}, {"name": "DD-APPLICATION-KEY", "value": "{DATADOG_APP_KEY}"}]) +``` + +## Notes + +- Monitor states: `OK`, `Alert`, `Warn`, `No Data`, `Unknown`. +- Event alert types: `info`, `warning`, `error`, `success`. +- Metric queries use Datadog query syntax: `avg:metric.name{tag:value}`. +- Times are Unix timestamps (seconds). +- `DD-API-KEY` alone suffices for posting events/metrics. Most reads need `DD-APPLICATION-KEY` too. diff --git a/skills/deck-co/SKILL.md b/skills/deck-co/SKILL.md new file mode 100644 index 00000000..4d618336 --- /dev/null +++ b/skills/deck-co/SKILL.md @@ -0,0 +1,49 @@ +--- +name: deck-co +version: "1.0.0" +description: Deck.co API — Deck provides developer infrastructure for accessing credentialed user data from +activation: + keywords: + - "deck-co" + - "deck.co" + - "ai" + patterns: + - "(?i)deck.?co" + tags: + - "tools" + - "ai" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DECK_CO_CLIENT_ID, DECK_CO_CLIENT_SECRET, DECK_CO_BASE_URL] +--- + +# Deck.co API + +Use the `http` tool. API key is automatically injected via `x-deck-client-id` header — **never construct auth headers manually**. + +> Deck provides developer infrastructure for accessing credentialed user data from login‑gated websites as if there were an official API, enabling real‑time extraction, normalization, and write actions + +## Authentication + +This integration uses **API Key** authentication via the `x-deck-client-id` header. +Format: `x-deck-client-id: ...` + +## Required Credentials + +- `DECK_CO_CLIENT_ID` — Client ID +- `DECK_CO_CLIENT_SECRET` — Client Secret / API Key +- `DECK_CO_BASE_URL` — Base URl + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/deep-seek/SKILL.md b/skills/deep-seek/SKILL.md new file mode 100644 index 00000000..3396dfcd --- /dev/null +++ b/skills/deep-seek/SKILL.md @@ -0,0 +1,48 @@ +--- +name: deep-seek +version: "1.0.0" +description: DeepSeek API — DeepSeek develops advanced large language models that deliver high-performance A +activation: + keywords: + - "deep-seek" + - "deepseek" + - "ai" + patterns: + - "(?i)deep.?seek" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DEEP_SEEK_API_KEY] +--- + +# DeepSeek API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.deepseek.com` + +## Actions + +**Chat completion:** +``` +http(method="POST", url="https://api.deepseek.com/chat/completions", body={"model": "deepseek-chat","messages": [{"role": "user","content": "Hello"}],"max_tokens": 1024}) +``` + +**List models:** +``` +http(method="GET", url="https://api.deepseek.com/models") +``` + +## Notes + +- OpenAI-compatible API format. +- Models: `deepseek-chat`, `deepseek-coder`, `deepseek-reasoner`. +- Supports `stream: true` for streaming responses. +- Temperature range: 0.0–2.0. diff --git a/skills/deliveroo/SKILL.md b/skills/deliveroo/SKILL.md new file mode 100644 index 00000000..21d68897 --- /dev/null +++ b/skills/deliveroo/SKILL.md @@ -0,0 +1,46 @@ +--- +name: deliveroo +version: "1.0.0" +description: Deliveroo API — Deliveroo operates a technology-driven online food delivery marketplace that con +activation: + keywords: + - "deliveroo" + - "food delivery" + patterns: + - "(?i)deliveroo" + tags: + - "tools" + - "food-delivery" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DELIVEROO_CLIENT_ID, DELIVEROO_CLIENT_SECRET] +--- + +# Deliveroo API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Deliveroo operates a technology-driven online food delivery marketplace that connects consumers with local restaurants, grocery and retail partners through its app, enabling on-demand ordering and rea + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Required Credentials + +- `DELIVEROO_CLIENT_ID` — Client ID +- `DELIVEROO_CLIENT_SECRET` — Client Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/diffbot/SKILL.md b/skills/diffbot/SKILL.md new file mode 100644 index 00000000..5c415027 --- /dev/null +++ b/skills/diffbot/SKILL.md @@ -0,0 +1,52 @@ +--- +name: diffbot +version: "1.0.0" +description: Diffbot API — Diffbot uses machine learning and computer vision to extract structured data fro +activation: + keywords: + - "diffbot" + - "ai" + patterns: + - "(?i)diffbot" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DIFFBOT_API_KEY] +--- + +# Diffbot API + +Use the `http` tool. API key is automatically injected as `token` query parameter. + +## Base URL + +`https://api.diffbot.com/v3` + +## Actions + +**Analyze URL:** +``` +http(method="GET", url="https://api.diffbot.com/v3/analyze?url=https://example.com/article&token={DIFFBOT_API_TOKEN}") +``` + +**Extract article:** +``` +http(method="GET", url="https://api.diffbot.com/v3/article?url=https://example.com/article&token={DIFFBOT_API_TOKEN}") +``` + +**Extract product:** +``` +http(method="GET", url="https://api.diffbot.com/v3/product?url=https://example.com/product&token={DIFFBOT_API_TOKEN}") +``` + +## Notes + +- `token` parameter is the API key. +- Extraction types: `article`, `product`, `image`, `video`, `discussion`. +- `/analyze` auto-detects the page type. +- Add `&fields=` to select specific fields in response. diff --git a/skills/discord/SKILL.md b/skills/discord/SKILL.md new file mode 100644 index 00000000..cd0aa062 --- /dev/null +++ b/skills/discord/SKILL.md @@ -0,0 +1,84 @@ +--- +name: discord +version: "1.0.0" +description: Discord API — send messages, manage channels, guilds, reactions +activation: + keywords: + - "discord" + - "discord message" + - "guild" + - "discord channel" + exclude_keywords: + - "slack" + - "teams" + patterns: + - "(?i)send.*discord" + - "(?i)discord.*(message|channel|server|guild)" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [DISCORD_BOT_TOKEN] +--- + +# Discord API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. The system injects `Authorization: Bot {DISCORD_BOT_TOKEN}` for `discord.com` hosts. + +## Base URL + +`https://discord.com/api/v10` + +## Actions + +**Send message:** +``` +http(method="POST", url="https://discord.com/api/v10/channels//messages", body={"content": "Hello!"}) +``` + +**Send embed:** +``` +http(method="POST", url="https://discord.com/api/v10/channels//messages", body={"embeds": [{"title": "Title", "description": "Body", "color": 5814783}]}) +``` + +**Get channel messages:** +``` +http(method="GET", url="https://discord.com/api/v10/channels//messages?limit=50") +``` + +**List guild channels:** +``` +http(method="GET", url="https://discord.com/api/v10/guilds//channels") +``` + +**Get guild info:** +``` +http(method="GET", url="https://discord.com/api/v10/guilds/") +``` + +**Add reaction:** +``` +http(method="PUT", url="https://discord.com/api/v10/channels//messages//reactions//@me") +``` + +**Create channel:** +``` +http(method="POST", url="https://discord.com/api/v10/guilds//channels", body={"name": "new-channel", "type": 0}) +``` + +**Get user:** +``` +http(method="GET", url="https://discord.com/api/v10/users/@me") +``` + +## Notes + +- Channel types: 0 = text, 2 = voice, 4 = category, 5 = announcement. +- Embeds `color` is decimal (not hex). Convert: `0x58ACFF` → `5814783`. +- Emoji in reactions: URL-encode unicode emoji (`%F0%9F%91%8D` for thumbsup) or use `name:id` for custom. +- Rate limits: 50 requests/second. Check `X-RateLimit-Remaining` header. +- Snowflake IDs are strings of digits (e.g., `"1234567890123456789"`). diff --git a/skills/dovetail/SKILL.md b/skills/dovetail/SKILL.md new file mode 100644 index 00000000..16b424c4 --- /dev/null +++ b/skills/dovetail/SKILL.md @@ -0,0 +1,45 @@ +--- +name: dovetail +version: "1.0.0" +description: Dovetail API — Dovetail is an AI-native customer intelligence platform that centralises and syn +activation: + keywords: + - "dovetail" + - "cip" + patterns: + - "(?i)dovetail" + tags: + - "tools" + - "cip" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DOVETAIL_API_TOKEN] +--- + +# Dovetail API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Dovetail is an AI-native customer intelligence platform that centralises and synthesises feedback from interviews, support tickets, reviews and research data—helping teams uncover themes, drive produc + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `DOVETAIL_API_TOKEN` — API Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/dropbox/SKILL.md b/skills/dropbox/SKILL.md new file mode 100644 index 00000000..8eedf5e4 --- /dev/null +++ b/skills/dropbox/SKILL.md @@ -0,0 +1,82 @@ +--- +name: dropbox +version: "1.0.0" +description: Dropbox API v2 — files, folders, sharing, search +activation: + keywords: + - "dropbox" + - "dropbox file" + exclude_keywords: + - "google drive" + - "box" + - "onedrive" + patterns: + - "(?i)dropbox.*(file|folder|share|upload|download)" + tags: + - "file-storage" + - "cloud-storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [DROPBOX_ACCESS_TOKEN] +--- + +# Dropbox API v2 + +Use the `http` tool. Credentials are automatically injected for `api.dropboxapi.com`. + +## Base URL + +`https://api.dropboxapi.com/2` + +## Actions + +**List folder contents:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/list_folder", body={"path": "", "limit": 20}) +``` +Use `""` for root, `/path/to/folder` for subfolders. + +**Search files:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/search_v2", body={"query": "report", "options": {"max_results": 20, "file_status": "active"}}) +``` + +**Get file metadata:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/get_metadata", body={"path": "/path/to/file.pdf"}) +``` + +**Create folder:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/create_folder_v2", body={"path": "/New Folder", "autorename": false}) +``` + +**Move file/folder:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/move_v2", body={"from_path": "/old/path.txt", "to_path": "/new/path.txt"}) +``` + +**Delete file/folder:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/files/delete_v2", body={"path": "/path/to/delete"}) +``` + +**Create shared link:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings", body={"path": "/path/to/file.pdf", "settings": {"requested_visibility": "public"}}) +``` + +**Get account info:** +``` +http(method="POST", url="https://api.dropboxapi.com/2/users/get_current_account") +``` + +## Notes + +- Dropbox API v2 uses POST for everything (even reads) with JSON bodies. +- Paths are lowercase, start with `/`. Root is empty string `""`. +- `list_folder` returns `has_more` + `cursor`. Use `list_folder/continue` with `cursor` for pagination. +- File downloads use `content.dropboxapi.com/2/files/download` with path in `Dropbox-API-Arg` header (not this API base). +- Errors: `{"error_summary": "path/not_found/...", "error": {...}}`. diff --git a/skills/elevenlabs/SKILL.md b/skills/elevenlabs/SKILL.md new file mode 100644 index 00000000..9d1c1f1f --- /dev/null +++ b/skills/elevenlabs/SKILL.md @@ -0,0 +1,76 @@ +--- +name: elevenlabs +version: "1.0.0" +description: ElevenLabs API — text-to-speech, voices, voice cloning, audio generation +activation: + keywords: + - "elevenlabs" + - "text to speech" + - "tts" + - "voice" + exclude_keywords: + - "whisper" + - "google tts" + patterns: + - "(?i)elevenlabs.*(voice|speech|audio|tts)" + - "(?i)(generate|create|convert).*speech" + - "(?i)text.to.speech" + tags: + - "ai" + - "audio" + - "tts" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ELEVENLABS_API_KEY] +--- + +# ElevenLabs API + +Use the `http` tool. Include `xi-api-key` header. Audio responses should be saved to file. + +## Base URL + +`https://api.elevenlabs.io/v1` + +## Actions + +**Text to speech:** +``` +http(method="POST", url="https://api.elevenlabs.io/v1/text-to-speech/", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}], body={"text": "Hello, how are you today?", "model_id": "eleven_multilingual_v2", "voice_settings": {"stability": 0.5, "similarity_boost": 0.75}}, save_to="/tmp/speech.mp3") +``` + +**List voices:** +``` +http(method="GET", url="https://api.elevenlabs.io/v1/voices", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}]) +``` + +**Get voice:** +``` +http(method="GET", url="https://api.elevenlabs.io/v1/voices/", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}]) +``` + +**Get models:** +``` +http(method="GET", url="https://api.elevenlabs.io/v1/models", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}]) +``` + +**Get subscription info:** +``` +http(method="GET", url="https://api.elevenlabs.io/v1/user/subscription", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}]) +``` + +**Get usage:** +``` +http(method="GET", url="https://api.elevenlabs.io/v1/user", headers=[{"name": "xi-api-key", "value": "{ELEVENLABS_API_KEY}"}]) +``` + +## Notes + +- TTS returns raw audio bytes (mp3). Always use `save_to` to save the file. +- Models: `eleven_multilingual_v2` (best quality), `eleven_turbo_v2_5` (low latency), `eleven_monolingual_v1`. +- `stability` (0-1): lower = more expressive, higher = more consistent. +- `similarity_boost` (0-1): higher = closer to original voice. +- Popular premade voice IDs: check `GET /v1/voices` to list available options. +- Character quota tracked per account. Check `character_count`/`character_limit` in user info. diff --git a/skills/exa/SKILL.md b/skills/exa/SKILL.md new file mode 100644 index 00000000..a51842f3 --- /dev/null +++ b/skills/exa/SKILL.md @@ -0,0 +1,64 @@ +--- +name: exa +version: "1.0.0" +description: Exa AI Search API — semantic search, neural search, content retrieval +activation: + keywords: + - "exa" + - "exa search" + - "neural search" + - "semantic search" + exclude_keywords: + - "google search" + - "brave search" + patterns: + - "(?i)exa.*(search|find|content)" + - "(?i)semantic search" + tags: + - "search" + - "ai" + max_context_tokens: 1000 +metadata: + openclaw: + requires: + env: [EXA_API_KEY] +--- + +# Exa Search API + +Use the `http` tool. Include `x-api-key` header. + +## Base URL + +`https://api.exa.ai` + +## Actions + +**Search:** +``` +http(method="POST", url="https://api.exa.ai/search", headers=[{"name": "x-api-key", "value": "{EXA_API_KEY}"}], body={"query": "best practices for RAG systems", "type": "neural", "numResults": 10, "useAutoprompt": true}) +``` + +**Search with content:** +``` +http(method="POST", url="https://api.exa.ai/search", headers=[{"name": "x-api-key", "value": "{EXA_API_KEY}"}], body={"query": "recent advances in protein folding", "type": "neural", "numResults": 5, "contents": {"text": {"maxCharacters": 2000}, "highlights": true}}) +``` + +**Find similar pages:** +``` +http(method="POST", url="https://api.exa.ai/findSimilar", headers=[{"name": "x-api-key", "value": "{EXA_API_KEY}"}], body={"url": "https://example.com/article", "numResults": 10, "contents": {"text": true}}) +``` + +**Get contents for URLs:** +``` +http(method="POST", url="https://api.exa.ai/contents", headers=[{"name": "x-api-key", "value": "{EXA_API_KEY}"}], body={"ids": ["https://example.com/page1", "https://example.com/page2"], "text": {"maxCharacters": 5000}}) +``` + +## Notes + +- Search types: `neural` (semantic), `keyword` (traditional), `auto` (hybrid). +- `useAutoprompt: true` lets Exa rewrite your query for better results. +- `contents.text` can be `true` (full text) or `{"maxCharacters": N}`. +- Domain filtering: `includeDomains: ["arxiv.org"]` or `excludeDomains: ["reddit.com"]`. +- Date filtering: `startPublishedDate`, `endPublishedDate` (ISO 8601). +- Results include `url`, `title`, `publishedDate`, `author`, `score`. diff --git a/skills/fathom/SKILL.md b/skills/fathom/SKILL.md new file mode 100644 index 00000000..b55a4959 --- /dev/null +++ b/skills/fathom/SKILL.md @@ -0,0 +1,38 @@ +--- +name: fathom +version: "1.0.0" +description: Fathom API — Fathom.ai is an AI-powered meeting assistant that automatically records +activation: + keywords: + - "fathom" + - "ai" + patterns: + - "(?i)fathom" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +--- + +# Fathom API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Fathom.ai is an AI-powered meeting assistant that automatically records, transcribes, and summarizes virtual meetings across platforms like Zoom, Google Meet, and Teams, extracting key points, decisio + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/figma/SKILL.md b/skills/figma/SKILL.md new file mode 100644 index 00000000..bcc37efd --- /dev/null +++ b/skills/figma/SKILL.md @@ -0,0 +1,89 @@ +--- +name: figma +version: "1.0.0" +description: Figma API — files, components, comments, images, projects +activation: + keywords: + - "figma" + - "figma file" + - "figma component" + - "design" + exclude_keywords: + - "sketch" + - "canva" + patterns: + - "(?i)figma.*(file|component|comment|image|project)" + - "(?i)(export|inspect).*figma" + tags: + - "design" + - "ui" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FIGMA_ACCESS_TOKEN] +--- + +# Figma API + +Use the `http` tool. Credentials are automatically injected for `api.figma.com`. + +## Base URL + +`https://api.figma.com/v1` + +## Actions + +**Get file:** +``` +http(method="GET", url="https://api.figma.com/v1/files/") +``` + +**Get specific nodes:** +``` +http(method="GET", url="https://api.figma.com/v1/files//nodes?ids=,") +``` + +**Export images:** +``` +http(method="GET", url="https://api.figma.com/v1/images/?ids=&format=png&scale=2") +``` + +**List components:** +``` +http(method="GET", url="https://api.figma.com/v1/files//components") +``` + +**List comments:** +``` +http(method="GET", url="https://api.figma.com/v1/files//comments") +``` + +**Post comment:** +``` +http(method="POST", url="https://api.figma.com/v1/files//comments", body={"message": "Looks good!", "client_meta": {"x": 100, "y": 200}}) +``` + +**List project files:** +``` +http(method="GET", url="https://api.figma.com/v1/projects//files") +``` + +**List team projects:** +``` +http(method="GET", url="https://api.figma.com/v1/teams//projects") +``` + +**Get file versions:** +``` +http(method="GET", url="https://api.figma.com/v1/files//versions") +``` + +## Notes + +- File key is from URL: `figma.com/file//File-Name`. +- Node IDs use colon format: `"1:23"`. URL-encode as `1%3A23`. +- Export formats: `jpg`, `png`, `svg`, `pdf`. Scale: 0.01 to 4. +- Image export returns URLs (temporary, valid ~14 days). +- Full file response can be very large — use `/nodes` endpoint for specific sections. +- Rate limit: 30 requests/minute. diff --git a/skills/fireberry/SKILL.md b/skills/fireberry/SKILL.md new file mode 100644 index 00000000..a2cc8c41 --- /dev/null +++ b/skills/fireberry/SKILL.md @@ -0,0 +1,48 @@ +--- +name: fireberry +version: "1.0.0" +description: Fireberry API — A unified CRM platform designed to bring sales, marketing +activation: + keywords: + - "fireberry" + - "crm" + patterns: + - "(?i)fireberry" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FIREBERRY_ACCESS_TOKEN] +--- + +# Fireberry API + +Use the `http` tool. API key is automatically injected via `tokenid` header — **never construct auth headers manually**. + +> A unified CRM platform designed to bring sales, marketing, and service data into one customizable hub, Fireberry offers businesses of all sizes AI-assisted automation, real-time insights, and flexible + +## Authentication + +This integration uses **API Key** authentication via the `tokenid` header. +Format: `tokenid: ...` + +## Required Credentials + +- `FIREBERRY_ACCESS_TOKEN` — Access Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/firecrawl/SKILL.md b/skills/firecrawl/SKILL.md new file mode 100644 index 00000000..d6b639fc --- /dev/null +++ b/skills/firecrawl/SKILL.md @@ -0,0 +1,57 @@ +--- +name: firecrawl +version: "1.0.0" +description: Firecrawl API — Firecrawl is a website crawling and indexing tool designed to help developers an +activation: + keywords: + - "firecrawl" + - "ai" + patterns: + - "(?i)firecrawl" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FIRECRAWL_API_KEY] +--- + +# Firecrawl API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.firecrawl.dev/v1` + +## Actions + +**Scrape URL:** +``` +http(method="POST", url="https://api.firecrawl.dev/v1/scrape", body={"url": "https://example.com","formats": ["markdown"]}) +``` + +**Crawl website:** +``` +http(method="POST", url="https://api.firecrawl.dev/v1/crawl", body={"url": "https://example.com","limit": 10}) +``` + +**Get crawl status:** +``` +http(method="GET", url="https://api.firecrawl.dev/v1/crawl/{crawl_id}") +``` + +**Search:** +``` +http(method="POST", url="https://api.firecrawl.dev/v1/search", body={"query": "AI news","limit": 5}) +``` + +## Notes + +- Formats: `markdown`, `html`, `rawHtml`, `links`, `screenshot`. +- Crawl is async — poll status with GET. +- `includePaths`/`excludePaths` filter crawled URLs (glob patterns). +- `waitFor` (ms) waits for JS rendering. diff --git a/skills/fireflies-ai/SKILL.md b/skills/fireflies-ai/SKILL.md new file mode 100644 index 00000000..166b9580 --- /dev/null +++ b/skills/fireflies-ai/SKILL.md @@ -0,0 +1,47 @@ +--- +name: fireflies-ai +version: "1.0.0" +description: Fireflies.ai API — Fireflies.ai is an AI meeting assistant that transcribes, summarizes +activation: + keywords: + - "fireflies-ai" + - "fireflies.ai" + - "ai" + patterns: + - "(?i)fireflies.?ai" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FIREFLIESAI_API_KEY] +--- + +# Fireflies.ai API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Fireflies.ai is an AI meeting assistant that transcribes, summarizes, and analyzes conversations across video conferencing platforms to improve productivity and collaboration. + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `FIREFLIESAI_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/folk-app/SKILL.md b/skills/folk-app/SKILL.md new file mode 100644 index 00000000..52634b32 --- /dev/null +++ b/skills/folk-app/SKILL.md @@ -0,0 +1,48 @@ +--- +name: folk-app +version: "1.0.0" +description: Folk.app API — Folk is a simple, AI-powered CRM designed for service businesses +activation: + keywords: + - "folk-app" + - "folk.app" + - "crm" + patterns: + - "(?i)folk.?app" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FOLK_APP_API_KEY] +--- + +# Folk.app API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Folk is a simple, AI-powered CRM designed for service businesses. It features spreadsheet-like interface, automated contact management, Chrome extension for one-click imports, Gmail integration, and p + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `FOLK_APP_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/freshbooks/SKILL.md b/skills/freshbooks/SKILL.md new file mode 100644 index 00000000..b4704c79 --- /dev/null +++ b/skills/freshbooks/SKILL.md @@ -0,0 +1,52 @@ +--- +name: freshbooks +version: "1.0.0" +description: FreshBooks API — FreshBooks is an accounting software designed for small businesses and freelance +activation: + keywords: + - "freshbooks" + - "accounting" + patterns: + - "(?i)freshbooks" + tags: + - "accounting" + - "finance" + max_context_tokens: 1200 +--- + +# FreshBooks API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.freshbooks.com` + +## Actions + +**Get current user:** +``` +http(method="GET", url="https://api.freshbooks.com/auth/api/v1/users/me") +``` + +**List clients:** +``` +http(method="GET", url="https://api.freshbooks.com/accounting/account/{account_id}/users/clients?per_page=10") +``` + +**Create invoice:** +``` +http(method="POST", url="https://api.freshbooks.com/accounting/account/{account_id}/invoices/invoices", body={"invoice": {"customerid": 123,"create_date": "2026-03-27","lines": [{"name": "Consulting","qty": 10,"unit_cost": {"amount": "150.00","code": "USD"}}]}}) +``` + +**List invoices:** +``` +http(method="GET", url="https://api.freshbooks.com/accounting/account/{account_id}/invoices/invoices?per_page=10") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Account ID from `/auth/api/v1/users/me` response's `business_memberships`. +- Money fields use `{amount, code}` objects. +- Invoice statuses: `draft`, `sent`, `viewed`, `paid`, `overdue`. diff --git a/skills/freshdesk/SKILL.md b/skills/freshdesk/SKILL.md new file mode 100644 index 00000000..61778302 --- /dev/null +++ b/skills/freshdesk/SKILL.md @@ -0,0 +1,61 @@ +--- +name: freshdesk +version: "1.0.0" +description: Freshdesk API — Freshdesk is a cloud-based customer support platform that offers ticketing +activation: + keywords: + - "freshdesk" + - "hr & payroll" + patterns: + - "(?i)freshdesk" + tags: + - "tools" + - "Customer Support" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [FRESHDESK_DOMAIN, FRESHDESK_API_KEY] +--- + +# Freshdesk API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2` + +## Actions + +**List tickets:** +``` +http(method="GET", url="https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2/tickets?per_page=10") +``` + +**Get ticket:** +``` +http(method="GET", url="https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2/tickets/{ticket_id}") +``` + +**Create ticket:** +``` +http(method="POST", url="https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2/tickets", body={"subject": "Issue with login","description": "Cannot log in since morning","email": "customer@example.com","priority": 2,"status": 2}) +``` + +**Update ticket:** +``` +http(method="PUT", url="https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2/tickets/{ticket_id}", body={"status": 4,"priority": 3}) +``` + +**List contacts:** +``` +http(method="GET", url="https://{FRESHDESK_DOMAIN}.freshdesk.com/api/v2/contacts?per_page=10") +``` + +## Notes + +- Priority: 1=Low, 2=Medium, 3=High, 4=Urgent. +- Status: 2=Open, 3=Pending, 4=Resolved, 5=Closed. +- Uses API key as Basic auth username with `X` as password. +- Pagination: `page` param, 30 items per page by default. diff --git a/skills/front/SKILL.md b/skills/front/SKILL.md new file mode 100644 index 00000000..0ed51785 --- /dev/null +++ b/skills/front/SKILL.md @@ -0,0 +1,57 @@ +--- +name: front +version: "1.0.0" +description: Front API — Front is a shared inbox and communication platform that brings email, apps +activation: + keywords: + - "front" + - "ticketing" + patterns: + - "(?i)front" + tags: + - "tools" + - "Customer Support" + max_context_tokens: 1200 +--- + +# Front API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api2.frontapp.com` + +## Actions + +**List conversations:** +``` +http(method="GET", url="https://api2.frontapp.com/conversations?limit=10") +``` + +**Get conversation:** +``` +http(method="GET", url="https://api2.frontapp.com/conversations/{conversation_id}") +``` + +**Send message:** +``` +http(method="POST", url="https://api2.frontapp.com/channels/{channel_id}/messages", body={"to": ["recipient@example.com"],"body": "Hello!","subject": "Re: Your request"}) +``` + +**List inboxes:** +``` +http(method="GET", url="https://api2.frontapp.com/inboxes") +``` + +**List teammates:** +``` +http(method="GET", url="https://api2.frontapp.com/teammates") +``` + +## Notes + +- Conversations aggregate messages across channels. +- Channel types: email, SMS, chat, social. +- Conversation IDs start with `cnv_`. +- Pagination: `_links.next` URL in response. diff --git a/skills/gemini/SKILL.md b/skills/gemini/SKILL.md new file mode 100644 index 00000000..320514f9 --- /dev/null +++ b/skills/gemini/SKILL.md @@ -0,0 +1,52 @@ +--- +name: gemini +version: "1.0.0" +description: Gemini API — Gemini is a family of AI models created by Google DeepMind +activation: + keywords: + - "gemini" + - "ai" + patterns: + - "(?i)gemini" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GEMINI_API_KEY] +--- + +# Gemini API + +Use the `http` tool. API key is automatically injected as `key` query parameter. + +## Base URL + +`https://generativelanguage.googleapis.com/v1beta` + +## Actions + +**Generate content:** +``` +http(method="POST", url="https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}", body={"contents": [{"parts": [{"text": "Explain quantum computing"}]}]}) +``` + +**List models:** +``` +http(method="GET", url="https://generativelanguage.googleapis.com/v1beta/models?key={GEMINI_API_KEY}") +``` + +**Count tokens:** +``` +http(method="POST", url="https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:countTokens?key={GEMINI_API_KEY}", body={"contents": [{"parts": [{"text": "Hello world"}]}]}) +``` + +## Notes + +- API key passed as `key` query parameter. +- Models: `gemini-2.0-flash`, `gemini-2.0-pro`, `gemini-1.5-pro`, `gemini-1.5-flash`. +- Content structure: `{contents: [{parts: [{text: "..."}]}]}`. +- Supports `generationConfig` for temperature, topP, maxOutputTokens. diff --git a/skills/giphy/SKILL.md b/skills/giphy/SKILL.md new file mode 100644 index 00000000..47ece0dd --- /dev/null +++ b/skills/giphy/SKILL.md @@ -0,0 +1,56 @@ +--- +name: giphy +version: "1.0.0" +description: Giphy API — Giphy is an online GIF and sticker platform and search engine that hosts a vast +activation: + keywords: + - "giphy" + - "media" + patterns: + - "(?i)giphy" + tags: + - "tools" + - "media" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GIPHY_API_KEY] +--- + +# Giphy API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +## Base URL + +`https://api.giphy.com/v1` + +## Actions + +**Search GIFs:** +``` +http(method="GET", url="https://api.giphy.com/v1/gifs/search?api_key={GIPHY_API_KEY}&q=funny+cat&limit=10") +``` + +**Trending GIFs:** +``` +http(method="GET", url="https://api.giphy.com/v1/gifs/trending?api_key={GIPHY_API_KEY}&limit=10") +``` + +**Random GIF:** +``` +http(method="GET", url="https://api.giphy.com/v1/gifs/random?api_key={GIPHY_API_KEY}&tag=cat") +``` + +**Search stickers:** +``` +http(method="GET", url="https://api.giphy.com/v1/stickers/search?api_key={GIPHY_API_KEY}&q=thumbs+up&limit=10") +``` + +## Notes + +- API key in query parameter `api_key`. +- GIF URLs in response: `data[].images.original.url` (full), `data[].images.fixed_height.url` (250px). +- Rating filter: `&rating=g` (g, pg, pg-13, r). +- Pagination: `offset` and `limit`. diff --git a/skills/git-lab/SKILL.md b/skills/git-lab/SKILL.md new file mode 100644 index 00000000..edd9d2c8 --- /dev/null +++ b/skills/git-lab/SKILL.md @@ -0,0 +1,72 @@ +--- +name: git-lab +version: "1.0.0" +description: GitLab API — GitLab is a complete DevOps platform that provides a single application for sour +activation: + keywords: + - "git-lab" + - "gitlab" + - "productivity" + patterns: + - "(?i)git.?lab" + tags: + - "productivity" + - "collaboration" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GITLAB_HOSTNAME, GITLAB_PERSONAL_ACCESS_TOKEN] +--- + +# GitLab API + +Use the `http` tool. API key is automatically injected via `PRIVATE-TOKEN` header — **never construct auth headers manually**. + +## Base URL + +`https://gitlab.com/api/v4` + +## Actions + +**List projects:** +``` +http(method="GET", url="https://gitlab.com/api/v4/projects?membership=true&per_page=10") +``` + +**Get project:** +``` +http(method="GET", url="https://gitlab.com/api/v4/projects/{project_id}") +``` + +**List issues:** +``` +http(method="GET", url="https://gitlab.com/api/v4/projects/{project_id}/issues?state=opened&per_page=10") +``` + +**Create issue:** +``` +http(method="POST", url="https://gitlab.com/api/v4/projects/{project_id}/issues", body={"title": "Bug report","description": "Details here","labels": "bug"}) +``` + +**List merge requests:** +``` +http(method="GET", url="https://gitlab.com/api/v4/projects/{project_id}/merge_requests?state=opened&per_page=10") +``` + +**Create merge request:** +``` +http(method="POST", url="https://gitlab.com/api/v4/projects/{project_id}/merge_requests", body={"source_branch": "feature","target_branch": "main","title": "Feature implementation"}) +``` + +**List pipelines:** +``` +http(method="GET", url="https://gitlab.com/api/v4/projects/{project_id}/pipelines?per_page=10") +``` + +## Notes + +- Project IDs are numeric or URL-encoded paths: `namespace%2Fproject`. +- Auth via `PRIVATE-TOKEN` header (auto-injected). +- Issue/MR states: `opened`, `closed`, `merged` (MR only), `all`. +- Pagination: `page` and `per_page` params; check `X-Total` header. diff --git a/skills/github/SKILL.md b/skills/github/SKILL.md index a3d93460..6f3711a0 100644 --- a/skills/github/SKILL.md +++ b/skills/github/SKILL.md @@ -21,22 +21,6 @@ activation: - "code-review" - "devops" max_context_tokens: 2000 -credentials: - - name: github_token - provider: github - location: - type: bearer - hosts: - - "api.github.com" - oauth: - authorization_url: "https://github.com/login/oauth/authorize" - token_url: "https://github.com/login/oauth/access_token" - scopes: - - "repo" - - "read:org" - refresh: - strategy: reauthorize_only - setup_instructions: "Create a personal access token at https://github.com/settings/tokens" --- # GitHub API Skill diff --git a/skills/gmail/SKILL.md b/skills/gmail/SKILL.md new file mode 100644 index 00000000..268659cb --- /dev/null +++ b/skills/gmail/SKILL.md @@ -0,0 +1,101 @@ +--- +name: gmail +version: "1.0.0" +description: Gmail API — send, read, search, label, draft emails +activation: + keywords: + - "gmail" + - "email" + - "send email" + - "inbox" + exclude_keywords: + - "outlook" + - "resend" + - "postmark" + patterns: + - "(?i)(send|read|search|draft|reply).*email" + - "(?i)gmail.*(message|inbox|label|draft)" + tags: + - "email" + - "communication" + - "google" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [GOOGLE_ACCESS_TOKEN] +--- + +# Gmail API + +Use the `http` tool. Credentials are automatically injected for `gmail.googleapis.com`. + +## Base URL + +`https://gmail.googleapis.com/gmail/v1/users/me` + +## Actions + +**List messages (inbox):** +``` +http(method="GET", url="https://gmail.googleapis.com/gmail/v1/users/me/messages?maxResults=10&q=is:unread") +``` + +**Get message:** +``` +http(method="GET", url="https://gmail.googleapis.com/gmail/v1/users/me/messages/?format=full") +``` + +**Search messages:** +``` +http(method="GET", url="https://gmail.googleapis.com/gmail/v1/users/me/messages?q=from:john@acme.com+subject:invoice+after:2026/01/01&maxResults=20") +``` + +**Send email:** +``` +http(method="POST", url="https://gmail.googleapis.com/gmail/v1/users/me/messages/send", body={"raw": ""}) +``` + +To construct the `raw` field, base64url-encode an RFC 2822 message: +``` +From: me@gmail.com +To: recipient@example.com +Subject: Hello + +Body text here +``` + +**Reply to email:** +Same as send, but include `In-Reply-To` and `References` headers in the RFC 2822 message, and set `threadId` in the body. + +**Create draft:** +``` +http(method="POST", url="https://gmail.googleapis.com/gmail/v1/users/me/drafts", body={"message": {"raw": ""}}) +``` + +**List labels:** +``` +http(method="GET", url="https://gmail.googleapis.com/gmail/v1/users/me/labels") +``` + +**Modify labels (archive, mark read):** +``` +http(method="POST", url="https://gmail.googleapis.com/gmail/v1/users/me/messages//modify", body={"removeLabelIds": ["UNREAD", "INBOX"]}) +``` + +**Trash message:** +``` +http(method="POST", url="https://gmail.googleapis.com/gmail/v1/users/me/messages//trash") +``` + +## Search Syntax + +Gmail search operators: `from:`, `to:`, `subject:`, `is:unread`, `is:starred`, `has:attachment`, `after:YYYY/MM/DD`, `before:YYYY/MM/DD`, `label:`, `in:sent`, `larger:5M`. + +## Notes + +- `raw` must be base64url-encoded (not standard base64): replace `+` with `-`, `/` with `_`, remove `=` padding. +- Message list returns only IDs. Use GET with `format=full` to get headers and body. +- Body content is in `payload.parts[].body.data` (base64url-encoded). +- Pagination: use `pageToken` from `nextPageToken` in response. +- Labels: `INBOX`, `SENT`, `DRAFT`, `SPAM`, `TRASH`, `UNREAD`, `STARRED`, `IMPORTANT`. diff --git a/skills/go-dial/SKILL.md b/skills/go-dial/SKILL.md new file mode 100644 index 00000000..fe72a046 --- /dev/null +++ b/skills/go-dial/SKILL.md @@ -0,0 +1,48 @@ +--- +name: go-dial +version: "1.0.0" +description: Go Dial API — Go Dial is an all-in-one mobile CRM and auto-dialer platform enabling businesses +activation: + keywords: + - "go-dial" + - "go dial" + - "crm" + patterns: + - "(?i)go.?dial" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GO_DIAL_ACCESS_TOKEN] +--- + +# Go Dial API + +Use the `http` tool. API key is automatically injected as `access_token` query parameter. + +> Go Dial is an all-in-one mobile CRM and auto-dialer platform enabling businesses to import contacts, manage pipelines, automate outbound calls, record interactions and track team performance from a sm + +## Authentication + +This integration uses **query parameter** authentication via `access_token`. + +## Required Credentials + +- `GO_DIAL_ACCESS_TOKEN` — Access Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/gong/SKILL.md b/skills/gong/SKILL.md new file mode 100644 index 00000000..f2b8a5d7 --- /dev/null +++ b/skills/gong/SKILL.md @@ -0,0 +1,48 @@ +--- +name: gong +version: "1.0.0" +description: Gong API — Gong is a revenue intelligence platform that captures and analyzes customer inte +activation: + keywords: + - "gong" + - "communication" + patterns: + - "(?i)gong" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1200 +--- + +# Gong API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.gong.io/v2` + +## Actions + +**List calls:** +``` +http(method="POST", url="https://api.gong.io/v2/calls/extensive", body={"filter": {"fromDateTime": "2026-03-01T00:00:00Z","toDateTime": "2026-03-27T00:00:00Z"},"cursor": null}) +``` + +**Get call transcript:** +``` +http(method="POST", url="https://api.gong.io/v2/calls/transcript", body={"filter": {"callIds": ["call_id"]}}) +``` + +**List users:** +``` +http(method="GET", url="https://api.gong.io/v2/users") +``` + +## Notes + +- Most endpoints use POST with filter objects. +- Call data includes participants, duration, and topics. +- Transcripts have speaker labels and timestamps. +- Pagination via `cursor` in request and `records.cursor` in response. diff --git a/skills/google-ads/SKILL.md b/skills/google-ads/SKILL.md new file mode 100644 index 00000000..bbe15801 --- /dev/null +++ b/skills/google-ads/SKILL.md @@ -0,0 +1,47 @@ +--- +name: google-ads +version: "1.0.0" +description: Google Ads API — Google Ads is an online advertising platform that enables businesses to promote +activation: + keywords: + - "google-ads" + - "google ads" + - "ads" + patterns: + - "(?i)google.?ads" + tags: + - "tools" + - "ads" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GOOGLE_ADS_CUSTOMER_ID] +--- + +# Google Ads API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://googleads.googleapis.com/v17` + +## Actions + +**Search campaigns:** +``` +http(method="POST", url="https://googleads.googleapis.com/v17/customers/{customer_id}/googleAds:searchStream", body={"query": "SELECT campaign.name, campaign.status, metrics.impressions FROM campaign WHERE campaign.status = 'ENABLED' LIMIT 10"}) +``` + +**List accessible customers:** +``` +http(method="GET", url="https://googleads.googleapis.com/v17/customers:listAccessibleCustomers") +``` + +## Notes + +- Uses OAuth 2.0 and requires `developer-token` header. +- Queries use GAQL (Google Ads Query Language). +- Customer IDs are 10-digit numbers without dashes. +- Resources: `campaign`, `ad_group`, `ad_group_ad`, `keyword_view`. diff --git a/skills/google-calendar/SKILL.md b/skills/google-calendar/SKILL.md new file mode 100644 index 00000000..8f3b361b --- /dev/null +++ b/skills/google-calendar/SKILL.md @@ -0,0 +1,88 @@ +--- +name: google-calendar +version: "1.0.0" +description: Google Calendar API — events, calendars, free/busy, reminders +activation: + keywords: + - "calendar" + - "google calendar" + - "event" + - "schedule" + - "meeting" + exclude_keywords: + - "calendly" + - "cal.com" + - "outlook calendar" + patterns: + - "(?i)(create|list|update|delete|schedule).*event" + - "(?i)(google )?calendar.*(event|meeting|schedule)" + - "(?i)free.*(busy|slot|time)" + tags: + - "calendar" + - "scheduling" + - "google" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [GOOGLE_ACCESS_TOKEN] +--- + +# Google Calendar API + +Use the `http` tool. Credentials are automatically injected for `googleapis.com`. + +## Base URL + +`https://www.googleapis.com/calendar/v3` + +## Actions + +**List upcoming events:** +``` +http(method="GET", url="https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=2026-03-27T00:00:00Z&maxResults=10&singleEvents=true&orderBy=startTime") +``` + +**Get event:** +``` +http(method="GET", url="https://www.googleapis.com/calendar/v3/calendars/primary/events/") +``` + +**Create event:** +``` +http(method="POST", url="https://www.googleapis.com/calendar/v3/calendars/primary/events", body={"summary": "Team Standup", "location": "Conference Room", "description": "Daily sync", "start": {"dateTime": "2026-03-28T09:00:00-07:00"}, "end": {"dateTime": "2026-03-28T09:30:00-07:00"}, "attendees": [{"email": "alice@example.com"}], "reminders": {"useDefault": false, "overrides": [{"method": "popup", "minutes": 10}]}}) +``` + +**Create all-day event:** +``` +http(method="POST", url="https://www.googleapis.com/calendar/v3/calendars/primary/events", body={"summary": "Team Offsite", "start": {"date": "2026-04-01"}, "end": {"date": "2026-04-02"}}) +``` + +**Update event:** +``` +http(method="PATCH", url="https://www.googleapis.com/calendar/v3/calendars/primary/events/", body={"summary": "Updated Title", "start": {"dateTime": "2026-03-28T10:00:00-07:00"}, "end": {"dateTime": "2026-03-28T10:30:00-07:00"}}) +``` + +**Delete event:** +``` +http(method="DELETE", url="https://www.googleapis.com/calendar/v3/calendars/primary/events/") +``` + +**Free/busy query:** +``` +http(method="POST", url="https://www.googleapis.com/calendar/v3/freeBusy", body={"timeMin": "2026-03-28T08:00:00Z", "timeMax": "2026-03-28T18:00:00Z", "items": [{"id": "primary"}]}) +``` + +**List calendars:** +``` +http(method="GET", url="https://www.googleapis.com/calendar/v3/users/me/calendarList") +``` + +## Notes + +- Use `primary` as calendar ID for the user's main calendar. +- Timed events use `dateTime` (ISO 8601 with timezone). All-day events use `date` (YYYY-MM-DD). +- `singleEvents=true` expands recurring events into individual instances. +- `timeMin`/`timeMax` must be RFC 3339 timestamps with timezone. +- Pagination: use `pageToken` from `nextPageToken`. +- Delete returns 204 No Content. diff --git a/skills/google-docs/SKILL.md b/skills/google-docs/SKILL.md new file mode 100644 index 00000000..6cb4d2ea --- /dev/null +++ b/skills/google-docs/SKILL.md @@ -0,0 +1,48 @@ +--- +name: google-docs +version: "1.0.0" +description: Google Docs API — Google Docs is a cloud-based word processing platform that allows users to creat +activation: + keywords: + - "google-docs" + - "google docs" + - "tools" + patterns: + - "(?i)google.?docs" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +--- + +# Google Docs API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://docs.googleapis.com/v1` + +## Actions + +**Get document:** +``` +http(method="GET", url="https://docs.googleapis.com/v1/documents/{document_id}") +``` + +**Create document:** +``` +http(method="POST", url="https://docs.googleapis.com/v1/documents", body={"title": "My Document"}) +``` + +**Update document:** +``` +http(method="POST", url="https://docs.googleapis.com/v1/documents/{document_id}:batchUpdate", body={"requests": [{"insertText": {"location": {"index": 1},"text": "Hello World"}}]}) +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Document ID from URL: `docs.google.com/document/d/{id}/edit`. +- Updates use batch requests with operations like `insertText`, `deleteContentRange`, `updateTextStyle`. +- Index positions are 1-based (body starts at index 1). diff --git a/skills/google-drive/SKILL.md b/skills/google-drive/SKILL.md new file mode 100644 index 00000000..3f6a86ef --- /dev/null +++ b/skills/google-drive/SKILL.md @@ -0,0 +1,99 @@ +--- +name: google-drive +version: "1.0.0" +description: Google Drive API — files, folders, search, permissions, upload +activation: + keywords: + - "google drive" + - "drive" + - "gdrive" + exclude_keywords: + - "dropbox" + - "onedrive" + - "box" + patterns: + - "(?i)(upload|download|share|search|list).*drive" + - "(?i)google drive.*(file|folder|share)" + tags: + - "file-storage" + - "google" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [GOOGLE_ACCESS_TOKEN] +--- + +# Google Drive API + +Use the `http` tool. Credentials are automatically injected for `googleapis.com`. + +## Base URL + +`https://www.googleapis.com/drive/v3` + +## Actions + +**List files:** +``` +http(method="GET", url="https://www.googleapis.com/drive/v3/files?pageSize=20&fields=files(id,name,mimeType,modifiedTime,size,parents)&orderBy=modifiedTime%20desc") +``` + +**Search files:** +``` +http(method="GET", url="https://www.googleapis.com/drive/v3/files?q=name%20contains%20'report'%20and%20mimeType%20%21%3D%20'application/vnd.google-apps.folder'&pageSize=10&fields=files(id,name,mimeType,webViewLink)") +``` + +**Get file metadata:** +``` +http(method="GET", url="https://www.googleapis.com/drive/v3/files/?fields=id,name,mimeType,size,modifiedTime,webViewLink,parents") +``` + +**Download file content:** +``` +http(method="GET", url="https://www.googleapis.com/drive/v3/files/?alt=media", save_to="/tmp/downloaded_file") +``` + +**Create folder:** +``` +http(method="POST", url="https://www.googleapis.com/drive/v3/files", body={"name": "New Folder", "mimeType": "application/vnd.google-apps.folder", "parents": [""]}) +``` + +**Move file:** +``` +http(method="PATCH", url="https://www.googleapis.com/drive/v3/files/?addParents=&removeParents=") +``` + +**Share file (add permission):** +``` +http(method="POST", url="https://www.googleapis.com/drive/v3/files//permissions", body={"role": "reader", "type": "user", "emailAddress": "alice@example.com"}) +``` + +**Delete file:** +``` +http(method="DELETE", url="https://www.googleapis.com/drive/v3/files/") +``` + +## Search Query Syntax + +- `name contains 'report'` — filename search +- `mimeType = 'application/vnd.google-apps.spreadsheet'` — by type +- `'' in parents` — files in folder +- `modifiedTime > '2026-01-01T00:00:00'` — date filter +- `trashed = false` — exclude trash + +## Google MIME Types + +| Type | MIME | +|------|------| +| Folder | `application/vnd.google-apps.folder` | +| Doc | `application/vnd.google-apps.document` | +| Sheet | `application/vnd.google-apps.spreadsheet` | +| Slide | `application/vnd.google-apps.presentation` | + +## Notes + +- Use `fields` param to request specific properties (saves quota). +- `parents` is an array of folder IDs. Root folder is `"root"`. +- Permission roles: `reader`, `commenter`, `writer`, `organizer`. +- Pagination: use `pageToken` from `nextPageToken`. diff --git a/skills/google-places/SKILL.md b/skills/google-places/SKILL.md new file mode 100644 index 00000000..c43f1146 --- /dev/null +++ b/skills/google-places/SKILL.md @@ -0,0 +1,49 @@ +--- +name: google-places +version: "1.0.0" +description: Google Places API — Google Places is a location-based service that provides detailed information abo +activation: + keywords: + - "google-places" + - "google places" + - "tools" + patterns: + - "(?i)google.?places" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +--- + +# Google Places API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://places.googleapis.com/v1` + +**Required headers**: `X-Goog-FieldMask: places.displayName,places.formattedAddress,places.rating` + +## Actions + +**Search places:** +``` +http(method="POST", url="https://places.googleapis.com/v1/places:searchText", headers=[{"name": "X-Goog-FieldMask","value": "places.displayName,places.formattedAddress,places.rating"}], body={"textQuery": "restaurants in San Francisco","maxResultCount": 10}) +``` + +**Get place details:** +``` +http(method="GET", url="https://places.googleapis.com/v1/places/{place_id}") +``` + +**Nearby search:** +``` +http(method="POST", url="https://places.googleapis.com/v1/places:searchNearby", headers=[{"name": "X-Goog-FieldMask","value": "places.displayName,places.formattedAddress,places.rating"}], body={"locationRestriction": {"circle": {"center": {"latitude": 37.7749,"longitude": -122.4194},"radius": 1000.0}},"includedTypes": ["restaurant"],"maxResultCount": 10}) +``` + +## Notes + +- Requires `X-Goog-FieldMask` header to select response fields. +- Place types: `restaurant`, `cafe`, `hotel`, `hospital`, `park`, etc. +- API key in `X-Goog-Api-Key` header or query param `key`. diff --git a/skills/google-routes/SKILL.md b/skills/google-routes/SKILL.md new file mode 100644 index 00000000..a282c1a2 --- /dev/null +++ b/skills/google-routes/SKILL.md @@ -0,0 +1,49 @@ +--- +name: google-routes +version: "1.0.0" +description: Google Routes API — Google Routes helps you calculate efficient +activation: + keywords: + - "google-routes" + - "google routes" + - "maps" + patterns: + - "(?i)google.?routes" + tags: + - "maps" + - "location" + - "geolocation" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GOOGLE_ROUTES_API_KEY] +--- + +# Google Routes API + +Use the `http` tool. API key is automatically injected via `X-Goog-Api-Key` header — **never construct auth headers manually**. + +## Base URL + +`https://routes.googleapis.com` + +**Required headers**: `X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline` + +## Actions + +**Compute route:** +``` +http(method="POST", url="https://routes.googleapis.com/directions/v2:computeRoutes", headers=[{"name": "X-Goog-FieldMask","value": "routes.duration,routes.distanceMeters,routes.polyline"}], body={"origin": {"location": {"latLng": {"latitude": 37.7749,"longitude": -122.4194}}},"destination": {"location": {"latLng": {"latitude": 34.0522,"longitude": -118.2437}}},"travelMode": "DRIVE"}) +``` + +**Compute route matrix:** +``` +http(method="POST", url="https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix", headers=[{"name": "X-Goog-FieldMask","value": "routes.duration,routes.distanceMeters,routes.polyline"}], body={"origins": [{"waypoint": {"location": {"latLng": {"latitude": 37.7749,"longitude": -122.4194}}}}],"destinations": [{"waypoint": {"location": {"latLng": {"latitude": 34.0522,"longitude": -118.2437}}}}],"travelMode": "DRIVE"}) +``` + +## Notes + +- Requires `X-Goog-FieldMask` header. +- Travel modes: `DRIVE`, `BICYCLE`, `WALK`, `TWO_WHEELER`, `TRANSIT`. +- Supports waypoints, route modifiers (avoid tolls/highways), and departure time. diff --git a/skills/google-sheets/SKILL.md b/skills/google-sheets/SKILL.md new file mode 100644 index 00000000..a48bf2c7 --- /dev/null +++ b/skills/google-sheets/SKILL.md @@ -0,0 +1,84 @@ +--- +name: google-sheets +version: "1.0.0" +description: Google Sheets API — read, write, append, format cells, manage sheets +activation: + keywords: + - "google sheets" + - "spreadsheet" + - "sheets" + - "gsheets" + exclude_keywords: + - "airtable" + - "excel" + patterns: + - "(?i)(read|write|update|append).*spreadsheet" + - "(?i)google sheets?.*(read|write|cell|row|column)" + tags: + - "spreadsheet" + - "google" + - "data" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [GOOGLE_ACCESS_TOKEN] +--- + +# Google Sheets API + +Use the `http` tool. Credentials are automatically injected for `googleapis.com`. + +## Base URL + +`https://sheets.googleapis.com/v4/spreadsheets` + +## Actions + +**Get spreadsheet metadata:** +``` +http(method="GET", url="https://sheets.googleapis.com/v4/spreadsheets/?fields=properties.title,sheets.properties") +``` + +**Read values:** +``` +http(method="GET", url="https://sheets.googleapis.com/v4/spreadsheets//values/Sheet1!A1:D10") +``` + +**Read multiple ranges:** +``` +http(method="GET", url="https://sheets.googleapis.com/v4/spreadsheets//values:batchGet?ranges=Sheet1!A1:B5&ranges=Sheet1!D1:E5") +``` + +**Write values:** +``` +http(method="PUT", url="https://sheets.googleapis.com/v4/spreadsheets//values/Sheet1!A1:C3?valueInputOption=USER_ENTERED", body={"values": [["Name", "Age", "City"], ["Alice", 30, "NYC"], ["Bob", 25, "LA"]]}) +``` + +**Append rows:** +``` +http(method="POST", url="https://sheets.googleapis.com/v4/spreadsheets//values/Sheet1!A:C:append?valueInputOption=USER_ENTERED&insertDataOption=INSERT_ROWS", body={"values": [["Charlie", 35, "SF"]]}) +``` + +**Clear range:** +``` +http(method="POST", url="https://sheets.googleapis.com/v4/spreadsheets//values/Sheet1!A1:D10:clear") +``` + +**Create spreadsheet:** +``` +http(method="POST", url="https://sheets.googleapis.com/v4/spreadsheets", body={"properties": {"title": "New Spreadsheet"}, "sheets": [{"properties": {"title": "Data"}}]}) +``` + +**Add sheet:** +``` +http(method="POST", url="https://sheets.googleapis.com/v4/spreadsheets/:batchUpdate", body={"requests": [{"addSheet": {"properties": {"title": "New Sheet"}}}]}) +``` + +## Notes + +- Range notation: `Sheet1!A1:D10`, `Sheet1!A:D` (whole columns), `Sheet1!1:5` (whole rows). +- `valueInputOption`: `RAW` (as-is) or `USER_ENTERED` (parses numbers/dates/formulas). +- Spreadsheet ID is from URL: `docs.google.com/spreadsheets/d//edit`. +- Write returns `updatedCells`, `updatedRows`, `updatedColumns` counts. +- Sheet names with spaces need single quotes in range: `'My Sheet'!A1:B5`. diff --git a/skills/gorgias/SKILL.md b/skills/gorgias/SKILL.md new file mode 100644 index 00000000..59cf0857 --- /dev/null +++ b/skills/gorgias/SKILL.md @@ -0,0 +1,58 @@ +--- +name: gorgias +version: "1.0.0" +description: Gorgias API — Gorgias is a conversational AI platform built for e-commerce brands that central +activation: + keywords: + - "gorgias" + - "crm" + patterns: + - "(?i)gorgias" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GORGIAS_DOMAIN] +--- + +# Gorgias API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{GORGIAS_DOMAIN}.gorgias.com/api` + +## Actions + +**List tickets:** +``` +http(method="GET", url="https://{GORGIAS_DOMAIN}.gorgias.com/api/tickets?limit=10&order_by=created_datetime") +``` + +**Get ticket:** +``` +http(method="GET", url="https://{GORGIAS_DOMAIN}.gorgias.com/api/tickets/{ticket_id}") +``` + +**Create ticket:** +``` +http(method="POST", url="https://{GORGIAS_DOMAIN}.gorgias.com/api/tickets", body={"customer": {"email": "customer@example.com"},"messages": [{"channel": "email","via": "api","body_text": "Need help with order"}]}) +``` + +**List customers:** +``` +http(method="GET", url="https://{GORGIAS_DOMAIN}.gorgias.com/api/customers?limit=10") +``` + +## Notes + +- Uses Basic auth with email and API key. +- Ticket channels: `email`, `chat`, `facebook`, `instagram`, `phone`. +- Messages are nested within tickets. +- Pagination: `cursor` param from response. diff --git a/skills/gumloop/SKILL.md b/skills/gumloop/SKILL.md new file mode 100644 index 00000000..e1b87a1b --- /dev/null +++ b/skills/gumloop/SKILL.md @@ -0,0 +1,47 @@ +--- +name: gumloop +version: "1.0.0" +description: Gumloop API — Gumloop is a no-code AI automation platform that enables users to build and depl +activation: + keywords: + - "gumloop" + - "ai" + patterns: + - "(?i)gumloop" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [GUMLOOP_API_KEY, GUMLOOP_USER_ID] +--- + +# Gumloop API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Gumloop is a no-code AI automation platform that enables users to build and deploy complex workflows using a visual drag-and-drop interface, integrating large language models and third-party tools to + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `GUMLOOP_API_KEY` — API Key +- `GUMLOOP_USER_ID` — User ID + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/hacker-news/SKILL.md b/skills/hacker-news/SKILL.md new file mode 100644 index 00000000..1cdf3328 --- /dev/null +++ b/skills/hacker-news/SKILL.md @@ -0,0 +1,59 @@ +--- +name: hacker-news +version: "1.0.0" +description: HackerNews API — Hacker News is a social news website run by Y Combinator +activation: + keywords: + - "hacker-news" + - "hackernews" + - "productivity" + patterns: + - "(?i)hacker.?news" + tags: + - "productivity" + - "collaboration" + - "news" + max_context_tokens: 1200 +--- + +# HackerNews API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://hacker-news.firebaseio.com/v0` + +## Actions + +**Get top stories:** +``` +http(method="GET", url="https://hacker-news.firebaseio.com/v0/topstories.json?limitToFirst=20&orderBy=%22$key%22") +``` + +**Get story details:** +``` +http(method="GET", url="https://hacker-news.firebaseio.com/v0/item/{item_id}.json") +``` + +**Get new stories:** +``` +http(method="GET", url="https://hacker-news.firebaseio.com/v0/newstories.json?limitToFirst=20&orderBy=%22$key%22") +``` + +**Get best stories:** +``` +http(method="GET", url="https://hacker-news.firebaseio.com/v0/beststories.json?limitToFirst=20&orderBy=%22$key%22") +``` + +**Get user:** +``` +http(method="GET", url="https://hacker-news.firebaseio.com/v0/user/{username}.json") +``` + +## Notes + +- No authentication required — public API. +- Story/comment IDs are numeric. +- Item types: `story`, `comment`, `job`, `poll`, `pollopt`. +- Comments are nested via `kids` array of item IDs. diff --git a/skills/high-level/SKILL.md b/skills/high-level/SKILL.md new file mode 100644 index 00000000..185fd9e9 --- /dev/null +++ b/skills/high-level/SKILL.md @@ -0,0 +1,40 @@ +--- +name: high-level +version: "1.0.0" +description: HighLevel API — HighLevel is an all-in-one sales and marketing automation platform that helps ag +activation: + keywords: + - "high-level" + - "highlevel" + - "crm" + patterns: + - "(?i)high.?level" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +--- + +# HighLevel API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> HighLevel is an all-in-one sales and marketing automation platform that helps agencies and businesses manage CRM, funnels, messaging, bookings, and campaigns from a single system, with extensible inte + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/hoop/SKILL.md b/skills/hoop/SKILL.md new file mode 100644 index 00000000..11d5b259 --- /dev/null +++ b/skills/hoop/SKILL.md @@ -0,0 +1,47 @@ +--- +name: hoop +version: "1.0.0" +description: Hoop API — Hoop.dev provides a secure access gateway that enables developers to connect to +activation: + keywords: + - "hoop" + - "security" + patterns: + - "(?i)hoop" + tags: + - "tools" + - "security" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [HOOP_API_KEY, HOOP_BASE_URL] +--- + +# Hoop API + +Use the `http` tool. API key is automatically injected via `Api-Key` header — **never construct auth headers manually**. + +> Hoop.dev provides a secure access gateway that enables developers to connect to databases, servers and internal tools while automatically masking sensitive data, enforcing command-level guardrails, an + +## Authentication + +This integration uses **API Key** authentication via the `Api-Key` header. +Format: `Api-Key: ...` + +## Required Credentials + +- `HOOP_API_KEY` — API Key +- `HOOP_BASE_URL` — Base URL + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/hubspot/SKILL.md b/skills/hubspot/SKILL.md new file mode 100644 index 00000000..c6f5ac05 --- /dev/null +++ b/skills/hubspot/SKILL.md @@ -0,0 +1,85 @@ +--- +name: hubspot +version: "1.0.0" +description: HubSpot CRM API — contacts, companies, deals, tickets, notes +activation: + keywords: + - "hubspot" + - "hubspot contact" + - "hubspot deal" + - "crm" + exclude_keywords: + - "salesforce" + - "pipedrive" + patterns: + - "(?i)hubspot.*(contact|company|deal|ticket)" + - "(?i)(create|update|search).*hubspot" + tags: + - "crm" + - "sales" + - "marketing" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [HUBSPOT_ACCESS_TOKEN] +--- + +# HubSpot CRM API + +Use the `http` tool. Credentials are automatically injected for `api.hubapi.com`. + +## Base URL + +`https://api.hubapi.com` + +## Actions + +**Search contacts:** +``` +http(method="POST", url="https://api.hubapi.com/crm/v3/objects/contacts/search", body={"filterGroups": [{"filters": [{"propertyName": "email", "operator": "CONTAINS_TOKEN", "value": "acme.com"}]}], "properties": ["firstname", "lastname", "email", "phone"], "limit": 10}) +``` + +**Get contact:** +``` +http(method="GET", url="https://api.hubapi.com/crm/v3/objects/contacts/?properties=firstname,lastname,email,phone,company") +``` + +**Create contact:** +``` +http(method="POST", url="https://api.hubapi.com/crm/v3/objects/contacts", body={"properties": {"firstname": "John", "lastname": "Doe", "email": "john@acme.com", "company": "Acme Corp"}}) +``` + +**Update contact:** +``` +http(method="PATCH", url="https://api.hubapi.com/crm/v3/objects/contacts/", body={"properties": {"phone": "+1234567890"}}) +``` + +**List deals:** +``` +http(method="GET", url="https://api.hubapi.com/crm/v3/objects/deals?properties=dealname,amount,dealstage,closedate&limit=20") +``` + +**Create deal:** +``` +http(method="POST", url="https://api.hubapi.com/crm/v3/objects/deals", body={"properties": {"dealname": "Big Deal", "amount": "50000", "dealstage": "qualifiedtobuy", "closedate": "2026-06-30"}}) +``` + +**Create note:** +``` +http(method="POST", url="https://api.hubapi.com/crm/v3/objects/notes", body={"properties": {"hs_note_body": "Called John, discussed pricing", "hs_timestamp": "2026-03-27T10:00:00.000Z"}, "associations": [{"to": {"id": ""}, "types": [{"associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 202}]}]}) +``` + +**List companies:** +``` +http(method="GET", url="https://api.hubapi.com/crm/v3/objects/companies?properties=name,domain,industry&limit=20") +``` + +## Notes + +- All CRM objects follow the same pattern: `/crm/v3/objects/{objectType}`. +- Object types: `contacts`, `companies`, `deals`, `tickets`, `notes`. +- Properties are always passed as flat string key-value pairs. +- Search operators: `EQ`, `NEQ`, `LT`, `GT`, `CONTAINS_TOKEN`, `HAS_PROPERTY`. +- Pagination: use `after` from `paging.next.after` in response. +- Association type IDs: 1=Contact→Company, 3=Deal→Contact, 202=Note→Contact. diff --git a/skills/instantly-ai/SKILL.md b/skills/instantly-ai/SKILL.md new file mode 100644 index 00000000..82487f28 --- /dev/null +++ b/skills/instantly-ai/SKILL.md @@ -0,0 +1,47 @@ +--- +name: instantly-ai +version: "1.0.0" +description: Instantly.ai API — Instantly is an AI-powered cold email platform that automates outreach with unli +activation: + keywords: + - "instantly-ai" + - "instantly.ai" + - "ai" + patterns: + - "(?i)instantly.?ai" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [INSTANTLY_AI_API_KEY] +--- + +# Instantly.ai API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Instantly is an AI-powered cold email platform that automates outreach with unlimited inboxes, built-in warm-up, personalization, and analytics—designed to help teams scale email campaigns efficiently + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `INSTANTLY_AI_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/intercom/SKILL.md b/skills/intercom/SKILL.md new file mode 100644 index 00000000..2fb05d4b --- /dev/null +++ b/skills/intercom/SKILL.md @@ -0,0 +1,57 @@ +--- +name: intercom +version: "1.0.0" +description: Intercom API — A messaging platform that allows businesses to communicate with prospective and +activation: + keywords: + - "intercom" + - "ticketing" + patterns: + - "(?i)intercom" + tags: + - "tools" + - "Ticketing" + max_context_tokens: 1200 +--- + +# Intercom API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.intercom.io` + +## Actions + +**List contacts:** +``` +http(method="POST", url="https://api.intercom.io/contacts/search", body={"query": {"field": "role","operator": "=","value": "user"},"pagination": {"per_page": 10}}) +``` + +**Get contact:** +``` +http(method="GET", url="https://api.intercom.io/contacts/{contact_id}") +``` + +**Create contact:** +``` +http(method="POST", url="https://api.intercom.io/contacts", body={"role": "user","email": "john@example.com","name": "John Doe"}) +``` + +**List conversations:** +``` +http(method="GET", url="https://api.intercom.io/conversations?per_page=10") +``` + +**Send message:** +``` +http(method="POST", url="https://api.intercom.io/messages", body={"message_type": "inapp","body": "Hello!","from": {"type": "admin","id": "admin_id"},"to": {"type": "user","id": "user_id"}}) +``` + +## Notes + +- Contact roles: `user`, `lead`. +- Search uses nested query objects with operators: `=`, `!=`, `>`, `<`, `contains`, `starts_with`. +- Conversation parts are messages within a conversation. +- Pagination: `starting_after` cursor. diff --git a/skills/jira/SKILL.md b/skills/jira/SKILL.md new file mode 100644 index 00000000..bf8e93c1 --- /dev/null +++ b/skills/jira/SKILL.md @@ -0,0 +1,95 @@ +--- +name: jira +version: "1.0.0" +description: Jira Cloud REST API — issues, projects, sprints, transitions, comments +activation: + keywords: + - "jira" + - "jira issue" + - "sprint" + - "jira ticket" + - "story points" + exclude_keywords: + - "linear" + - "github issues" + patterns: + - "(?i)(create|list|update|close|assign|move)\\s.*(issue|ticket|story|bug|task).*jira" + - "(?i)jira.*(issue|board|sprint|project)" + tags: + - "project-management" + - "issue-tracking" + - "devops" + max_context_tokens: 2000 +metadata: + openclaw: + requires: + env: [JIRA_DOMAIN, JIRA_EMAIL, JIRA_API_TOKEN] +--- + +# Jira Cloud REST API + +Use the `http` tool. Auth uses Basic authentication (email:api_token base64-encoded). Credentials are automatically injected for your Jira domain. + +## Base URL + +`https://{JIRA_DOMAIN}.atlassian.net/rest/api/3` + +## Actions + +**Search issues (JQL):** +``` +http(method="GET", url="https://{domain}.atlassian.net/rest/api/3/search?jql=project%3DPROJ%20AND%20status%21%3DDone&maxResults=20") +``` + +**Get issue:** +``` +http(method="GET", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123") +``` + +**Create issue:** +``` +http(method="POST", url="https://{domain}.atlassian.net/rest/api/3/issue", body={"fields": {"project": {"key": "PROJ"}, "summary": "Bug title", "description": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Description"}]}]}, "issuetype": {"name": "Bug"}}}) +``` + +**Update issue:** +``` +http(method="PUT", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123", body={"fields": {"summary": "Updated title"}}) +``` + +**Transition issue (change status):** +``` +http(method="POST", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123/transitions", body={"transition": {"id": "31"}}) +``` + +**Get available transitions:** +``` +http(method="GET", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123/transitions") +``` + +**Add comment:** +``` +http(method="POST", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123/comment", body={"body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "My comment"}]}]}}) +``` + +**Assign issue:** +``` +http(method="PUT", url="https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123/assignee", body={"accountId": ""}) +``` + +**List projects:** +``` +http(method="GET", url="https://{domain}.atlassian.net/rest/api/3/project?maxResults=50") +``` + +**Get board sprints:** +``` +http(method="GET", url="https://{domain}.atlassian.net/rest/agile/1.0/board//sprint?state=active") +``` + +## Notes + +- Jira v3 API uses Atlassian Document Format (ADF) for description/comment bodies, not plain text. +- JQL must be URL-encoded. Common: `project=PROJ AND status!=Done ORDER BY created DESC`. +- To change status, first GET transitions to find the transition ID, then POST it. +- Issue types: Bug, Task, Story, Epic, Sub-task (case-sensitive, project-dependent). +- Pagination: `startAt` + `maxResults` params. Check `total` in response. diff --git a/skills/job-nimbus/SKILL.md b/skills/job-nimbus/SKILL.md new file mode 100644 index 00000000..75b4f09a --- /dev/null +++ b/skills/job-nimbus/SKILL.md @@ -0,0 +1,48 @@ +--- +name: job-nimbus +version: "1.0.0" +description: JobNimbus API — JobNimbus is an all-in-one CRM and project management platform tailored for cont +activation: + keywords: + - "job-nimbus" + - "jobnimbus" + - "crm" + patterns: + - "(?i)job.?nimbus" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [JOB_NIMBUS_API_KEY] +--- + +# JobNimbus API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> JobNimbus is an all-in-one CRM and project management platform tailored for contractors, combining lead tracking, custom job workflows, estimating, invoicing, mobile access, material ordering, integra + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `JOB_NIMBUS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/kernel/SKILL.md b/skills/kernel/SKILL.md new file mode 100644 index 00000000..424747f6 --- /dev/null +++ b/skills/kernel/SKILL.md @@ -0,0 +1,45 @@ +--- +name: kernel +version: "1.0.0" +description: Kernel API — Kernel is a serverless browser automation and web agent platform that enables de +activation: + keywords: + - "kernel" + - "tools" + patterns: + - "(?i)kernel" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [KERNEL_API_KEY] +--- + +# Kernel API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Kernel is a serverless browser automation and web agent platform that enables developers to deploy, scale, and run headless or full-browser tasks as APIs without managing infrastructure, offering para + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `KERNEL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/klaviyo/SKILL.md b/skills/klaviyo/SKILL.md new file mode 100644 index 00000000..3a044284 --- /dev/null +++ b/skills/klaviyo/SKILL.md @@ -0,0 +1,63 @@ +--- +name: klaviyo +version: "1.0.0" +description: Klaviyo API — Klaviyo is a marketing automation platform built for eCommerce +activation: + keywords: + - "klaviyo" + - "ecommerce" + patterns: + - "(?i)klaviyo" + tags: + - "tools" + - "Ecommerce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [KLAVIYO_API_KEY] +--- + +# Klaviyo API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://a.klaviyo.com/api` + +**Required headers**: `revision: 2024-10-15` + +## Actions + +**List profiles:** +``` +http(method="GET", url="https://a.klaviyo.com/api/profiles/?page[size]=10") +``` + +**Get profile:** +``` +http(method="GET", url="https://a.klaviyo.com/api/profiles/{profile_id}") +``` + +**Create profile:** +``` +http(method="POST", url="https://a.klaviyo.com/api/profiles/", headers=[{"name": "revision","value": "2024-10-15"}], body={"data": {"type": "profile","attributes": {"email": "john@example.com","first_name": "John","last_name": "Doe"}}}) +``` + +**List lists:** +``` +http(method="GET", url="https://a.klaviyo.com/api/lists/?page[size]=10") +``` + +**Create event:** +``` +http(method="POST", url="https://a.klaviyo.com/api/events/", headers=[{"name": "revision","value": "2024-10-15"}], body={"data": {"type": "event","attributes": {"profile": {"data": {"type": "profile","attributes": {"email": "john@example.com"}}},"metric": {"data": {"type": "metric","attributes": {"name": "Placed Order"}}},"properties": {"value": 99.99}}}}) +``` + +## Notes + +- Auth header: `Authorization: Klaviyo-API-Key {key}` (auto-injected). +- Requires `revision` header with API version date. +- Uses JSON:API format: `{data: {type, id, attributes}}`. +- Pagination: cursor-based via `page[cursor]`. diff --git a/skills/kommo/SKILL.md b/skills/kommo/SKILL.md new file mode 100644 index 00000000..6ee61c83 --- /dev/null +++ b/skills/kommo/SKILL.md @@ -0,0 +1,47 @@ +--- +name: kommo +version: "1.0.0" +description: Kommo API — Kommo is a sales-CRM platform that unifies messaging apps +activation: + keywords: + - "kommo" + - "crm" + patterns: + - "(?i)kommo" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SUB_DOMAIN] +--- + +# Kommo API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Kommo is a sales-CRM platform that unifies messaging apps, live chat and pipeline management into one inbox, enabling teams to nurture leads, automate outreach and close deals more efficiently. + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Required Credentials + +- `SUB_DOMAIN` — Domain + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/laravel-cloud/SKILL.md b/skills/laravel-cloud/SKILL.md new file mode 100644 index 00000000..872ba1be --- /dev/null +++ b/skills/laravel-cloud/SKILL.md @@ -0,0 +1,46 @@ +--- +name: laravel-cloud +version: "1.0.0" +description: Laravel Cloud API — A fully managed cloud platform for deploying, scaling +activation: + keywords: + - "laravel-cloud" + - "laravel cloud" + - "cloud hosting" + patterns: + - "(?i)laravel.?cloud" + tags: + - "tools" + - "cloud-hosting" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [LARAVEL_CLOUD_API_TOKEN] +--- + +# Laravel Cloud API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> A fully managed cloud platform for deploying, scaling, and operating Laravel applications with built-in autoscaling, managed databases, caching, storage, security, and zero-server management so develo + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `LARAVEL_CLOUD_API_TOKEN` — API Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/linear/SKILL.md b/skills/linear/SKILL.md new file mode 100644 index 00000000..4433816e --- /dev/null +++ b/skills/linear/SKILL.md @@ -0,0 +1,83 @@ +--- +name: linear +version: "1.0.0" +description: Linear GraphQL API — issues, projects, cycles, teams, labels +activation: + keywords: + - "linear" + - "linear issue" + - "linear ticket" + - "cycle" + exclude_keywords: + - "jira" + - "github issues" + patterns: + - "(?i)linear.*(issue|project|cycle|team)" + - "(?i)(create|list|update|close).*linear" + tags: + - "project-management" + - "issue-tracking" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [LINEAR_API_KEY] +--- + +# Linear API + +Linear uses a **GraphQL API**. Use the `http` tool to POST queries. Credentials are automatically injected — the system adds `Authorization: {LINEAR_API_KEY}` for `api.linear.app`. + +## Endpoint + +All requests: `POST https://api.linear.app/graphql` with `Content-Type: application/json`. + +## Actions + +**List my issues:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "{ viewer { assignedIssues(first: 20, orderBy: updatedAt) { nodes { id identifier title state { name } priority priorityLabel assignee { name } } } } }"}) +``` + +**Search issues:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "{ issueSearch(query: \"search text\", first: 10) { nodes { id identifier title state { name } team { key } } } }"}) +``` + +**Create issue:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "mutation { issueCreate(input: { teamId: \"\", title: \"Bug title\", description: \"Details\", priority: 2 }) { success issue { id identifier url } } }"}) +``` + +**Update issue:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "mutation { issueUpdate(id: \"\", input: { stateId: \"\", priority: 1 }) { success issue { id identifier state { name } } } }"}) +``` + +**List teams:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "{ teams { nodes { id name key } } }"}) +``` + +**List workflow states (for a team):** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "{ workflowStates(filter: { team: { id: { eq: \"\" } } }) { nodes { id name type } } }"}) +``` + +**Add comment:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "mutation { commentCreate(input: { issueId: \"\", body: \"Comment text\" }) { success comment { id } } }"}) +``` + +**List cycles:** +``` +http(method="POST", url="https://api.linear.app/graphql", body={"query": "{ cycles(filter: { isActive: { eq: true } }) { nodes { id name startsAt endsAt issues { nodes { identifier title state { name } } } } } }"}) +``` + +## Notes + +- Priority: 0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low. +- State types: `triage`, `backlog`, `unstarted`, `started`, `completed`, `cancelled`. +- Identifiers look like `ENG-123`. UUIDs are used for `id` fields. +- Pagination: use `first`/`after` with `pageInfo { hasNextPage endCursor }`. +- All mutations return `{ success ... }` — check `success` field. diff --git a/skills/linked-in/SKILL.md b/skills/linked-in/SKILL.md new file mode 100644 index 00000000..a45566bf --- /dev/null +++ b/skills/linked-in/SKILL.md @@ -0,0 +1,49 @@ +--- +name: linked-in +version: "1.0.0" +description: LinkedIn API — LinkedIn is a professional networking platform where users can connect +activation: + keywords: + - "linked-in" + - "linkedin" + - "marketing" + patterns: + - "(?i)linked.?in" + tags: + - "marketing" + - "email" + - "campaigns" + max_context_tokens: 1200 +--- + +# LinkedIn API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.linkedin.com/v2` + +## Actions + +**Get current user:** +``` +http(method="GET", url="https://api.linkedin.com/v2/userinfo") +``` + +**Create post:** +``` +http(method="POST", url="https://api.linkedin.com/v2/ugcPosts", body={"author": "urn:li:person:{person_id}","lifecycleState": "PUBLISHED","specificContent": {"com.linkedin.ugc.ShareContent": {"shareCommentary": {"text": "Hello LinkedIn!"},"shareMediaCategory": "NONE"}},"visibility": {"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"}}) +``` + +**Get company:** +``` +http(method="GET", url="https://api.linkedin.com/v2/organizations/{org_id}") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- URNs format: `urn:li:person:{id}`, `urn:li:organization:{id}`. +- Scopes needed: `r_liteprofile`, `w_member_social` for posting. +- Rate limit: 100 requests/day for most endpoints. diff --git a/skills/loops/SKILL.md b/skills/loops/SKILL.md new file mode 100644 index 00000000..591fbf56 --- /dev/null +++ b/skills/loops/SKILL.md @@ -0,0 +1,56 @@ +--- +name: loops +version: "1.0.0" +description: Loops API — Loops is a modern email marketing and automation platform designed for developer +activation: + keywords: + - "loops" + - "tools" + patterns: + - "(?i)loops" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [LOOPS_API_KEY] +--- + +# Loops API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://app.loops.so/api/v1` + +## Actions + +**Create contact:** +``` +http(method="POST", url="https://app.loops.so/api/v1/contacts/create", body={"email": "john@example.com","firstName": "John","lastName": "Doe","source": "api"}) +``` + +**Update contact:** +``` +http(method="PUT", url="https://app.loops.so/api/v1/contacts/update", body={"email": "john@example.com","firstName": "Jane"}) +``` + +**Send event:** +``` +http(method="POST", url="https://app.loops.so/api/v1/events/send", body={"email": "john@example.com","eventName": "signup_completed"}) +``` + +**Send transactional email:** +``` +http(method="POST", url="https://app.loops.so/api/v1/transactional", body={"transactionalId": "template_id","email": "john@example.com","dataVariables": {"name": "John"}}) +``` + +## Notes + +- Email is the primary identifier for contacts. +- Events trigger automations configured in the Loops dashboard. +- Transactional emails use pre-built templates by ID. +- Custom properties can be added as top-level fields on contacts. diff --git a/skills/mailbox-validator/SKILL.md b/skills/mailbox-validator/SKILL.md new file mode 100644 index 00000000..eedc6f60 --- /dev/null +++ b/skills/mailbox-validator/SKILL.md @@ -0,0 +1,46 @@ +--- +name: mailbox-validator +version: "1.0.0" +description: Mailbox Validator API — MailboxValidator provides real-time email address verification and list-cleaning +activation: + keywords: + - "mailbox-validator" + - "mailbox validator" + - "email-verification" + patterns: + - "(?i)mailbox.?validator" + tags: + - "tools" + - "email-verification" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MAILBOX_VALIDATOR_API_KEY] +--- + +# Mailbox Validator API + +Use the `http` tool. API key is automatically injected as `key` query parameter. + +> MailboxValidator provides real-time email address verification and list-cleaning services—via easy RESTful APIs or bulk uploads—to detect invalid, disposable, free, role-based and unreachable emails, + +## Authentication + +This integration uses **query parameter** authentication via `key`. + +## Required Credentials + +- `MAILBOX_VALIDATOR_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/mailchimp-marketing/SKILL.md b/skills/mailchimp-marketing/SKILL.md new file mode 100644 index 00000000..88ff7cb8 --- /dev/null +++ b/skills/mailchimp-marketing/SKILL.md @@ -0,0 +1,58 @@ +--- +name: mailchimp-marketing +version: "1.0.0" +description: Mailchimp Marketing API — Mailchimp Marketing is an all-in-one marketing platform that helps businesses ma +activation: + keywords: + - "mailchimp-marketing" + - "mailchimp marketing" + - "tools" + patterns: + - "(?i)mailchimp.?marketing" + tags: + - "tools" + - "utility" + max_context_tokens: 1200 +--- + +# Mailchimp Marketing API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{MAILCHIMP_DC}.api.mailchimp.com/3.0` + +## Actions + +**List audiences:** +``` +http(method="GET", url="https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/lists?count=10") +``` + +**List members:** +``` +http(method="GET", url="https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/lists/{list_id}/members?count=10") +``` + +**Add member:** +``` +http(method="POST", url="https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/lists/{list_id}/members", body={"email_address": "john@example.com","status": "subscribed","merge_fields": {"FNAME": "John","LNAME": "Doe"}}) +``` + +**List campaigns:** +``` +http(method="GET", url="https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/campaigns?count=10&status=sent") +``` + +**Get campaign report:** +``` +http(method="GET", url="https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/reports/{campaign_id}") +``` + +## Notes + +- Data center (dc) is in the API key suffix: `key-us21` → `us21`. +- Uses Basic auth with any username and API key as password. +- Member status: `subscribed`, `unsubscribed`, `cleaned`, `pending`, `transactional`. +- Merge fields are custom per audience (FNAME, LNAME are defaults). diff --git a/skills/mailgun/SKILL.md b/skills/mailgun/SKILL.md new file mode 100644 index 00000000..c0ced847 --- /dev/null +++ b/skills/mailgun/SKILL.md @@ -0,0 +1,59 @@ +--- +name: mailgun +version: "1.0.0" +description: Mailgun API — Mailgun is a powerful email delivery service designed for developers and busines +activation: + keywords: + - "mailgun" + - "tools" + patterns: + - "(?i)mailgun" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MAILGUN_BASE_URL, MAILGUN_API_KEY] +--- + +# Mailgun API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://api.mailgun.net/v3` + +**Content-Type**: `application/x-www-form-urlencoded` for POST/PUT requests. + +## Actions + +**Send email:** +``` +http(method="POST", url="https://api.mailgun.net/v3/{domain}/messages", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="from=sender@yourdomain.com&to=recipient@example.com&subject=Hello&text=Body+text") +``` + +**List domains:** +``` +http(method="GET", url="https://api.mailgun.net/v3/domains") +``` + +**Get events:** +``` +http(method="GET", url="https://api.mailgun.net/v3/{domain}/events?limit=10") +``` + +**List bounces:** +``` +http(method="GET", url="https://api.mailgun.net/v3/{domain}/bounces?limit=10") +``` + +## Notes + +- Uses Basic auth with `api` as username and API key as password. +- Send endpoint uses form-encoded body. +- `{domain}` is your verified sending domain. +- Supports `html` field for HTML emails, `attachment` for files. diff --git a/skills/make/SKILL.md b/skills/make/SKILL.md new file mode 100644 index 00000000..8f234877 --- /dev/null +++ b/skills/make/SKILL.md @@ -0,0 +1,57 @@ +--- +name: make +version: "1.0.0" +description: Make API — Make is a no-code automation platform that allows users to visually build workfl +activation: + keywords: + - "make" + - "ai" + patterns: + - "(?i)make" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MAKE_ZONE_URL, MAKE_API_TOKEN] +--- + +# Make API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://{MAKE_ZONE}.make.com/api/v2` + +## Actions + +**List scenarios:** +``` +http(method="GET", url="https://{MAKE_ZONE}.make.com/api/v2/scenarios?pg[limit]=10") +``` + +**Get scenario:** +``` +http(method="GET", url="https://{MAKE_ZONE}.make.com/api/v2/scenarios/{scenario_id}") +``` + +**Run scenario:** +``` +http(method="POST", url="https://{MAKE_ZONE}.make.com/api/v2/scenarios/{scenario_id}/run") +``` + +**List organizations:** +``` +http(method="GET", url="https://{MAKE_ZONE}.make.com/api/v2/organizations?pg[limit]=10") +``` + +## Notes + +- Zone: `us1`, `eu1`, `eu2` depending on your account region. +- Scenarios are automations/workflows. +- Pagination: `pg[offset]` and `pg[limit]`. +- Scenario states: `active`, `inactive`. diff --git a/skills/mapbox/SKILL.md b/skills/mapbox/SKILL.md new file mode 100644 index 00000000..996efdc4 --- /dev/null +++ b/skills/mapbox/SKILL.md @@ -0,0 +1,57 @@ +--- +name: mapbox +version: "1.0.0" +description: Mapbox API — Mapbox is a developer-focused mapping platform that provides customizable +activation: + keywords: + - "mapbox" + - "tools" + patterns: + - "(?i)mapbox" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MAPBOX_ACCESS_TOKEN] +--- + +# Mapbox API + +Use the `http` tool. API key is automatically injected as `access_token` query parameter. + +## Base URL + +`https://api.mapbox.com` + +## Actions + +**Geocode address:** +``` +http(method="GET", url="https://api.mapbox.com/geocoding/v5/mapbox.places/San+Francisco.json?access_token={MAPBOX_ACCESS_TOKEN}&limit=5") +``` + +**Reverse geocode:** +``` +http(method="GET", url="https://api.mapbox.com/geocoding/v5/mapbox.places/-122.4194,37.7749.json?access_token={MAPBOX_ACCESS_TOKEN}") +``` + +**Get directions:** +``` +http(method="GET", url="https://api.mapbox.com/directions/v5/mapbox/driving/-122.4194,37.7749;-118.2437,34.0522?access_token={MAPBOX_ACCESS_TOKEN}&geometries=geojson") +``` + +**Get static map:** +``` +http(method="GET", url="https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/-122.4194,37.7749,12,0/600x400?access_token={MAPBOX_ACCESS_TOKEN}") +``` + +## Notes + +- Access token as query parameter `access_token`. +- Coordinates are `longitude,latitude` (note the order). +- Profiles: `mapbox/driving`, `mapbox/walking`, `mapbox/cycling`, `mapbox/driving-traffic`. +- Geocoding returns GeoJSON FeatureCollection. diff --git a/skills/maple-billing/SKILL.md b/skills/maple-billing/SKILL.md new file mode 100644 index 00000000..a1902ded --- /dev/null +++ b/skills/maple-billing/SKILL.md @@ -0,0 +1,48 @@ +--- +name: maple-billing +version: "1.0.0" +description: Maple Billing API — Maple Billing is an all-in-one revenue management platform that empowers SaaS co +activation: + keywords: + - "maple-billing" + - "maple billing" + - "payments" + patterns: + - "(?i)maple.?billing" + tags: + - "payments" + - "billing" + - "finance" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MAPLE_BILLING_API_KEY, MAPLE_BILLING_COMPANY_ID] +--- + +# Maple Billing API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Maple Billing is an all-in-one revenue management platform that empowers SaaS companies to streamline billing, invoicing, and contract workflows across usage-based, seat-based, and hybrid pricing mode + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `MAPLE_BILLING_API_KEY` — API Key +- `MAPLE_BILLING_COMPANY_ID` — Company ID + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/meet-geek/SKILL.md b/skills/meet-geek/SKILL.md new file mode 100644 index 00000000..e6ea5109 --- /dev/null +++ b/skills/meet-geek/SKILL.md @@ -0,0 +1,48 @@ +--- +name: meet-geek +version: "1.0.0" +description: MeetGeek API — MeetGeek is an AI-powered meeting assistant that records, transcribes +activation: + keywords: + - "meet-geek" + - "meetgeek" + - "ai" + patterns: + - "(?i)meet.?geek" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MEET_GEEK_BASE_URL, MEET_GEEK_API_KEY] +--- + +# MeetGeek API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> MeetGeek is an AI-powered meeting assistant that records, transcribes, and summarizes meetings, helping teams stay aligned, follow up on action items, and boost productivity. + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `MEET_GEEK_BASE_URL` — Region Endpoint +- `MEET_GEEK_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/meta/SKILL.md b/skills/meta/SKILL.md new file mode 100644 index 00000000..572191e8 --- /dev/null +++ b/skills/meta/SKILL.md @@ -0,0 +1,57 @@ +--- +name: meta +version: "1.0.0" +description: Meta API — Meta builds technologies that help people connect, find communities +activation: + keywords: + - "meta" + - "marketing" + patterns: + - "(?i)meta" + tags: + - "marketing" + - "email" + - "campaigns" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [META_ACCESS_TOKEN] +--- + +# Meta API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.facebook.com/v21.0` + +## Actions + +**Get current user:** +``` +http(method="GET", url="https://graph.facebook.com/v21.0/me?fields=id,name,email") +``` + +**Get page:** +``` +http(method="GET", url="https://graph.facebook.com/v21.0/{page_id}?fields=name,fan_count,about") +``` + +**Post to page:** +``` +http(method="POST", url="https://graph.facebook.com/v21.0/{page_id}/feed", body={"message": "Hello from API!"}) +``` + +**Get Instagram business account:** +``` +http(method="GET", url="https://graph.facebook.com/v21.0/{page_id}?fields=instagram_business_account") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Always specify `fields` parameter to select returned data. +- Page access token needed for page operations. +- Rate limit: 200 calls/user/hour for most endpoints. diff --git a/skills/microsoft-dynamics-365-business-central/SKILL.md b/skills/microsoft-dynamics-365-business-central/SKILL.md new file mode 100644 index 00000000..e4f806b2 --- /dev/null +++ b/skills/microsoft-dynamics-365-business-central/SKILL.md @@ -0,0 +1,58 @@ +--- +name: microsoft-dynamics-365-business-central +version: "1.0.0" +description: Microsoft Dynamics 365 Business Central API — A comprehensive business management solution that helps small and mid-sized comp +activation: + keywords: + - "microsoft-dynamics-365-business-central" + - "microsoft dynamics 365 business central" + - "accounting" + patterns: + - "(?i)microsoft.?dynamics.?365.?business.?central" + tags: + - "accounting" + - "finance" + - "Accounting" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ENVIRONMENT_NAME, BUSINESS_CENTRAL_TENANT_ID] +--- + +# Microsoft Dynamics 365 Business Central API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.businesscentral.dynamics.com/v2.0/{DYNAMICS_TENANT_ID}/{DYNAMICS_ENVIRONMENT}/api/v2.0` + +## Actions + +**List companies:** +``` +http(method="GET", url="https://api.businesscentral.dynamics.com/v2.0/{DYNAMICS_TENANT_ID}/{DYNAMICS_ENVIRONMENT}/api/v2.0/companies") +``` + +**List customers:** +``` +http(method="GET", url="https://api.businesscentral.dynamics.com/v2.0/{DYNAMICS_TENANT_ID}/{DYNAMICS_ENVIRONMENT}/api/v2.0/companies({company_id})/customers?$top=10") +``` + +**List items:** +``` +http(method="GET", url="https://api.businesscentral.dynamics.com/v2.0/{DYNAMICS_TENANT_ID}/{DYNAMICS_ENVIRONMENT}/api/v2.0/companies({company_id})/items?$top=10") +``` + +**List sales orders:** +``` +http(method="GET", url="https://api.businesscentral.dynamics.com/v2.0/{DYNAMICS_TENANT_ID}/{DYNAMICS_ENVIRONMENT}/api/v2.0/companies({company_id})/salesOrders?$top=10") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Company ID is a GUID. +- OData query params: `$filter`, `$select`, `$expand`, `$top`, `$skip`. +- Resources: customers, vendors, items, salesOrders, purchaseOrders, journals. diff --git a/skills/microsoft-dynamics-365-sales/SKILL.md b/skills/microsoft-dynamics-365-sales/SKILL.md new file mode 100644 index 00000000..16b119ab --- /dev/null +++ b/skills/microsoft-dynamics-365-sales/SKILL.md @@ -0,0 +1,59 @@ +--- +name: microsoft-dynamics-365-sales +version: "1.0.0" +description: Microsoft Dynamics 365 Sales API — A sales automation platform that empowers teams to build stronger customer relat +activation: + keywords: + - "microsoft-dynamics-365-sales" + - "microsoft dynamics 365 sales" + - "crm" + patterns: + - "(?i)microsoft.?dynamics.?365.?sales" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MICROSOFT_DYNAMICS_365_SALES_ORGANIZATION_URI, MICROSOFT_DYNAMICS_365_SALES_TENANT_ID] +--- + +# Microsoft Dynamics 365 Sales API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{DYNAMICS_ORG}.crm.dynamics.com/api/data/v9.2` + +## Actions + +**List accounts:** +``` +http(method="GET", url="https://{DYNAMICS_ORG}.crm.dynamics.com/api/data/v9.2/accounts?$top=10&$select=name,revenue") +``` + +**List contacts:** +``` +http(method="GET", url="https://{DYNAMICS_ORG}.crm.dynamics.com/api/data/v9.2/contacts?$top=10&$select=fullname,emailaddress1") +``` + +**List opportunities:** +``` +http(method="GET", url="https://{DYNAMICS_ORG}.crm.dynamics.com/api/data/v9.2/opportunities?$top=10&$select=name,estimatedvalue") +``` + +**Create contact:** +``` +http(method="POST", url="https://{DYNAMICS_ORG}.crm.dynamics.com/api/data/v9.2/contacts", body={"firstname": "John","lastname": "Doe","emailaddress1": "john@example.com"}) +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- OData query params: `$filter`, `$select`, `$expand`, `$top`, `$orderby`. +- Entities: `accounts`, `contacts`, `opportunities`, `leads`, `incidents` (cases). +- Entity names are plural lowercase. diff --git a/skills/mixpanel/SKILL.md b/skills/mixpanel/SKILL.md new file mode 100644 index 00000000..9bb9c3c9 --- /dev/null +++ b/skills/mixpanel/SKILL.md @@ -0,0 +1,70 @@ +--- +name: mixpanel +version: "1.0.0" +description: Mixpanel API — events, user profiles, funnels, retention, insights +activation: + keywords: + - "mixpanel" + - "analytics" + - "mixpanel event" + exclude_keywords: + - "amplitude" + - "google analytics" + patterns: + - "(?i)mixpanel.*(event|funnel|retention|insight|profile)" + tags: + - "analytics" + - "product" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MIXPANEL_PROJECT_TOKEN, MIXPANEL_SERVICE_ACCOUNT] +--- + +# Mixpanel API + +Use the `http` tool. Different endpoints use different auth methods. + +## Ingestion API (track events) + +**Track event:** +``` +http(method="POST", url="https://api.mixpanel.com/track", headers=[{"name": "Content-Type", "value": "application/json"}], body=[{"event": "Purchase", "properties": {"token": "{MIXPANEL_PROJECT_TOKEN}", "distinct_id": "user_123", "amount": 49.99, "item": "Premium Plan"}}]) +``` + +## Query API (analytics) + +Base URL: `https://mixpanel.com/api/query` + +Requires service account auth (Basic auth with service account credentials). + +**Query events (JQL):** +``` +http(method="POST", url="https://mixpanel.com/api/query/jql", headers=[{"name": "Authorization", "value": "Basic {MIXPANEL_SERVICE_ACCOUNT}"}], body={"script": "function main() { return Events({from_date: '2026-03-01', to_date: '2026-03-27', event_selectors: [{event: 'Purchase'}]}).groupBy(['properties.item'], mixpanel.reducer.count()); }", "project_id": ""}) +``` + +**Get insights:** +``` +http(method="GET", url="https://mixpanel.com/api/query/insights?project_id=&bookmark_id=", headers=[{"name": "Authorization", "value": "Basic {MIXPANEL_SERVICE_ACCOUNT}"}]) +``` + +**Export raw events:** +``` +http(method="GET", url="https://data.mixpanel.com/api/2.0/export?from_date=2026-03-01&to_date=2026-03-27&event=[\"Purchase\"]", headers=[{"name": "Authorization", "value": "Basic {MIXPANEL_SERVICE_ACCOUNT}"}]) +``` + +## User Profiles + +**Set profile properties:** +``` +http(method="POST", url="https://api.mixpanel.com/engage#profile-set", body=[{"$token": "{MIXPANEL_PROJECT_TOKEN}", "$distinct_id": "user_123", "$set": {"$name": "Alice", "$email": "alice@example.com", "plan": "premium"}}]) +``` + +## Notes + +- Ingestion (track/engage) uses project token in the body, no auth header. +- Query API uses service account Basic auth. +- Export returns newline-delimited JSON (one event per line). +- JQL uses JavaScript-like syntax for custom queries. +- Events are eventually consistent — may take seconds to appear in queries. diff --git a/skills/mongo-db-atlas-administration/SKILL.md b/skills/mongo-db-atlas-administration/SKILL.md new file mode 100644 index 00000000..2303104f --- /dev/null +++ b/skills/mongo-db-atlas-administration/SKILL.md @@ -0,0 +1,57 @@ +--- +name: mongo-db-atlas-administration +version: "1.0.0" +description: MongoDB Atlas Administration API — MongoDB Atlas Administration is a fully managed cloud database service that enab +activation: + keywords: + - "mongo-db-atlas-administration" + - "mongodb atlas administration" + - "database" + patterns: + - "(?i)mongo.?db.?atlas.?administration" + tags: + - "database" + - "data-storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [MONGO_DB_ACCESS_TOKEN] +--- + +# MongoDB Atlas Administration API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://cloud.mongodb.com/api/atlas/v2` + +## Actions + +**List projects:** +``` +http(method="GET", url="https://cloud.mongodb.com/api/atlas/v2/groups?itemsPerPage=10") +``` + +**List clusters:** +``` +http(method="GET", url="https://cloud.mongodb.com/api/atlas/v2/groups/{project_id}/clusters") +``` + +**Get cluster:** +``` +http(method="GET", url="https://cloud.mongodb.com/api/atlas/v2/groups/{project_id}/clusters/{cluster_name}") +``` + +**List database users:** +``` +http(method="GET", url="https://cloud.mongodb.com/api/atlas/v2/groups/{project_id}/databaseUsers") +``` + +## Notes + +- Uses Digest auth or API key pair. +- `groups` = projects in Atlas terminology. +- Cluster names are unique within a project. +- Requires `Accept: application/vnd.atlas.2025-01-01+json` header for latest API version. diff --git a/skills/n8n/SKILL.md b/skills/n8n/SKILL.md new file mode 100644 index 00000000..1d0f3f77 --- /dev/null +++ b/skills/n8n/SKILL.md @@ -0,0 +1,57 @@ +--- +name: n8n +version: "1.0.0" +description: n8n API — n8n is an open-source workflow automation platform that lets you connect apps an +activation: + keywords: + - "n8n" + - "ai" + patterns: + - "(?i)n8n" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [N8N_HOST_URL, N8N_API_KEY] +--- + +# n8n API + +Use the `http` tool. API key is automatically injected via `X-N8N-API-KEY` header — **never construct auth headers manually**. + +## Base URL + +`https://{N8N_HOST}/api/v1` + +## Actions + +**List workflows:** +``` +http(method="GET", url="https://{N8N_HOST}/api/v1/workflows?limit=10") +``` + +**Get workflow:** +``` +http(method="GET", url="https://{N8N_HOST}/api/v1/workflows/{workflow_id}") +``` + +**Activate workflow:** +``` +http(method="PATCH", url="https://{N8N_HOST}/api/v1/workflows/{workflow_id}", body={"active": true}) +``` + +**List executions:** +``` +http(method="GET", url="https://{N8N_HOST}/api/v1/executions?limit=10") +``` + +## Notes + +- Self-hosted: `{N8N_HOST}` is your instance URL. +- Auth via API key in `X-N8N-API-KEY` header. +- Workflow states: `active`, `inactive`. +- Executions track workflow runs with status and timing. diff --git a/skills/neon/SKILL.md b/skills/neon/SKILL.md new file mode 100644 index 00000000..512695f0 --- /dev/null +++ b/skills/neon/SKILL.md @@ -0,0 +1,60 @@ +--- +name: neon +version: "1.0.0" +description: Neon API — Neon is a cloud-native, serverless PostgreSQL platform that provides instant dat +activation: + keywords: + - "neon" + patterns: + - "(?i)neon" + tags: + - "tools" + - "Cloud" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NEON_API_KEY] +--- + +# Neon API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://console.neon.tech/api/v2` + +## Actions + +**List projects:** +``` +http(method="GET", url="https://console.neon.tech/api/v2/projects") +``` + +**Get project:** +``` +http(method="GET", url="https://console.neon.tech/api/v2/projects/{project_id}") +``` + +**Create project:** +``` +http(method="POST", url="https://console.neon.tech/api/v2/projects", body={"project": {"name": "my-project"}}) +``` + +**List branches:** +``` +http(method="GET", url="https://console.neon.tech/api/v2/projects/{project_id}/branches") +``` + +**Create branch:** +``` +http(method="POST", url="https://console.neon.tech/api/v2/projects/{project_id}/branches", body={"branch": {"name": "dev"},"endpoints": [{"type": "read_write"}]}) +``` + +## Notes + +- Neon is serverless PostgreSQL. +- Branches are copy-on-write database forks. +- Endpoints are compute instances attached to branches. +- Connection strings in endpoint details. diff --git a/skills/netlify/SKILL.md b/skills/netlify/SKILL.md new file mode 100644 index 00000000..56f40aae --- /dev/null +++ b/skills/netlify/SKILL.md @@ -0,0 +1,62 @@ +--- +name: netlify +version: "1.0.0" +description: Netlify API — Netlify is a frontend-first cloud platform that lets developers seamlessly build +activation: + keywords: + - "netlify" + - "tools" + patterns: + - "(?i)netlify" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NETLIFY_ACCESS_TOKEN] +--- + +# Netlify API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.netlify.com/api/v1` + +## Actions + +**List sites:** +``` +http(method="GET", url="https://api.netlify.com/api/v1/sites?per_page=10") +``` + +**Get site:** +``` +http(method="GET", url="https://api.netlify.com/api/v1/sites/{site_id}") +``` + +**List deploys:** +``` +http(method="GET", url="https://api.netlify.com/api/v1/sites/{site_id}/deploys?per_page=10") +``` + +**Trigger deploy:** +``` +http(method="POST", url="https://api.netlify.com/api/v1/sites/{site_id}/builds") +``` + +**List forms:** +``` +http(method="GET", url="https://api.netlify.com/api/v1/sites/{site_id}/forms") +``` + +## Notes + +- Site IDs are UUIDs or subdomain names. +- Deploy states: `new`, `uploading`, `uploaded`, `preparing`, `prepared`, `ready`, `error`. +- Build hooks can trigger deploys via POST to a URL. +- Pagination: `page` and `per_page` params. diff --git a/skills/netsuite/SKILL.md b/skills/netsuite/SKILL.md new file mode 100644 index 00000000..b9250bdc --- /dev/null +++ b/skills/netsuite/SKILL.md @@ -0,0 +1,49 @@ +--- +name: netsuite +version: "1.0.0" +description: Netsuite API — NetSuite is a cloud-based ERP platform that helps businesses manage finance +activation: + keywords: + - "netsuite" + - "accounting" + patterns: + - "(?i)netsuite" + tags: + - "accounting" + - "finance" + - "Accounting" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NETSUITE_ACCOUNT_ID, CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_ID, ACCESS_TOKEN_SECRET] +--- + +# Netsuite API + +Use the `http` tool. Credentials are automatically injected. + +> NetSuite is a cloud-based ERP platform that helps businesses manage finance, operations, customer relationships, and eCommerce in a unified system for better efficiency and scalability. + +## Authentication + + +## Required Credentials + +- `NETSUITE_ACCOUNT_ID` — Account ID +- `CONSUMER_KEY` — Consumer Key +- `CONSUMER_SECRET` — Consumer Secret +- `ACCESS_TOKEN_ID` — Access Token ID +- `ACCESS_TOKEN_SECRET` — Access Token Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/news-data-io/SKILL.md b/skills/news-data-io/SKILL.md new file mode 100644 index 00000000..4c68c8f5 --- /dev/null +++ b/skills/news-data-io/SKILL.md @@ -0,0 +1,46 @@ +--- +name: news-data-io +version: "1.0.0" +description: NewsData.io API — NewsData.io provides a real-time news API that aggregates global news articles b +activation: + keywords: + - "news-data-io" + - "newsdata.io" + - "ai" + patterns: + - "(?i)news.?data.?io" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NEWSDATAIO_API_KEY] +--- + +# NewsData.io API + +Use the `http` tool. Credentials are automatically injected. + +> NewsData.io provides a real-time news API that aggregates global news articles by keyword, category, source, or language, ideal for media monitoring, research, and analysis applications. + +## Authentication + + +## Required Credentials + +- `NEWSDATAIO_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ngrok/SKILL.md b/skills/ngrok/SKILL.md new file mode 100644 index 00000000..96ad5fdd --- /dev/null +++ b/skills/ngrok/SKILL.md @@ -0,0 +1,56 @@ +--- +name: ngrok +version: "1.0.0" +description: Ngrok API — Ngrok is a secure connectivity platform that enables developers to expose local +activation: + keywords: + - "ngrok" + - "connectivity" + patterns: + - "(?i)ngrok" + tags: + - "tools" + - "connectivity" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NGROK_API_KEY] +--- + +# Ngrok API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://api.ngrok.com` + +## Actions + +**List tunnels:** +``` +http(method="GET", url="https://api.ngrok.com/tunnels") +``` + +**List endpoints:** +``` +http(method="GET", url="https://api.ngrok.com/endpoints") +``` + +**List domains:** +``` +http(method="GET", url="https://api.ngrok.com/reserved_domains") +``` + +**Create reserved domain:** +``` +http(method="POST", url="https://api.ngrok.com/reserved_domains", body={"name": "myapp","region": "us"}) +``` + +## Notes + +- Auth via `Authorization: Bearer {token}` or `Ngrok-Version: 2` header. +- Tunnels expose local services to the internet. +- Reserved domains persist across tunnel restarts. +- Regions: `us`, `eu`, `ap`, `au`, `sa`, `jp`, `in`. diff --git a/skills/notion/SKILL.md b/skills/notion/SKILL.md new file mode 100644 index 00000000..e8448cf8 --- /dev/null +++ b/skills/notion/SKILL.md @@ -0,0 +1,84 @@ +--- +name: notion +version: "1.0.0" +description: Notion API — pages, databases, blocks, search, comments +activation: + keywords: + - "notion" + - "notion page" + - "notion database" + - "notion doc" + exclude_keywords: + - "confluence" + - "google docs" + patterns: + - "(?i)notion.*(page|database|block|doc)" + - "(?i)(create|update|search|query).*notion" + tags: + - "productivity" + - "wiki" + - "documentation" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [NOTION_API_KEY] +--- + +# Notion API + +Use the `http` tool. Credentials are automatically injected. Always include `Notion-Version` header. + +## Base URL + +`https://api.notion.com/v1` + +Required header on every request: +``` +headers=[{"name": "Notion-Version", "value": "2022-06-28"}] +``` + +## Actions + +**Search pages/databases:** +``` +http(method="POST", url="https://api.notion.com/v1/search", headers=[{"name": "Notion-Version", "value": "2022-06-28"}], body={"query": "search text", "filter": {"property": "object", "value": "page"}, "page_size": 10}) +``` + +**Get page:** +``` +http(method="GET", url="https://api.notion.com/v1/pages/", headers=[{"name": "Notion-Version", "value": "2022-06-28"}]) +``` + +**Create page:** +``` +http(method="POST", url="https://api.notion.com/v1/pages", headers=[{"name": "Notion-Version", "value": "2022-06-28"}], body={"parent": {"database_id": ""}, "properties": {"Name": {"title": [{"text": {"content": "Page Title"}}]}}, "children": [{"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"type": "text", "text": {"content": "Body text"}}]}}]}) +``` + +**Query database:** +``` +http(method="POST", url="https://api.notion.com/v1/databases//query", headers=[{"name": "Notion-Version", "value": "2022-06-28"}], body={"filter": {"property": "Status", "select": {"equals": "In Progress"}}, "page_size": 20}) +``` + +**Update page properties:** +``` +http(method="PATCH", url="https://api.notion.com/v1/pages/", headers=[{"name": "Notion-Version", "value": "2022-06-28"}], body={"properties": {"Status": {"select": {"name": "Done"}}}}) +``` + +**Get block children (page content):** +``` +http(method="GET", url="https://api.notion.com/v1/blocks//children?page_size=100", headers=[{"name": "Notion-Version", "value": "2022-06-28"}]) +``` + +**Append blocks to page:** +``` +http(method="PATCH", url="https://api.notion.com/v1/blocks//children", headers=[{"name": "Notion-Version", "value": "2022-06-28"}], body={"children": [{"object": "block", "type": "heading_2", "heading_2": {"rich_text": [{"type": "text", "text": {"content": "New Section"}}]}}]}) +``` + +## Notes + +- Page IDs are UUIDs (with or without dashes). Extract from URL: `notion.so/Page-Title-<32hex>`. +- All text is `rich_text` arrays: `[{"type": "text", "text": {"content": "..."}}]`. +- Property types: `title`, `rich_text`, `number`, `select`, `multi_select`, `date`, `checkbox`, `url`, `email`, `phone_number`, `relation`, `people`. +- Database filter operators vary by type: `equals`, `contains`, `greater_than`, `is_not_empty`, etc. +- Pagination: use `start_cursor` from `next_cursor` in response. Check `has_more`. diff --git a/skills/nylas/SKILL.md b/skills/nylas/SKILL.md new file mode 100644 index 00000000..7b4df2c3 --- /dev/null +++ b/skills/nylas/SKILL.md @@ -0,0 +1,61 @@ +--- +name: nylas +version: "1.0.0" +description: Nylas API — Nylas provides a unified communications API platform enabling developers to embe +activation: + keywords: + - "nylas" + - "integration" + patterns: + - "(?i)nylas" + tags: + - "tools" + - "integration" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NYLAS_BASE_URL, NYLAS_API_KEY] +--- + +# Nylas API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.us.nylas.com/v3` + +## Actions + +**List messages:** +``` +http(method="GET", url="https://api.us.nylas.com/v3/grants/{grant_id}/messages?limit=10") +``` + +**Get message:** +``` +http(method="GET", url="https://api.us.nylas.com/v3/grants/{grant_id}/messages/{message_id}") +``` + +**Send message:** +``` +http(method="POST", url="https://api.us.nylas.com/v3/grants/{grant_id}/messages/send", body={"to": [{"email": "recipient@example.com","name": "Jane"}],"subject": "Hello","body": "Message body"}) +``` + +**List events:** +``` +http(method="GET", url="https://api.us.nylas.com/v3/grants/{grant_id}/events?calendar_id=primary&limit=10") +``` + +**Create event:** +``` +http(method="POST", url="https://api.us.nylas.com/v3/grants/{grant_id}/events?calendar_id=primary", body={"title": "Meeting","when": {"start_time": 1711540800,"end_time": 1711544400}}) +``` + +## Notes + +- Grant ID represents a connected account. +- Supports email (Gmail, Outlook, IMAP) and calendar. +- Times are Unix timestamps. +- Calendar ID `primary` for the default calendar. diff --git a/skills/nyne-ai/SKILL.md b/skills/nyne-ai/SKILL.md new file mode 100644 index 00000000..3a1bae3a --- /dev/null +++ b/skills/nyne-ai/SKILL.md @@ -0,0 +1,49 @@ +--- +name: nyne-ai +version: "1.0.0" +description: Nyne.ai API — Nyne.ai surfaces person- and business-level purchase-intent signals by monitorin +activation: + keywords: + - "nyne-ai" + - "nyne.ai" + - "ai" + patterns: + - "(?i)nyne.?ai" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [NYNE_AI_API_KEY, NYNE_AI_API_SECRET] +--- + +# Nyne.ai API + +Use the `http` tool. API key is automatically injected via `X-API-Key` header — **never construct auth headers manually**. + +> Nyne.ai surfaces person- and business-level purchase-intent signals by monitoring over 200 million sources for real-time buying events, life-changes and enriched contact data, delivered through APIs a + +## Authentication + +This integration uses **API Key** authentication via the `X-API-Key` header. +Format: `X-API-Key: ...` + +## Required Credentials + +- `NYNE_AI_API_KEY` — API Key +- `NYNE_AI_API_SECRET` — API Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/octave/SKILL.md b/skills/octave/SKILL.md new file mode 100644 index 00000000..31a9e9b4 --- /dev/null +++ b/skills/octave/SKILL.md @@ -0,0 +1,47 @@ +--- +name: octave +version: "1.0.0" +description: Octave API — OctaveHQ is a generative AI platform for Go‑to‑Market teams +activation: + keywords: + - "octave" + - "ai" + patterns: + - "(?i)octave" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [OCTAVE_API_KEY] +--- + +# Octave API + +Use the `http` tool. API key is automatically injected via `api_key` header — **never construct auth headers manually**. + +> OctaveHQ is a generative AI platform for Go‑to‑Market teams, automatically refining ideal customer profiles and outbound messaging in real time—providing dynamic playbooks, personalized outreach, and + +## Authentication + +This integration uses **API Key** authentication via the `api_key` header. +Format: `api_key: ...` + +## Required Credentials + +- `OCTAVE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/one-drive/SKILL.md b/skills/one-drive/SKILL.md new file mode 100644 index 00000000..9a7d699d --- /dev/null +++ b/skills/one-drive/SKILL.md @@ -0,0 +1,59 @@ +--- +name: one-drive +version: "1.0.0" +description: OneDrive API — A cloud storage service that allows users to store, sync +activation: + keywords: + - "one-drive" + - "onedrive" + - "ai" + patterns: + - "(?i)one.?drive" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +--- + +# OneDrive API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.microsoft.com/v1.0` + +## Actions + +**List root files:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/drive/root/children?$top=10") +``` + +**Get file metadata:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/drive/items/{item_id}") +``` + +**Search files:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/drive/root/search(q='report')?$top=10") +``` + +**Create folder:** +``` +http(method="POST", url="https://graph.microsoft.com/v1.0/me/drive/root/children", body={"name": "New Folder","folder": {},"@microsoft.graph.conflictBehavior": "rename"}) +``` + +**Upload small file:** +``` +http(method="PUT", url="https://graph.microsoft.com/v1.0/me/drive/root:/Documents/file.txt:/content", body="file content here") +``` + +## Notes + +- Uses OAuth 2.0 via Microsoft Graph — credentials are auto-injected. +- Item paths use colon syntax: `/me/drive/root:/path/to/file:`. +- Small files (<4MB) use simple PUT upload; larger need upload session. +- `$select`, `$filter`, `$orderby` OData query params supported. diff --git a/skills/one-page-crm/SKILL.md b/skills/one-page-crm/SKILL.md new file mode 100644 index 00000000..546e14a7 --- /dev/null +++ b/skills/one-page-crm/SKILL.md @@ -0,0 +1,48 @@ +--- +name: one-page-crm +version: "1.0.0" +description: OnePageCRM API — OnePageCRM is an action-focused CRM designed to help small and medium-sized busi +activation: + keywords: + - "one-page-crm" + - "onepagecrm" + - "crm" + patterns: + - "(?i)one.?page.?crm" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ONE_PAGE_CRM_USER_ID, ONE_PAGE_CRM_API_KEY] +--- + +# OnePageCRM API + +Use the `http` tool. Credentials are automatically injected. + +> OnePageCRM is an action-focused CRM designed to help small and medium-sized businesses manage contacts, track follow-ups and drive deals by turning each lead into a prioritized next action. + +## Authentication + + +## Required Credentials + +- `ONE_PAGE_CRM_USER_ID` — User ID +- `ONE_PAGE_CRM_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/open-phone/SKILL.md b/skills/open-phone/SKILL.md new file mode 100644 index 00000000..f4654ff4 --- /dev/null +++ b/skills/open-phone/SKILL.md @@ -0,0 +1,56 @@ +--- +name: open-phone +version: "1.0.0" +description: OpenPhone API — OpenPhone is a modern business phone system that unifies VoIP calls +activation: + keywords: + - "open-phone" + - "openphone" + - "other" + patterns: + - "(?i)open.?phone" + tags: + - "tools" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [OPENPHONE_API_KEY] +--- + +# OpenPhone API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://api.openphone.com/v1` + +## Actions + +**List phone numbers:** +``` +http(method="GET", url="https://api.openphone.com/v1/phone-numbers") +``` + +**Send message:** +``` +http(method="POST", url="https://api.openphone.com/v1/messages", body={"from": "+1234567890","to": ["+0987654321"],"content": "Hello!"}) +``` + +**List messages:** +``` +http(method="GET", url="https://api.openphone.com/v1/messages?phoneNumberId={phone_number_id}&maxResults=10") +``` + +**List calls:** +``` +http(method="GET", url="https://api.openphone.com/v1/calls?phoneNumberId={phone_number_id}&maxResults=10") +``` + +## Notes + +- Phone numbers in E.164 format: `+1234567890`. +- Messages can be SMS or MMS. +- Calls include direction, duration, and recording URLs. +- Pagination: `pageToken` from response. diff --git a/skills/open-router/SKILL.md b/skills/open-router/SKILL.md new file mode 100644 index 00000000..ec34bd81 --- /dev/null +++ b/skills/open-router/SKILL.md @@ -0,0 +1,53 @@ +--- +name: open-router +version: "1.0.0" +description: OpenRouter API — OpenRouter is a unified API and marketplace that lets developers access, compare +activation: + keywords: + - "open-router" + - "openrouter" + - "ai" + patterns: + - "(?i)open.?router" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [OPEN_ROUTER_API_KEY, OPEN_ROUTER_PROVISIONING_KEY] +--- + +# OpenRouter API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://openrouter.ai/api/v1` + +## Actions + +**Chat completion:** +``` +http(method="POST", url="https://openrouter.ai/api/v1/chat/completions", body={"model": "anthropic/claude-sonnet-4-20250514","messages": [{"role": "user","content": "Hello"}]}) +``` + +**List models:** +``` +http(method="GET", url="https://openrouter.ai/api/v1/models") +``` + +**Get generation:** +``` +http(method="GET", url="https://openrouter.ai/api/v1/generation?id={generation_id}") +``` + +## Notes + +- OpenAI-compatible API format. +- Model IDs: `provider/model-name` (e.g., `anthropic/claude-sonnet-4-20250514`, `openai/gpt-4o`). +- Supports `stream: true` for streaming. +- `X-Title` header sets the app name shown to model providers. diff --git a/skills/openai/SKILL.md b/skills/openai/SKILL.md new file mode 100644 index 00000000..14190106 --- /dev/null +++ b/skills/openai/SKILL.md @@ -0,0 +1,75 @@ +--- +name: openai +version: "1.0.0" +description: OpenAI API — completions, embeddings, images, audio, moderation +activation: + keywords: + - "openai" + - "openai api" + - "dall-e" + - "whisper" + - "gpt" + exclude_keywords: + - "anthropic" + - "gemini" + patterns: + - "(?i)openai.*(api|completion|embedding|image|audio)" + - "(?i)(generate|create).*(image|embedding).*openai" + - "(?i)dall.?e" + tags: + - "ai" + - "llm" + - "image-generation" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [OPENAI_API_KEY] +--- + +# OpenAI API + +Use the `http` tool. Credentials are automatically injected for `api.openai.com`. + +## Base URL + +`https://api.openai.com/v1` + +## Actions + +**Chat completion:** +``` +http(method="POST", url="https://api.openai.com/v1/chat/completions", body={"model": "gpt-4o", "messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Explain quantum computing in one paragraph."}], "temperature": 0.7, "max_tokens": 500}) +``` + +**Create embedding:** +``` +http(method="POST", url="https://api.openai.com/v1/embeddings", body={"model": "text-embedding-3-small", "input": "The quick brown fox"}) +``` + +**Generate image (DALL-E):** +``` +http(method="POST", url="https://api.openai.com/v1/images/generations", body={"model": "dall-e-3", "prompt": "A serene mountain lake at sunset", "size": "1024x1024", "n": 1, "quality": "standard"}) +``` + +**Transcribe audio (Whisper):** +Requires multipart upload — use file upload approach. + +**Text moderation:** +``` +http(method="POST", url="https://api.openai.com/v1/moderations", body={"input": "Text to check"}) +``` + +**List models:** +``` +http(method="GET", url="https://api.openai.com/v1/models") +``` + +## Notes + +- Chat models: `gpt-4o`, `gpt-4o-mini`, `gpt-4-turbo`, `o1-mini`, `o1-preview`. +- Image sizes: `1024x1024`, `1792x1024`, `1024x1792` (DALL-E 3). +- Embedding dimensions: 1536 (text-embedding-3-small), 3072 (text-embedding-3-large). +- Responses include `usage` with `prompt_tokens`, `completion_tokens`, `total_tokens`. +- Rate limits vary by model and tier. Check `x-ratelimit-remaining-*` headers. +- For structured output: use `response_format: {"type": "json_object"}`. diff --git a/skills/ordinal/SKILL.md b/skills/ordinal/SKILL.md new file mode 100644 index 00000000..2ed5f096 --- /dev/null +++ b/skills/ordinal/SKILL.md @@ -0,0 +1,46 @@ +--- +name: ordinal +version: "1.0.0" +description: Ordinal API — Ordinal is a social media management platform that enables teams to draft, plan +activation: + keywords: + - "ordinal" + - "social media management" + patterns: + - "(?i)ordinal" + tags: + - "tools" + - "social-media-management" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [ORDINAL_API_KEY] +--- + +# Ordinal API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Ordinal is a social media management platform that enables teams to draft, plan, schedule, publish, automate engagement (likes, comments, reposts), and track analytics across major networks from a uni + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Bearer ...` + +## Required Credentials + +- `ORDINAL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/outlook-calendar/SKILL.md b/skills/outlook-calendar/SKILL.md new file mode 100644 index 00000000..98c49f93 --- /dev/null +++ b/skills/outlook-calendar/SKILL.md @@ -0,0 +1,59 @@ +--- +name: outlook-calendar +version: "1.0.0" +description: Outlook Calendar API — A digital calendar platform that lets users schedule events, manage appointments +activation: + keywords: + - "outlook-calendar" + - "outlook calendar" + - "ai" + patterns: + - "(?i)outlook.?calendar" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +--- + +# Outlook Calendar API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.microsoft.com/v1.0` + +## Actions + +**List events:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/calendar/events?$top=10&$orderby=start/dateTime") +``` + +**Get event:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/events/{event_id}") +``` + +**Create event:** +``` +http(method="POST", url="https://graph.microsoft.com/v1.0/me/events", body={"subject": "Team Meeting","start": {"dateTime": "2026-03-28T10:00:00","timeZone": "America/New_York"},"end": {"dateTime": "2026-03-28T11:00:00","timeZone": "America/New_York"},"attendees": [{"emailAddress": {"address": "john@example.com"},"type": "required"}]}) +``` + +**Delete event:** +``` +http(method="DELETE", url="https://graph.microsoft.com/v1.0/me/events/{event_id}") +``` + +**List calendars:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/calendars") +``` + +## Notes + +- Uses OAuth 2.0 via Microsoft Graph — credentials are auto-injected. +- DateTime format: `YYYY-MM-DDTHH:MM:SS` with separate `timeZone`. +- Attendee types: `required`, `optional`, `resource`. +- Recurrence uses `recurrence` object with `pattern` and `range`. diff --git a/skills/outlook-mail/SKILL.md b/skills/outlook-mail/SKILL.md new file mode 100644 index 00000000..6a6df9d6 --- /dev/null +++ b/skills/outlook-mail/SKILL.md @@ -0,0 +1,59 @@ +--- +name: outlook-mail +version: "1.0.0" +description: Outlook Mail API — An email platform that offers robust inbox organization +activation: + keywords: + - "outlook-mail" + - "outlook mail" + - "ai" + patterns: + - "(?i)outlook.?mail" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +--- + +# Outlook Mail API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.microsoft.com/v1.0` + +## Actions + +**List messages:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/messages?$top=10&$orderby=receivedDateTime+desc") +``` + +**Get message:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/messages/{message_id}") +``` + +**Send email:** +``` +http(method="POST", url="https://graph.microsoft.com/v1.0/me/sendMail", body={"message": {"subject": "Hello","body": {"contentType": "HTML","content": "

Email body

"},"toRecipients": [{"emailAddress": {"address": "recipient@example.com"}}]}}) +``` + +**Search messages:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/messages?$search="keyword"&$top=10") +``` + +**List folders:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/mailFolders") +``` + +## Notes + +- Uses OAuth 2.0 via Microsoft Graph — credentials are auto-injected. +- Content types: `HTML` or `Text`. +- Use `$search` for KQL search queries. +- `$filter` supports OData expressions: `from/emailAddress/address eq 'john@example.com'`. diff --git a/skills/parsehub/SKILL.md b/skills/parsehub/SKILL.md new file mode 100644 index 00000000..f096d882 --- /dev/null +++ b/skills/parsehub/SKILL.md @@ -0,0 +1,45 @@ +--- +name: parsehub +version: "1.0.0" +description: Parsehub API — ParseHub is a visual, no-code web scraping tool that enables users to extract st +activation: + keywords: + - "parsehub" + - "scraper" + patterns: + - "(?i)parsehub" + tags: + - "tools" + - "scraper" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PARSEHUB_API_KEY] +--- + +# Parsehub API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> ParseHub is a visual, no-code web scraping tool that enables users to extract structured data from dynamic websites—including those built with JavaScript or AJAX—and export the results via JSON, CSV/E + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `PARSEHUB_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/parsera/SKILL.md b/skills/parsera/SKILL.md new file mode 100644 index 00000000..bd36c99a --- /dev/null +++ b/skills/parsera/SKILL.md @@ -0,0 +1,46 @@ +--- +name: parsera +version: "1.0.0" +description: Parsera API — Parsera is an AI-powered web-data-extraction platform that allows users to input +activation: + keywords: + - "parsera" + - "scraper" + patterns: + - "(?i)parsera" + tags: + - "tools" + - "scraper" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PARSERA_API_KEY] +--- + +# Parsera API + +Use the `http` tool. API key is automatically injected via `X-API-KEY` header — **never construct auth headers manually**. + +> Parsera is an AI-powered web-data-extraction platform that allows users to input a URL and natural-language instructions to extract structured data or generate reusable scraping scripts — enabling dev + +## Authentication + +This integration uses **API Key** authentication via the `X-API-KEY` header. +Format: `X-API-KEY: ...` + +## Required Credentials + +- `PARSERA_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/partner-stack-partner/SKILL.md b/skills/partner-stack-partner/SKILL.md new file mode 100644 index 00000000..dbe02de5 --- /dev/null +++ b/skills/partner-stack-partner/SKILL.md @@ -0,0 +1,46 @@ +--- +name: partner-stack-partner +version: "1.0.0" +description: PartnerStack Partner API — PartnerStack is a partner relationship management platform that helps companies +activation: + keywords: + - "partner-stack-partner" + - "partnerstack partner" + - "prm" + patterns: + - "(?i)partner.?stack.?partner" + tags: + - "tools" + - "prm" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PARTNERSTACK_PARTNER_API_KEY] +--- + +# PartnerStack Partner API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> PartnerStack is a partner relationship management platform that helps companies scale affiliate, referral, and reseller programs through automated tracking, payouts, and performance insights. The Part + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `PARTNERSTACK_PARTNER_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/paystack/SKILL.md b/skills/paystack/SKILL.md new file mode 100644 index 00000000..67529e52 --- /dev/null +++ b/skills/paystack/SKILL.md @@ -0,0 +1,61 @@ +--- +name: paystack +version: "1.0.0" +description: Paystack API — Paystack is a payments platform that enables businesses to accept online and off +activation: + keywords: + - "paystack" + - "payment gateway" + patterns: + - "(?i)paystack" + tags: + - "tools" + - "payment-gateway" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PAYSTACK_API_TOKEN] +--- + +# Paystack API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.paystack.co` + +## Actions + +**Initialize transaction:** +``` +http(method="POST", url="https://api.paystack.co/transaction/initialize", body={"email": "customer@example.com","amount": 500000}) +``` + +**Verify transaction:** +``` +http(method="GET", url="https://api.paystack.co/transaction/verify/{reference}") +``` + +**List transactions:** +``` +http(method="GET", url="https://api.paystack.co/transaction?perPage=10") +``` + +**List customers:** +``` +http(method="GET", url="https://api.paystack.co/customer?perPage=10") +``` + +**Create plan:** +``` +http(method="POST", url="https://api.paystack.co/plan", body={"name": "Monthly Basic","interval": "monthly","amount": 500000}) +``` + +## Notes + +- Amounts are in the smallest currency unit (kobo for NGN): ₦5,000 = `500000`. +- Transaction reference is unique per transaction. +- Plan intervals: `hourly`, `daily`, `weekly`, `monthly`, `biannually`, `annually`. +- Currencies: `NGN`, `GHS`, `ZAR`, `USD`. diff --git a/skills/people-data-labs/SKILL.md b/skills/people-data-labs/SKILL.md new file mode 100644 index 00000000..3bcef0df --- /dev/null +++ b/skills/people-data-labs/SKILL.md @@ -0,0 +1,48 @@ +--- +name: people-data-labs +version: "1.0.0" +description: PeopleDataLabs API — People Data Labs provides B2B data enrichment services with access to global dat +activation: + keywords: + - "people-data-labs" + - "peopledatalabs" + - "ai" + patterns: + - "(?i)people.?data.?labs" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PEOPLEDATALABS_API_KEY] +--- + +# PeopleDataLabs API + +Use the `http` tool. API key is automatically injected via `X-Api-Key` header — **never construct auth headers manually**. + +> People Data Labs provides B2B data enrichment services with access to global datasets of professionals and companies. It helps teams improve lead scoring, segmentation, and personalization. + +## Authentication + +This integration uses **API Key** authentication via the `X-Api-Key` header. +Format: `X-Api-Key: ...` + +## Required Credentials + +- `PEOPLEDATALABS_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/perplexity/SKILL.md b/skills/perplexity/SKILL.md new file mode 100644 index 00000000..1d10af5d --- /dev/null +++ b/skills/perplexity/SKILL.md @@ -0,0 +1,42 @@ +--- +name: perplexity +version: "1.0.0" +description: Perplexity API — Perplexity is an AI-powered search and answer engine that provides real-time +activation: + keywords: + - "perplexity" + - "ai" + patterns: + - "(?i)perplexity" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PERPLEXITY_API_KEY] +--- + +# Perplexity API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.perplexity.ai` + +## Actions + +**Chat completion:** +``` +http(method="POST", url="https://api.perplexity.ai/chat/completions", body={"model": "sonar","messages": [{"role": "user","content": "What happened in tech news today?"}]}) +``` + +## Notes + +- OpenAI-compatible API format. +- Models: `sonar` (web search), `sonar-pro` (advanced), `sonar-reasoning` (chain-of-thought). +- Responses include `citations` array with source URLs. +- Supports `search_recency_filter`: `month`, `week`, `day`, `hour`. diff --git a/skills/personal-ai/SKILL.md b/skills/personal-ai/SKILL.md new file mode 100644 index 00000000..7c3ef3b0 --- /dev/null +++ b/skills/personal-ai/SKILL.md @@ -0,0 +1,49 @@ +--- +name: personal-ai +version: "1.0.0" +description: Personal AI API — Personal AI allows users to create a digital memory by recording their thoughts +activation: + keywords: + - "personal-ai" + - "personal ai" + - "ai" + patterns: + - "(?i)personal.?ai" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PERSONAL_AI_API_KEY, PERSONAL_AI_DOMAIN_NAME] +--- + +# Personal AI API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> Personal AI allows users to create a digital memory by recording their thoughts, interactions, and decisions, enabling a more personalized and context-aware assistant experience. + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `PERSONAL_AI_API_KEY` — API Key +- `PERSONAL_AI_DOMAIN_NAME` — Domain Name + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/phantom-buster/SKILL.md b/skills/phantom-buster/SKILL.md new file mode 100644 index 00000000..59f51448 --- /dev/null +++ b/skills/phantom-buster/SKILL.md @@ -0,0 +1,48 @@ +--- +name: phantom-buster +version: "1.0.0" +description: PhantomBuster API — PhantomBuster is a cloud‑based automation platform featuring prebuilt “Phantoms” +activation: + keywords: + - "phantom-buster" + - "phantombuster" + - "ai" + patterns: + - "(?i)phantom.?buster" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PHANTOM_BUSTER_API_KEY] +--- + +# PhantomBuster API + +Use the `http` tool. API key is automatically injected via `X-Phantombuster-Key-1` header — **never construct auth headers manually**. + +> PhantomBuster is a cloud‑based automation platform featuring prebuilt “Phantoms” and visual “Workflows” that extract leads and automate engagement on social platforms like LinkedIn, Instagram, Twitter + +## Authentication + +This integration uses **API Key** authentication via the `X-Phantombuster-Key-1` header. +Format: `X-Phantombuster-Key-1: ...` + +## Required Credentials + +- `PHANTOM_BUSTER_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/pinecone/SKILL.md b/skills/pinecone/SKILL.md new file mode 100644 index 00000000..48a2109a --- /dev/null +++ b/skills/pinecone/SKILL.md @@ -0,0 +1,62 @@ +--- +name: pinecone +version: "1.0.0" +description: Pinecone API — Pinecone is a vector database designed for building AI applications with fast an +activation: + keywords: + - "pinecone" + - "ai" + patterns: + - "(?i)pinecone" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PINECONE_INDEX_HOST, PINECONE_API_KEY, PINECONE_ASSISTANT_HOST] +--- + +# Pinecone API + +Use the `http` tool. API key is automatically injected via `Api-Key` header — **never construct auth headers manually**. + +## Base URL + +`https://api.pinecone.io` + +## Actions + +**List indexes:** +``` +http(method="GET", url="https://api.pinecone.io/indexes") +``` + +**Create index:** +``` +http(method="POST", url="https://api.pinecone.io/indexes", body={"name": "my-index","dimension": 1536,"metric": "cosine","spec": {"serverless": {"cloud": "aws","region": "us-east-1"}}}) +``` + +**Describe index:** +``` +http(method="GET", url="https://api.pinecone.io/indexes/{index_name}") +``` + +**Upsert vectors:** +``` +http(method="POST", url="https://{index_host}/vectors/upsert", body={"vectors": [{"id": "vec1","values": [0.1,0.2,0.3]}]}) +``` + +**Query vectors:** +``` +http(method="POST", url="https://{index_host}/query", body={"vector": [0.1,0.2,0.3],"topK": 5,"includeMetadata": true}) +``` + +## Notes + +- Control plane: `api.pinecone.io` (manage indexes). +- Data plane: `{index_host}` from describe index response (upsert/query). +- Metrics: `cosine`, `euclidean`, `dotproduct`. +- Vectors can include `metadata` for filtering. diff --git a/skills/pipedrive/SKILL.md b/skills/pipedrive/SKILL.md new file mode 100644 index 00000000..bc18faa0 --- /dev/null +++ b/skills/pipedrive/SKILL.md @@ -0,0 +1,83 @@ +--- +name: pipedrive +version: "1.0.0" +description: Pipedrive CRM API — deals, persons, organizations, activities, notes +activation: + keywords: + - "pipedrive" + - "pipedrive deal" + - "pipeline" + exclude_keywords: + - "hubspot" + - "salesforce" + patterns: + - "(?i)pipedrive.*(deal|person|organization|activity)" + tags: + - "crm" + - "sales" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PIPEDRIVE_API_TOKEN, PIPEDRIVE_DOMAIN] +--- + +# Pipedrive API + +Use the `http` tool. Auth uses `api_token` query parameter. + +## Base URL + +`https://{PIPEDRIVE_DOMAIN}.pipedrive.com/api/v1` + +Append `?api_token={PIPEDRIVE_API_TOKEN}` to all URLs. + +## Actions + +**List deals:** +``` +http(method="GET", url="https://{domain}.pipedrive.com/api/v1/deals?api_token={token}&status=open&sort=add_time%20DESC&limit=20") +``` + +**Create deal:** +``` +http(method="POST", url="https://{domain}.pipedrive.com/api/v1/deals?api_token={token}", body={"title": "New Deal", "value": 5000, "currency": "USD", "person_id": 123, "org_id": 456, "stage_id": 1}) +``` + +**Update deal:** +``` +http(method="PUT", url="https://{domain}.pipedrive.com/api/v1/deals/?api_token={token}", body={"status": "won", "won_time": "2026-03-27 10:00:00"}) +``` + +**List persons:** +``` +http(method="GET", url="https://{domain}.pipedrive.com/api/v1/persons?api_token={token}&limit=20") +``` + +**Create person:** +``` +http(method="POST", url="https://{domain}.pipedrive.com/api/v1/persons?api_token={token}", body={"name": "John Doe", "email": [{"value": "john@acme.com", "primary": true}], "phone": [{"value": "+1234567890", "primary": true}], "org_id": 456}) +``` + +**Search:** +``` +http(method="GET", url="https://{domain}.pipedrive.com/api/v1/itemSearch?api_token={token}&term=acme&item_types=deal,person,organization&limit=10") +``` + +**Add activity:** +``` +http(method="POST", url="https://{domain}.pipedrive.com/api/v1/activities?api_token={token}", body={"subject": "Follow-up call", "type": "call", "due_date": "2026-04-01", "deal_id": 789, "person_id": 123}) +``` + +**Add note:** +``` +http(method="POST", url="https://{domain}.pipedrive.com/api/v1/notes?api_token={token}", body={"content": "Discussed pricing", "deal_id": 789}) +``` + +## Notes + +- All responses: `{"success": true, "data": {...}}` or `{"success": false, "error": "..."}`. +- Deal status: `open`, `won`, `lost`, `deleted`. +- Email/phone fields are arrays of `{"value": "...", "primary": true/false}`. +- Pagination: `start` + `limit` params. Check `additional_data.pagination.more_items_in_collection`. +- Activity types: `call`, `meeting`, `task`, `deadline`, `email`, `lunch`. diff --git a/skills/placekey/SKILL.md b/skills/placekey/SKILL.md new file mode 100644 index 00000000..caae08a0 --- /dev/null +++ b/skills/placekey/SKILL.md @@ -0,0 +1,46 @@ +--- +name: placekey +version: "1.0.0" +description: Placekey API — Placekey is a developer-oriented service that provides a universal identifier (P +activation: + keywords: + - "placekey" + - "geospatial" + patterns: + - "(?i)placekey" + tags: + - "tools" + - "geospatial" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PLACEKEY_API_KEY] +--- + +# Placekey API + +Use the `http` tool. API key is automatically injected via `apikey` header — **never construct auth headers manually**. + +> Placekey is a developer-oriented service that provides a universal identifier (Placekey) for any physical place by address or geographic coordinates, enabling easier address/POI matching, deduplicatio + +## Authentication + +This integration uses **API Key** authentication via the `apikey` header. +Format: `apikey: ...` + +## Required Credentials + +- `PLACEKEY_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/postgresql/SKILL.md b/skills/postgresql/SKILL.md new file mode 100644 index 00000000..f81dfa52 --- /dev/null +++ b/skills/postgresql/SKILL.md @@ -0,0 +1,49 @@ +--- +name: postgresql +version: "1.0.0" +description: Postgresql API — PostgreSQL is an advanced open-source relational database known for its stabilit +activation: + keywords: + - "postgresql" + - "database" + patterns: + - "(?i)postgresql" + tags: + - "database" + - "data-storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [POSTGRES_HOST, POSTGRES_USERNAME, POSTGRES_PASSWORD, POSTGRES_PORT, POSTGRES_NAME, POSTGRES_SSL] +--- + +# Postgresql API + +Use the `http` tool. Credentials are automatically injected. + +> PostgreSQL is an advanced open-source relational database known for its stability, extensibility, and support for complex queries and large datasets across modern applications. + +## Authentication + + +## Required Credentials + +- `POSTGRES_HOST` — Database Host +- `POSTGRES_USERNAME` — Database User +- `POSTGRES_PASSWORD` — Database Password +- `POSTGRES_PORT` — Database Port +- `POSTGRES_NAME` — Database Name +- `POSTGRES_SSL` — Database SSL + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/posthog/SKILL.md b/skills/posthog/SKILL.md new file mode 100644 index 00000000..68e1f197 --- /dev/null +++ b/skills/posthog/SKILL.md @@ -0,0 +1,57 @@ +--- +name: posthog +version: "1.0.0" +description: PostHog API — PostHog is a product analytics suite that provides session recording +activation: + keywords: + - "posthog" + - "ai" + patterns: + - "(?i)posthog" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [POSTHOG_INSTANCE_URL, POSTHOG_API_KEY] +--- + +# PostHog API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://us.posthog.com/api` + +## Actions + +**Capture event:** +``` +http(method="POST", url="https://us.posthog.com/api/capture/", body={"api_key": "{POSTHOG_PROJECT_API_KEY}","event": "page_view","distinct_id": "user123","properties": {"url": "/home"}}) +``` + +**List persons:** +``` +http(method="GET", url="https://us.posthog.com/api/projects/{project_id}/persons/?limit=10") +``` + +**List events:** +``` +http(method="GET", url="https://us.posthog.com/api/projects/{project_id}/events/?limit=10") +``` + +**Get insights:** +``` +http(method="GET", url="https://us.posthog.com/api/projects/{project_id}/insights/?limit=10") +``` + +## Notes + +- Capture endpoint uses project API key in body. +- Management endpoints use personal API key in `Authorization` header. +- EU region: `eu.posthog.com` instead of `us.posthog.com`. +- Events have `distinct_id` (user identifier) and `properties`. diff --git a/skills/postmark/SKILL.md b/skills/postmark/SKILL.md new file mode 100644 index 00000000..8cad34d8 --- /dev/null +++ b/skills/postmark/SKILL.md @@ -0,0 +1,66 @@ +--- +name: postmark +version: "1.0.0" +description: Postmark API — send transactional emails, templates, message streams +activation: + keywords: + - "postmark" + - "postmark email" + exclude_keywords: + - "resend" + - "sendgrid" + - "gmail" + patterns: + - "(?i)postmark.*(email|send|template)" + tags: + - "email" + - "transactional" + max_context_tokens: 1000 +metadata: + openclaw: + requires: + env: [POSTMARK_SERVER_TOKEN] +--- + +# Postmark API + +Use the `http` tool. Include the server token as `X-Postmark-Server-Token` header. + +## Base URL + +`https://api.postmarkapp.com` + +## Actions + +**Send email:** +``` +http(method="POST", url="https://api.postmarkapp.com/email", headers=[{"name": "X-Postmark-Server-Token", "value": "{POSTMARK_SERVER_TOKEN}"}], body={"From": "sender@yourdomain.com", "To": "recipient@example.com", "Subject": "Hello", "HtmlBody": "

Body

", "MessageStream": "outbound"}) +``` + +**Send with template:** +``` +http(method="POST", url="https://api.postmarkapp.com/email/withTemplate", headers=[{"name": "X-Postmark-Server-Token", "value": "{POSTMARK_SERVER_TOKEN}"}], body={"From": "sender@yourdomain.com", "To": "recipient@example.com", "TemplateId": 12345, "TemplateModel": {"name": "John", "action_url": "https://example.com/confirm"}, "MessageStream": "outbound"}) +``` + +**Get delivery stats:** +``` +http(method="GET", url="https://api.postmarkapp.com/deliverystats", headers=[{"name": "X-Postmark-Server-Token", "value": "{POSTMARK_SERVER_TOKEN}"}]) +``` + +**Search outbound messages:** +``` +http(method="GET", url="https://api.postmarkapp.com/messages/outbound?count=20&offset=0&recipient=user@example.com", headers=[{"name": "X-Postmark-Server-Token", "value": "{POSTMARK_SERVER_TOKEN}"}]) +``` + +**Get bounces:** +``` +http(method="GET", url="https://api.postmarkapp.com/bounces?count=20&offset=0", headers=[{"name": "X-Postmark-Server-Token", "value": "{POSTMARK_SERVER_TOKEN}"}]) +``` + +## Notes + +- MessageStream: `outbound` (transactional) or `broadcast` (bulk). +- Send response includes `MessageID` for tracking. +- Error response: `{"ErrorCode": 300, "Message": "..."}`. +- `From` must be a verified sender signature. +- Pagination: `count` + `offset` (0-based). diff --git a/skills/productive/SKILL.md b/skills/productive/SKILL.md new file mode 100644 index 00000000..3218dc54 --- /dev/null +++ b/skills/productive/SKILL.md @@ -0,0 +1,47 @@ +--- +name: productive +version: "1.0.0" +description: Productive API — Productive is an all-in-one agency management platform that streamlines project +activation: + keywords: + - "productive" + - "productivity" + patterns: + - "(?i)productive" + tags: + - "productivity" + - "collaboration" + - "news" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [PRODUCTIVE_API_KEY] +--- + +# Productive API + +Use the `http` tool. API key is automatically injected via `X-Auth-Token` header — **never construct auth headers manually**. + +> Productive is an all-in-one agency management platform that streamlines project delivery, resource planning, time tracking, budgeting, and profitability reporting—empowering agencies and consultancies + +## Authentication + +This integration uses **API Key** authentication via the `X-Auth-Token` header. +Format: `X-Auth-Token: ...` + +## Required Credentials + +- `PRODUCTIVE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/puzzle-io/SKILL.md b/skills/puzzle-io/SKILL.md new file mode 100644 index 00000000..eb8456db --- /dev/null +++ b/skills/puzzle-io/SKILL.md @@ -0,0 +1,40 @@ +--- +name: puzzle-io +version: "1.0.0" +description: Puzzle.io API — Puzzle.io is an AI‑native accounting platform that automates bookkeeping tasks l +activation: + keywords: + - "puzzle-io" + - "puzzle.io" + - "accounting" + patterns: + - "(?i)puzzle.?io" + tags: + - "accounting" + - "finance" + - "Accounting" + - "ai" + max_context_tokens: 1200 +--- + +# Puzzle.io API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Puzzle.io is an AI‑native accounting platform that automates bookkeeping tasks like transaction categorization, reconciliations, and accruals, while providing real‑time financial insights, anomaly det + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/q2/SKILL.md b/skills/q2/SKILL.md new file mode 100644 index 00000000..0434d15e --- /dev/null +++ b/skills/q2/SKILL.md @@ -0,0 +1,48 @@ +--- +name: q2 +version: "1.0.0" +description: Q2 API — Q2 offers an integrated digital banking platform enabling financial institutions +activation: + keywords: + - "q2" + - "finance" + patterns: + - "(?i)q2" + tags: + - "tools" + - "finance" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [Q2_CLIENT_ID, Q2_CLIENT_SECRET, Q2_SCOPES, Q2_ENVIRONMENT] +--- + +# Q2 API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Q2 offers an integrated digital banking platform enabling financial institutions to manage consumer, small-business, and commercial banking operations, including onboarding, payments, risk/fraud manag + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Required Credentials + +- `Q2_CLIENT_ID` — Client ID +- `Q2_CLIENT_SECRET` — Client Secret +- `Q2_SCOPES` — Scopes (space separated) +- `Q2_ENVIRONMENT` — Environment + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/quick-chart/SKILL.md b/skills/quick-chart/SKILL.md new file mode 100644 index 00000000..40ef7fb8 --- /dev/null +++ b/skills/quick-chart/SKILL.md @@ -0,0 +1,38 @@ +--- +name: quick-chart +version: "1.0.0" +description: QuickChart API — QuickChart is a web service that generates chart images using Chart.js +activation: + keywords: + - "quick-chart" + - "quickchart" + - "tools" + patterns: + - "(?i)quick.?chart" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +--- + +# QuickChart API + +Use the `http` tool. Credentials are automatically injected. + +> QuickChart is a web service that generates chart images using Chart.js. Ideal for emails, reports, or static sites, it supports various chart types, QR codes, and more. Charts are created via simple U + +## Authentication + + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/quickbooks/SKILL.md b/skills/quickbooks/SKILL.md new file mode 100644 index 00000000..59e25bf1 --- /dev/null +++ b/skills/quickbooks/SKILL.md @@ -0,0 +1,78 @@ +--- +name: quickbooks +version: "1.0.0" +description: QuickBooks Online API — invoices, customers, payments, accounts, reports +activation: + keywords: + - "quickbooks" + - "quickbooks invoice" + - "qbo" + exclude_keywords: + - "xero" + - "freshbooks" + patterns: + - "(?i)quickbooks.*(invoice|customer|payment|account)" + - "(?i)(create|list).*invoice.*quickbooks" + tags: + - "accounting" + - "finance" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [QUICKBOOKS_ACCESS_TOKEN, QUICKBOOKS_REALM_ID] +--- + +# QuickBooks Online API + +Use the `http` tool. Credentials are automatically injected for `quickbooks.api.intuit.com`. + +## Base URL + +`https://quickbooks.api.intuit.com/v3/company/{QUICKBOOKS_REALM_ID}` + +## Actions + +**Query customers:** +``` +http(method="GET", url="https://quickbooks.api.intuit.com/v3/company/{realm}/query?query=SELECT+*+FROM+Customer+WHERE+Active+%3D+true+MAXRESULTS+20", headers=[{"name": "Accept", "value": "application/json"}]) +``` + +**Create invoice:** +``` +http(method="POST", url="https://quickbooks.api.intuit.com/v3/company/{realm}/invoice", headers=[{"name": "Accept", "value": "application/json"}], body={"CustomerRef": {"value": ""}, "Line": [{"Amount": 150.00, "DetailType": "SalesItemLineDetail", "SalesItemLineDetail": {"ItemRef": {"value": ""}, "Qty": 1, "UnitPrice": 150.00}}], "DueDate": "2026-04-30"}) +``` + +**Get invoice:** +``` +http(method="GET", url="https://quickbooks.api.intuit.com/v3/company/{realm}/invoice/", headers=[{"name": "Accept", "value": "application/json"}]) +``` + +**Send invoice (email):** +``` +http(method="POST", url="https://quickbooks.api.intuit.com/v3/company/{realm}/invoice//send") +``` + +**Create payment:** +``` +http(method="POST", url="https://quickbooks.api.intuit.com/v3/company/{realm}/payment", headers=[{"name": "Accept", "value": "application/json"}], body={"CustomerRef": {"value": ""}, "TotalAmt": 150.00, "Line": [{"Amount": 150.00, "LinkedTxn": [{"TxnId": "", "TxnType": "Invoice"}]}]}) +``` + +**Profit & Loss report:** +``` +http(method="GET", url="https://quickbooks.api.intuit.com/v3/company/{realm}/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-03-31", headers=[{"name": "Accept", "value": "application/json"}]) +``` + +**Query items (products/services):** +``` +http(method="GET", url="https://quickbooks.api.intuit.com/v3/company/{realm}/query?query=SELECT+*+FROM+Item+WHERE+Active+%3D+true+MAXRESULTS+20", headers=[{"name": "Accept", "value": "application/json"}]) +``` + +## Notes + +- QuickBooks uses a SQL-like query language for reads. +- `CustomerRef`, `ItemRef` etc. use `{"value": ""}` wrapper objects. +- Always include `Accept: application/json` header. +- Amounts are decimal numbers (not cents). +- Update requires `SyncToken` from the GET response (optimistic concurrency). +- Sandbox: use `sandbox-quickbooks.api.intuit.com` for testing. diff --git a/skills/reducto/SKILL.md b/skills/reducto/SKILL.md new file mode 100644 index 00000000..0514d833 --- /dev/null +++ b/skills/reducto/SKILL.md @@ -0,0 +1,46 @@ +--- +name: reducto +version: "1.0.0" +description: Reducto API — Reducto is an AI-powered document ingestion API that transforms complex +activation: + keywords: + - "reducto" + - "ai" + patterns: + - "(?i)reducto" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [REDUCTO_API_KEY] +--- + +# Reducto API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Reducto is an AI-powered document ingestion API that transforms complex, unstructured documents—such as PDFs, images, and spreadsheets—into structured, LLM-ready data with exceptional accuracy. + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `REDUCTO_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/render/SKILL.md b/skills/render/SKILL.md new file mode 100644 index 00000000..7ba77446 --- /dev/null +++ b/skills/render/SKILL.md @@ -0,0 +1,60 @@ +--- +name: render +version: "1.0.0" +description: Render API — Render is a cloud-hosting platform that enables developers to build, deploy +activation: + keywords: + - "render" + - "cloud" + patterns: + - "(?i)render" + tags: + - "cloud" + - "infrastructure" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [RENDER_API_KEY] +--- + +# Render API + +Use the `http` tool. API key is automatically injected via `authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://api.render.com/v1` + +## Actions + +**List services:** +``` +http(method="GET", url="https://api.render.com/v1/services?limit=10") +``` + +**Get service:** +``` +http(method="GET", url="https://api.render.com/v1/services/{service_id}") +``` + +**List deploys:** +``` +http(method="GET", url="https://api.render.com/v1/services/{service_id}/deploys?limit=10") +``` + +**Trigger deploy:** +``` +http(method="POST", url="https://api.render.com/v1/services/{service_id}/deploys") +``` + +**List environments:** +``` +http(method="GET", url="https://api.render.com/v1/services/{service_id}/env-vars") +``` + +## Notes + +- Service types: `web_service`, `static_site`, `private_service`, `background_worker`, `cron_job`. +- Deploy statuses: `created`, `build_in_progress`, `update_in_progress`, `live`, `deactivated`. +- Pagination: `cursor` param from response. diff --git a/skills/reply-io/SKILL.md b/skills/reply-io/SKILL.md new file mode 100644 index 00000000..2dc074f5 --- /dev/null +++ b/skills/reply-io/SKILL.md @@ -0,0 +1,47 @@ +--- +name: reply-io +version: "1.0.0" +description: Reply.io API — Reply.io enables sales and marketing teams to automate and scale multichannel ou +activation: + keywords: + - "reply-io" + - "reply.io" + - "sales" + patterns: + - "(?i)reply.?io" + tags: + - "tools" + - "sales" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [REPLY_IO_API_KEY] +--- + +# Reply.io API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> Reply.io enables sales and marketing teams to automate and scale multichannel outreach by orchestrating personalized sequences via email, LinkedIn, SMS, calls, and WhatsApp. It incorporates AI-generat + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `REPLY_IO_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/resend/SKILL.md b/skills/resend/SKILL.md new file mode 100644 index 00000000..c089e885 --- /dev/null +++ b/skills/resend/SKILL.md @@ -0,0 +1,68 @@ +--- +name: resend +version: "1.0.0" +description: Resend API — send transactional emails, manage domains, API keys +activation: + keywords: + - "resend" + - "transactional email" + - "send email" + exclude_keywords: + - "gmail" + - "postmark" + - "sendgrid" + patterns: + - "(?i)resend.*(email|send|domain)" + - "(?i)send.*email.*resend" + tags: + - "email" + - "transactional" + max_context_tokens: 1000 +metadata: + openclaw: + requires: + env: [RESEND_API_KEY] +--- + +# Resend API + +Use the `http` tool. Credentials are automatically injected for `api.resend.com`. + +## Base URL + +`https://api.resend.com` + +## Actions + +**Send email:** +``` +http(method="POST", url="https://api.resend.com/emails", body={"from": "noreply@yourdomain.com", "to": ["recipient@example.com"], "subject": "Hello", "html": "

Body text

"}) +``` + +**Send with cc/bcc/reply_to:** +``` +http(method="POST", url="https://api.resend.com/emails", body={"from": "Team ", "to": ["alice@example.com"], "cc": ["bob@example.com"], "bcc": ["archive@yourdomain.com"], "reply_to": "support@yourdomain.com", "subject": "Update", "html": "

News

Details here

"}) +``` + +**Get email status:** +``` +http(method="GET", url="https://api.resend.com/emails/") +``` + +**List domains:** +``` +http(method="GET", url="https://api.resend.com/domains") +``` + +**Add domain:** +``` +http(method="POST", url="https://api.resend.com/domains", body={"name": "yourdomain.com"}) +``` + +## Notes + +- `from` must use a verified domain. Format: `"Name "` or just `"email@domain.com"`. +- `to`, `cc`, `bcc` are arrays of email strings. +- Use `html` for HTML content or `text` for plain text. +- Response: `{"id": "email_id"}`. Status is trackable via GET. +- Email statuses: `sent`, `delivered`, `bounced`, `complained`. diff --git a/skills/ring-central/SKILL.md b/skills/ring-central/SKILL.md new file mode 100644 index 00000000..c642c920 --- /dev/null +++ b/skills/ring-central/SKILL.md @@ -0,0 +1,54 @@ +--- +name: ring-central +version: "1.0.0" +description: Ring Central API — RingCentral offers a cloud‑based unified communications platform that combines b +activation: + keywords: + - "ring-central" + - "ring central" + - "communication" + patterns: + - "(?i)ring.?central" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1200 +--- + +# Ring Central API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://platform.ringcentral.com/restapi/v1.0` + +## Actions + +**Get account info:** +``` +http(method="GET", url="https://platform.ringcentral.com/restapi/v1.0/account/~") +``` + +**Send SMS:** +``` +http(method="POST", url="https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/sms", body={"from": {"phoneNumber": "+1234567890"},"to": [{"phoneNumber": "+0987654321"}],"text": "Hello!"}) +``` + +**List messages:** +``` +http(method="GET", url="https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/message-store?messageType=SMS&perPage=10") +``` + +**List call log:** +``` +http(method="GET", url="https://platform.ringcentral.com/restapi/v1.0/account/~/extension/~/call-log?perPage=10") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- `~` in path means current account/extension. +- Phone numbers in E.164 format. +- Message types: `SMS`, `Pager`, `Fax`, `VoiceMail`. diff --git a/skills/riveter/SKILL.md b/skills/riveter/SKILL.md new file mode 100644 index 00000000..bb7dd599 --- /dev/null +++ b/skills/riveter/SKILL.md @@ -0,0 +1,45 @@ +--- +name: riveter +version: "1.0.0" +description: Riveter API — Riveter is a no-code AI platform that automates web research and data enrichment +activation: + keywords: + - "riveter" + - "scraper" + patterns: + - "(?i)riveter" + tags: + - "tools" + - "scraper" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [RIVETER_API_KEY] +--- + +# Riveter API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Riveter is a no-code AI platform that automates web research and data enrichment by using intelligent agents to browse, scrape, read documents, and return structured, auditable outputs for large datas + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `RIVETER_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/runpod/SKILL.md b/skills/runpod/SKILL.md new file mode 100644 index 00000000..3c8bc871 --- /dev/null +++ b/skills/runpod/SKILL.md @@ -0,0 +1,51 @@ +--- +name: runpod +version: "1.0.0" +description: Runpod API — RunPod is a cloud infrastructure platform designed for running GPU-accelerated w +activation: + keywords: + - "runpod" + - "cloud computing" + patterns: + - "(?i)runpod" + tags: + - "tools" + - "cloud-computing" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [RUNPOD_API_KEY] +--- + +# Runpod API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.runpod.io/v2` + +## Actions + +**Run endpoint:** +``` +http(method="POST", url="https://api.runpod.io/v2/{endpoint_id}/run", body={"input": {"prompt": "Hello"}}) +``` + +**Run sync:** +``` +http(method="POST", url="https://api.runpod.io/v2/{endpoint_id}/runsync", body={"input": {"prompt": "Hello"}}) +``` + +**Get status:** +``` +http(method="GET", url="https://api.runpod.io/v2/{endpoint_id}/status/{request_id}") +``` + +## Notes + +- `/run` is async (returns job ID); `/runsync` waits for result. +- Status values: `IN_QUEUE`, `IN_PROGRESS`, `COMPLETED`, `FAILED`. +- Input schema depends on the deployed model. +- Auth via `Authorization: Bearer {key}` header. diff --git a/skills/runscope/SKILL.md b/skills/runscope/SKILL.md new file mode 100644 index 00000000..74c1dce6 --- /dev/null +++ b/skills/runscope/SKILL.md @@ -0,0 +1,37 @@ +--- +name: runscope +version: "1.0.0" +description: Runscope API — A cloud-based service that enables developers and QA/DevOps teams to create +activation: + keywords: + - "runscope" + - "api testing" + patterns: + - "(?i)runscope" + tags: + - "tools" + - "api-testing" + max_context_tokens: 1200 +--- + +# Runscope API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> A cloud-based service that enables developers and QA/DevOps teams to create, automate, monitor, and debug API tests, verify performance and uptime, and trigger alerts on issues to ensure reliable API + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/sage-accounting/SKILL.md b/skills/sage-accounting/SKILL.md new file mode 100644 index 00000000..1229201e --- /dev/null +++ b/skills/sage-accounting/SKILL.md @@ -0,0 +1,50 @@ +--- +name: sage-accounting +version: "1.0.0" +description: Sage Accounting API — Sage Accounting is cloud-based software for managing invoices, expenses +activation: + keywords: + - "sage-accounting" + - "sage accounting" + - "accounting" + patterns: + - "(?i)sage.?accounting" + tags: + - "accounting" + - "finance" + - "Accounting" + - "ai" + max_context_tokens: 1200 +--- + +# Sage Accounting API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.accounting.sage.com/v3.1` + +## Actions + +**List contacts:** +``` +http(method="GET", url="https://api.accounting.sage.com/v3.1/contacts?items_per_page=10") +``` + +**List invoices:** +``` +http(method="GET", url="https://api.accounting.sage.com/v3.1/sales_invoices?items_per_page=10") +``` + +**Create invoice:** +``` +http(method="POST", url="https://api.accounting.sage.com/v3.1/sales_invoices", body={"contact_id": "contact_id","date": "2026-03-27","invoice_lines": [{"description": "Consulting","quantity": 10,"unit_price": 150.0,"ledger_account_id": "ledger_id"}]}) +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Resources: contacts, sales_invoices, purchase_invoices, ledger_accounts, bank_accounts. +- Pagination: `items_per_page` and `page` params. +- Dates in `YYYY-MM-DD` format. diff --git a/skills/sage-sales-management/SKILL.md b/skills/sage-sales-management/SKILL.md new file mode 100644 index 00000000..8b98b1d7 --- /dev/null +++ b/skills/sage-sales-management/SKILL.md @@ -0,0 +1,50 @@ +--- +name: sage-sales-management +version: "1.0.0" +description: Sage Sales Management API — Sage Sales Management (formerly ForceManager) is a mobile-first CRM built for fi +activation: + keywords: + - "sage-sales-management" + - "sage sales management" + - "crm" + patterns: + - "(?i)sage.?sales.?management" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SAGE_SALES_MANAGEMENT_API_KEY, SAGE_SALES_MANAGEMENT_BASE_URL] +--- + +# Sage Sales Management API + +Use the `http` tool. API key is automatically injected via `X-Session-Key` header — **never construct auth headers manually**. + +> Sage Sales Management (formerly ForceManager) is a mobile-first CRM built for field sales teams, offering tools like route planning, visit tracking, pipeline management and AI-driven insights to help + +## Authentication + +This integration uses **API Key** authentication via the `X-Session-Key` header. +Format: `X-Session-Key: ...` + +## Required Credentials + +- `SAGE_SALES_MANAGEMENT_API_KEY` — API Key +- `SAGE_SALES_MANAGEMENT_BASE_URL` — Base URL + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/salesforce/SKILL.md b/skills/salesforce/SKILL.md new file mode 100644 index 00000000..75faf836 --- /dev/null +++ b/skills/salesforce/SKILL.md @@ -0,0 +1,98 @@ +--- +name: salesforce +version: "1.0.0" +description: Salesforce REST API — accounts, contacts, leads, opportunities, SOQL +activation: + keywords: + - "salesforce" + - "sfdc" + - "sobject" + - "lead" + - "opportunity" + exclude_keywords: + - "hubspot" + - "pipedrive" + patterns: + - "(?i)salesforce.*(account|contact|lead|opportunity|case)" + - "(?i)(create|update|query).*salesforce" + - "(?i)soql" + tags: + - "crm" + - "sales" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [SALESFORCE_INSTANCE_URL, SALESFORCE_ACCESS_TOKEN] +--- + +# Salesforce REST API + +Use the `http` tool. Credentials are automatically injected for your Salesforce instance. + +## Base URL + +`https://{SALESFORCE_INSTANCE_URL}/services/data/v59.0` + +Example: `https://yourorg.my.salesforce.com/services/data/v59.0` + +## Actions + +**SOQL query:** +``` +http(method="GET", url="https://{instance}/services/data/v59.0/query?q=SELECT+Id,Name,Email+FROM+Contact+WHERE+LastName='Smith'+LIMIT+10") +``` + +**Get record:** +``` +http(method="GET", url="https://{instance}/services/data/v59.0/sobjects/Account/") +``` + +**Create record:** +``` +http(method="POST", url="https://{instance}/services/data/v59.0/sobjects/Lead", body={"FirstName": "John", "LastName": "Doe", "Company": "Acme", "Email": "john@acme.com"}) +``` + +**Update record:** +``` +http(method="PATCH", url="https://{instance}/services/data/v59.0/sobjects/Lead/", body={"Status": "Contacted"}) +``` + +**Delete record:** +``` +http(method="DELETE", url="https://{instance}/services/data/v59.0/sobjects/Lead/") +``` + +**Search (SOSL):** +``` +http(method="GET", url="https://{instance}/services/data/v59.0/search?q=FIND+{John}+IN+ALL+FIELDS+RETURNING+Contact(Name,Email),Lead(Name,Company)") +``` + +**Describe object (get fields):** +``` +http(method="GET", url="https://{instance}/services/data/v59.0/sobjects/Account/describe") +``` + +**List recent records:** +``` +http(method="GET", url="https://{instance}/services/data/v59.0/recent?limit=10") +``` + +## Common Objects + +| Object | Key Fields | +|--------|-----------| +| Account | Name, Industry, Website, Phone | +| Contact | FirstName, LastName, Email, AccountId | +| Lead | FirstName, LastName, Company, Status, Email | +| Opportunity | Name, StageName, Amount, CloseDate, AccountId | +| Case | Subject, Description, Status, Priority, ContactId | + +## Notes + +- SOQL must be URL-encoded. `+` replaces spaces in query param. +- Record IDs are 15 or 18 character strings (e.g., `001xx000003DGbYAAW`). +- Create returns `{"id": "...", "success": true}`. +- Update returns 204 No Content on success. +- Pagination: if `nextRecordsUrl` is present in query response, fetch it for more results. +- Date format: `YYYY-MM-DD`. DateTime: `YYYY-MM-DDThh:mm:ss.000+0000`. diff --git a/skills/salesmate/SKILL.md b/skills/salesmate/SKILL.md new file mode 100644 index 00000000..6edd1f17 --- /dev/null +++ b/skills/salesmate/SKILL.md @@ -0,0 +1,58 @@ +--- +name: salesmate +version: "1.0.0" +description: Salesmate API — Salesmate is an AI-powered CRM platform that helps businesses automate sales +activation: + keywords: + - "salesmate" + - "crm" + patterns: + - "(?i)salesmate" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SALESMATE_ACCESS_TOKEN, SALESMATE_DOMAIN] +--- + +# Salesmate API + +Use the `http` tool. API key is automatically injected via `accessToken` header — **never construct auth headers manually**. + +## Base URL + +`https://{SALESMATE_DOMAIN}.salesmate.io/apis/v3` + +## Actions + +**List contacts:** +``` +http(method="GET", url="https://{SALESMATE_DOMAIN}.salesmate.io/apis/v3/contacts?rows=10") +``` + +**Create contact:** +``` +http(method="POST", url="https://{SALESMATE_DOMAIN}.salesmate.io/apis/v3/contacts", body={"firstName": "John","lastName": "Doe","email": "john@example.com"}) +``` + +**List deals:** +``` +http(method="GET", url="https://{SALESMATE_DOMAIN}.salesmate.io/apis/v3/deals?rows=10") +``` + +**Create deal:** +``` +http(method="POST", url="https://{SALESMATE_DOMAIN}.salesmate.io/apis/v3/deals", body={"title": "Big Deal","primaryContact": "contact_id","pipeline": "default"}) +``` + +## Notes + +- Auth via `sessionToken` header (auto-injected). +- Entities: contacts, companies, deals, activities. +- Pagination: `rows` and `from` params. +- Custom fields available on all entities. diff --git a/skills/scrape-do/SKILL.md b/skills/scrape-do/SKILL.md new file mode 100644 index 00000000..fbe63913 --- /dev/null +++ b/skills/scrape-do/SKILL.md @@ -0,0 +1,46 @@ +--- +name: scrape-do +version: "1.0.0" +description: Scrape.do API — Scrape.do is a web-scraping API that bypasses anti-bot systems (like Cloudflare +activation: + keywords: + - "scrape-do" + - "scrape.do" + - "scrapper" + patterns: + - "(?i)scrape.?do" + tags: + - "tools" + - "scrapper" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SCRAPE_DO_TOKEN] +--- + +# Scrape.do API + +Use the `http` tool. API key is automatically injected as `token` query parameter. + +> Scrape.do is a web-scraping API that bypasses anti-bot systems (like Cloudflare or Akamai) by using rotating residential and mobile proxies, real browser fingerprints, headless browser rendering, and + +## Authentication + +This integration uses **query parameter** authentication via `token`. + +## Required Credentials + +- `SCRAPE_DO_TOKEN` — Token + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/scrapingdog/SKILL.md b/skills/scrapingdog/SKILL.md new file mode 100644 index 00000000..981a5c76 --- /dev/null +++ b/skills/scrapingdog/SKILL.md @@ -0,0 +1,46 @@ +--- +name: scrapingdog +version: "1.0.0" +description: Scrapingdog API — Scrapingdog is an all‑in‑one web scraping API that handles rotating proxies +activation: + keywords: + - "scrapingdog" + - "tools" + patterns: + - "(?i)scrapingdog" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SCRAPINGDOG_API_KEY] +--- + +# Scrapingdog API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +> Scrapingdog is an all‑in‑one web scraping API that handles rotating proxies, headless browser rendering, CAPTCHA solving, and offers dedicated endpoints (e.g., Google SERP, Amazon, LinkedIn), deliveri + +## Authentication + +This integration uses **query parameter** authentication via `api_key`. + +## Required Credentials + +- `SCRAPINGDOG_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/sendgrid/SKILL.md b/skills/sendgrid/SKILL.md new file mode 100644 index 00000000..13eb66db --- /dev/null +++ b/skills/sendgrid/SKILL.md @@ -0,0 +1,57 @@ +--- +name: sendgrid +version: "1.0.0" +description: SendGrid API — SendGrid is a cloud-based email service that enables businesses to send transact +activation: + keywords: + - "sendgrid" + - "communication" + patterns: + - "(?i)sendgrid" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SENDGRID_API_KEY] +--- + +# SendGrid API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.sendgrid.com/v3` + +## Actions + +**Send email:** +``` +http(method="POST", url="https://api.sendgrid.com/v3/mail/send", body={"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sender@example.com"},"subject": "Hello","content": [{"type": "text/html","value": "

Body

"}]}) +``` + +**List contacts:** +``` +http(method="GET", url="https://api.sendgrid.com/v3/marketing/contacts?page_size=10") +``` + +**Add contacts:** +``` +http(method="PUT", url="https://api.sendgrid.com/v3/marketing/contacts", body={"contacts": [{"email": "john@example.com","first_name": "John"}]}) +``` + +**Get stats:** +``` +http(method="GET", url="https://api.sendgrid.com/v3/stats?start_date=2026-03-01&end_date=2026-03-27") +``` + +## Notes + +- `personalizations` is required and allows per-recipient customization. +- Content types: `text/plain`, `text/html`. +- Templates: use `template_id` instead of `content`. +- Stats include requests, delivered, opens, clicks, bounces. diff --git a/skills/serp-api/SKILL.md b/skills/serp-api/SKILL.md new file mode 100644 index 00000000..30684f8c --- /dev/null +++ b/skills/serp-api/SKILL.md @@ -0,0 +1,53 @@ +--- +name: serp-api +version: "1.0.0" +description: SerpApi API — SerpApi is a real-time Google Search API that enables developers to retrieve sea +activation: + keywords: + - "serp-api" + - "serpapi" + - "ai" + patterns: + - "(?i)serp.?api" + tags: + - "ai" + - "machine-learning" + - "storage" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SERPAPI_API_KEY] +--- + +# SerpApi API + +Use the `http` tool. API key is automatically injected as `api_key` query parameter. + +## Base URL + +`https://serpapi.com` + +## Actions + +**Google search:** +``` +http(method="GET", url="https://serpapi.com/search?engine=google&q=AI+news&api_key={SERPAPI_API_KEY}&num=10") +``` + +**Google Maps search:** +``` +http(method="GET", url="https://serpapi.com/search?engine=google_maps&q=restaurants+near+me&api_key={SERPAPI_API_KEY}") +``` + +**YouTube search:** +``` +http(method="GET", url="https://serpapi.com/search?engine=youtube&search_query=programming+tutorial&api_key={SERPAPI_API_KEY}") +``` + +## Notes + +- API key as `api_key` query parameter. +- Engines: `google`, `bing`, `yahoo`, `youtube`, `google_maps`, `google_news`, `google_scholar`. +- Results include `organic_results`, `knowledge_graph`, `related_questions`. +- `gl` param for country, `hl` for language. diff --git a/skills/share-file/SKILL.md b/skills/share-file/SKILL.md new file mode 100644 index 00000000..cbf70fb8 --- /dev/null +++ b/skills/share-file/SKILL.md @@ -0,0 +1,39 @@ +--- +name: share-file +version: "1.0.0" +description: ShareFile API — ShareFile is a secure file sharing and content collaboration solution that suppo +activation: + keywords: + - "share-file" + - "sharefile" + - "storage" + patterns: + - "(?i)share.?file" + tags: + - "storage" + - "files" + - "documents" + max_context_tokens: 1200 +--- + +# ShareFile API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> ShareFile is a secure file sharing and content collaboration solution that supports workflows for document storage, e-signatures, and encrypted file transfer in professional environments. + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/share-point/SKILL.md b/skills/share-point/SKILL.md new file mode 100644 index 00000000..e09d850b --- /dev/null +++ b/skills/share-point/SKILL.md @@ -0,0 +1,59 @@ +--- +name: share-point +version: "1.0.0" +description: SharePoint API — Microsoft SharePoint is a web-based collaboration and content management platfor +activation: + keywords: + - "share-point" + - "sharepoint" + - "productivity" + patterns: + - "(?i)share.?point" + tags: + - "productivity" + - "collaboration" + - "news" + max_context_tokens: 1200 +--- + +# SharePoint API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.microsoft.com/v1.0` + +## Actions + +**List sites:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/sites?search=*&$top=10") +``` + +**Get site:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/sites/{site_id}") +``` + +**List lists:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/sites/{site_id}/lists") +``` + +**List items:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/sites/{site_id}/lists/{list_id}/items?$top=10&$expand=fields") +``` + +**List files:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/sites/{site_id}/drive/root/children?$top=10") +``` + +## Notes + +- Uses OAuth 2.0 via Microsoft Graph — credentials are auto-injected. +- Site ID format: `{hostname}:/{path}` or GUID. +- Lists contain structured data; drives contain files. +- `$expand=fields` includes column values in list items. diff --git a/skills/ship-bob/SKILL.md b/skills/ship-bob/SKILL.md new file mode 100644 index 00000000..2e782758 --- /dev/null +++ b/skills/ship-bob/SKILL.md @@ -0,0 +1,38 @@ +--- +name: ship-bob +version: "1.0.0" +description: ShipBob API — ShipBob is a comprehensive e-commerce fulfillment and logistics platform that ma +activation: + keywords: + - "ship-bob" + - "shipbob" + - "logistics" + patterns: + - "(?i)ship.?bob" + tags: + - "tools" + - "logistics" + max_context_tokens: 1200 +--- + +# ShipBob API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> ShipBob is a comprehensive e-commerce fulfillment and logistics platform that manages order processing, inventory distribution across 60+ global warehouses, and two-day shipping with built-in analytic + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/ship-engine/SKILL.md b/skills/ship-engine/SKILL.md new file mode 100644 index 00000000..2307042c --- /dev/null +++ b/skills/ship-engine/SKILL.md @@ -0,0 +1,57 @@ +--- +name: ship-engine +version: "1.0.0" +description: ShipEngine API — ShipEngine (rebranded as ShipStation API) is a multi-carrier shipping API that l +activation: + keywords: + - "ship-engine" + - "shipengine" + - "logistics" + patterns: + - "(?i)ship.?engine" + tags: + - "tools" + - "logistics" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHIP_ENGINE_API_KEY] +--- + +# ShipEngine API + +Use the `http` tool. API key is automatically injected via `API-Key` header — **never construct auth headers manually**. + +## Base URL + +`https://api.shipengine.com/v1` + +## Actions + +**Get rates:** +``` +http(method="POST", url="https://api.shipengine.com/v1/rates", body={"shipment": {"ship_from": {"name": "Sender","address_line1": "123 Main St","city_locality": "Austin","state_province": "TX","postal_code": "78701","country_code": "US"},"ship_to": {"name": "Recipient","address_line1": "456 Oak Ave","city_locality": "New York","state_province": "NY","postal_code": "10001","country_code": "US"},"packages": [{"weight": {"value": 2,"unit": "pound"}}]},"rate_options": {"carrier_ids": []}}) +``` + +**Create label:** +``` +http(method="POST", url="https://api.shipengine.com/v1/labels", body={"shipment": {"service_code": "usps_priority_mail","ship_from": {},"ship_to": {},"packages": [{"weight": {"value": 2,"unit": "pound"}}]}}) +``` + +**Track package:** +``` +http(method="GET", url="https://api.shipengine.com/v1/tracking?carrier_code=usps&tracking_number=1234567890") +``` + +**Validate address:** +``` +http(method="POST", url="https://api.shipengine.com/v1/addresses/validate", body=[{"address_line1": "123 Main St","city_locality": "Austin","state_province": "TX","postal_code": "78701","country_code": "US"}]) +``` + +## Notes + +- Auth via `API-Key` header (auto-injected). +- Carrier codes: `usps`, `ups`, `fedex`, `dhl_express`. +- Weight units: `pound`, `ounce`, `gram`, `kilogram`. +- Address validation returns `status`: `verified`, `unverified`, `warning`, `error`. diff --git a/skills/ship-station/SKILL.md b/skills/ship-station/SKILL.md new file mode 100644 index 00000000..e9c9acae --- /dev/null +++ b/skills/ship-station/SKILL.md @@ -0,0 +1,62 @@ +--- +name: ship-station +version: "1.0.0" +description: ShipStation API — ShipStation is a web-based shipping and fulfillment platform with a powerful dev +activation: + keywords: + - "ship-station" + - "shipstation" + - "logistics" + patterns: + - "(?i)ship.?station" + tags: + - "tools" + - "logistics" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHIP_STATION_API_KEY] +--- + +# ShipStation API + +Use the `http` tool. API key is automatically injected via `API-Key` header — **never construct auth headers manually**. + +## Base URL + +`https://ssapi.shipstation.com` + +## Actions + +**List orders:** +``` +http(method="GET", url="https://ssapi.shipstation.com/orders?pageSize=10&page=1") +``` + +**Get order:** +``` +http(method="GET", url="https://ssapi.shipstation.com/orders/{order_id}") +``` + +**Create order:** +``` +http(method="POST", url="https://ssapi.shipstation.com/orders/createorder", body={"orderNumber": "ORD-001","orderDate": "2026-03-27","orderStatus": "awaiting_shipment","billTo": {"name": "John Doe"},"shipTo": {"name": "John Doe","street1": "123 Main St","city": "Austin","state": "TX","postalCode": "78701","country": "US"}}) +``` + +**List shipments:** +``` +http(method="GET", url="https://ssapi.shipstation.com/shipments?pageSize=10&page=1") +``` + +**List carriers:** +``` +http(method="GET", url="https://ssapi.shipstation.com/carriers") +``` + +## Notes + +- Uses Basic auth with API key and secret. +- Order statuses: `awaiting_payment`, `awaiting_shipment`, `shipped`, `on_hold`, `cancelled`. +- Pagination: `page` and `pageSize` (max 500). +- Dates in `YYYY-MM-DD` format. diff --git a/skills/shippo/SKILL.md b/skills/shippo/SKILL.md new file mode 100644 index 00000000..315ff046 --- /dev/null +++ b/skills/shippo/SKILL.md @@ -0,0 +1,73 @@ +--- +name: shippo +version: "1.0.0" +description: Shippo API — shipping rates, labels, tracking, addresses +activation: + keywords: + - "shippo" + - "shipping label" + - "shipping rate" + - "tracking" + exclude_keywords: + - "easypost" + patterns: + - "(?i)shippo.*(rate|label|track|shipment)" + - "(?i)(create|get).*shipping.*(label|rate)" + tags: + - "shipping" + - "logistics" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHIPPO_API_KEY] +--- + +# Shippo API + +Use the `http` tool. Include `ShippoToken` in Authorization header. + +## Base URL + +`https://api.goshippo.com` + +## Actions + +**Create shipment (get rates):** +``` +http(method="POST", url="https://api.goshippo.com/shipments", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}], body={"address_from": {"name": "Mr Sender", "street1": "123 Main St", "city": "San Francisco", "state": "CA", "zip": "94105", "country": "US"}, "address_to": {"name": "Ms Receiver", "street1": "456 Oak Ave", "city": "New York", "state": "NY", "zip": "10001", "country": "US"}, "parcels": [{"length": "10", "width": "8", "height": "4", "distance_unit": "in", "weight": "2", "mass_unit": "lb"}], "async": false}) +``` + +**Get rates for shipment:** +``` +http(method="GET", url="https://api.goshippo.com/shipments//rates", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}]) +``` + +**Purchase label (from rate):** +``` +http(method="POST", url="https://api.goshippo.com/transactions", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}], body={"rate": "", "label_file_type": "PDF", "async": false}) +``` + +**Track shipment:** +``` +http(method="GET", url="https://api.goshippo.com/tracks//", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}]) +``` + +**Validate address:** +``` +http(method="POST", url="https://api.goshippo.com/addresses", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}], body={"name": "John Doe", "street1": "123 Main St", "city": "San Francisco", "state": "CA", "zip": "94105", "country": "US", "validate": true}) +``` + +**List shipments:** +``` +http(method="GET", url="https://api.goshippo.com/shipments?results=20", headers=[{"name": "Authorization", "value": "ShippoToken {SHIPPO_API_KEY}"}]) +``` + +## Notes + +- Workflow: Create shipment → select rate → purchase label (transaction). +- Carriers: `usps`, `ups`, `fedex`, `dhl_express`, etc. +- Dimensions are strings, not numbers. +- Label file types: `PDF`, `PNG`, `ZPLII`. +- Test mode: use test API token (rates are test data). +- Transaction status: `SUCCESS`, `QUEUED`, `ERROR`. diff --git a/skills/shopify-admin/SKILL.md b/skills/shopify-admin/SKILL.md new file mode 100644 index 00000000..bbe478d1 --- /dev/null +++ b/skills/shopify-admin/SKILL.md @@ -0,0 +1,62 @@ +--- +name: shopify-admin +version: "1.0.0" +description: Shopify Admin API — Shopify Admin is the backend interface for managing your Shopify store +activation: + keywords: + - "shopify-admin" + - "shopify admin" + - "ecommerce" + patterns: + - "(?i)shopify.?admin" + tags: + - "tools" + - "ecommerce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHOPIFY_STORE_NAME, SHOPIFY_ADMIN_ACCESS_TOKEN] +--- + +# Shopify Admin API + +Use the `http` tool. API key is automatically injected via `X-Shopify-Access-Token` header — **never construct auth headers manually**. + +## Base URL + +`https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10` + +## Actions + +**List products:** +``` +http(method="GET", url="https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10/products.json?limit=10") +``` + +**Get product:** +``` +http(method="GET", url="https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10/products/{product_id}.json") +``` + +**Create product:** +``` +http(method="POST", url="https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10/products.json", body={"product": {"title": "Widget","body_html": "

Description

","vendor": "Acme","product_type": "Gadgets","variants": [{"price": "29.99","sku": "WIDGET-001"}]}}) +``` + +**List orders:** +``` +http(method="GET", url="https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10/orders.json?status=any&limit=10") +``` + +**List customers:** +``` +http(method="GET", url="https://{SHOPIFY_STORE}.myshopify.com/admin/api/2024-10/customers.json?limit=10") +``` + +## Notes + +- Auth via `X-Shopify-Access-Token` header (auto-injected). +- All responses wrapped in resource key: `{"products": [...]}`. +- Pagination: `Link` header with `rel="next"` URL. +- API version in URL path (e.g., `2024-10`). diff --git a/skills/shopify-storefront/SKILL.md b/skills/shopify-storefront/SKILL.md new file mode 100644 index 00000000..09da7d69 --- /dev/null +++ b/skills/shopify-storefront/SKILL.md @@ -0,0 +1,47 @@ +--- +name: shopify-storefront +version: "1.0.0" +description: Shopify Storefront API — Shopify Storefront allows you to create custom shopping experiences using Shopif +activation: + keywords: + - "shopify-storefront" + - "shopify storefront" + - "ecommerce" + patterns: + - "(?i)shopify.?storefront" + tags: + - "tools" + - "ecommerce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHOPIFY_STORE_NAME, SHOPIFY_STOREFRONT_ACCESS_TOKEN] +--- + +# Shopify Storefront API + +Use the `http` tool. API key is automatically injected via `X-Shopify-Storefront-Access-Token` header — **never construct auth headers manually**. + +## Base URL + +`https://{SHOPIFY_STORE}.myshopify.com/api/2024-10/graphql.json` + +## Actions + +**List products:** +``` +http(method="POST", url="https://{SHOPIFY_STORE}.myshopify.com/api/2024-10/graphql.json", body={"query": "{ products(first: 10) { edges { node { id title handle priceRange { minVariantPrice { amount currencyCode } } } } } }"}) +``` + +**Get product by handle:** +``` +http(method="POST", url="https://{SHOPIFY_STORE}.myshopify.com/api/2024-10/graphql.json", body={"query": "{ productByHandle(handle: \"widget\") { id title description variants(first: 5) { edges { node { id title price { amount currencyCode } } } } } }"}) +``` + +## Notes + +- GraphQL-only API for customer-facing operations. +- Auth via `X-Shopify-Storefront-Access-Token` header (auto-injected). +- IDs are globally unique: `gid://shopify/Product/123`. +- Supports cart, checkout, and customer operations. diff --git a/skills/shopify/SKILL.md b/skills/shopify/SKILL.md new file mode 100644 index 00000000..59560fca --- /dev/null +++ b/skills/shopify/SKILL.md @@ -0,0 +1,89 @@ +--- +name: shopify +version: "1.0.0" +description: Shopify Admin API — products, orders, customers, inventory, fulfillment +activation: + keywords: + - "shopify" + - "shopify product" + - "shopify order" + - "e-commerce" + exclude_keywords: + - "woocommerce" + - "magento" + patterns: + - "(?i)shopify.*(product|order|customer|inventory)" + - "(?i)(create|list|update).*shopify" + tags: + - "e-commerce" + - "retail" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [SHOPIFY_STORE_DOMAIN, SHOPIFY_ACCESS_TOKEN] +--- + +# Shopify Admin REST API + +Use the `http` tool. Credentials are automatically injected for your Shopify store domain. + +## Base URL + +`https://{SHOPIFY_STORE_DOMAIN}.myshopify.com/admin/api/2024-01` + +## Actions + +**List products:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/products.json?limit=20&status=active") +``` + +**Get product:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/products/.json") +``` + +**Create product:** +``` +http(method="POST", url="https://{store}.myshopify.com/admin/api/2024-01/products.json", body={"product": {"title": "Cool T-Shirt", "body_html": "

Comfortable cotton tee

", "vendor": "My Brand", "product_type": "Apparel", "variants": [{"price": "29.99", "sku": "TSHIRT-001", "inventory_quantity": 100}]}}) +``` + +**List orders:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/orders.json?status=any&limit=20") +``` + +**Get order:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/orders/.json") +``` + +**List customers:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/customers.json?limit=20") +``` + +**Search customers:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/customers/search.json?query=email:john@acme.com") +``` + +**Update inventory level:** +``` +http(method="POST", url="https://{store}.myshopify.com/admin/api/2024-01/inventory_levels/set.json", body={"location_id": 123, "inventory_item_id": 456, "available": 50}) +``` + +**Count products:** +``` +http(method="GET", url="https://{store}.myshopify.com/admin/api/2024-01/products/count.json") +``` + +## Notes + +- All responses are wrapped in the resource name: `{"products": [...]}` or `{"product": {...}}`. +- Pagination: use `Link` header with `rel="next"` URL. Also `page_info` cursor-based pagination. +- Prices are strings (e.g., `"29.99"`), not numbers. +- Order financial statuses: `paid`, `pending`, `refunded`, `voided`, `partially_refunded`. +- Order fulfillment statuses: `fulfilled`, `partial`, `unfulfilled`, `null`. +- Rate limit: 2 requests/second (leaky bucket). Check `X-Shopify-Shop-Api-Call-Limit` header. diff --git a/skills/shortcut/SKILL.md b/skills/shortcut/SKILL.md new file mode 100644 index 00000000..292baad0 --- /dev/null +++ b/skills/shortcut/SKILL.md @@ -0,0 +1,61 @@ +--- +name: shortcut +version: "1.0.0" +description: Shortcut API — Shortcut is a project-management platform tailored for software teams +activation: + keywords: + - "shortcut" + - "product management" + patterns: + - "(?i)shortcut" + tags: + - "tools" + - "product-management" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SHORTCUT_API_KEY] +--- + +# Shortcut API + +Use the `http` tool. API key is automatically injected via `Shortcut-Token` header — **never construct auth headers manually**. + +## Base URL + +`https://api.app.shortcut.com/api/v3` + +## Actions + +**Search stories:** +``` +http(method="GET", url="https://api.app.shortcut.com/api/v3/search/stories?query=state:started&page_size=10") +``` + +**Get story:** +``` +http(method="GET", url="https://api.app.shortcut.com/api/v3/stories/{story_id}") +``` + +**Create story:** +``` +http(method="POST", url="https://api.app.shortcut.com/api/v3/stories", body={"name": "Implement feature","story_type": "feature","workflow_state_id": 500000000}) +``` + +**List projects:** +``` +http(method="GET", url="https://api.app.shortcut.com/api/v3/projects") +``` + +**List workflows:** +``` +http(method="GET", url="https://api.app.shortcut.com/api/v3/workflows") +``` + +## Notes + +- Auth via `Shortcut-Token` header (auto-injected). +- Story types: `feature`, `bug`, `chore`. +- Search query syntax: `state:started`, `owner:username`, `label:"bug"`. +- Workflow states define the kanban board columns. diff --git a/skills/sindri/SKILL.md b/skills/sindri/SKILL.md new file mode 100644 index 00000000..7e9a745a --- /dev/null +++ b/skills/sindri/SKILL.md @@ -0,0 +1,46 @@ +--- +name: sindri +version: "1.0.0" +description: Sindri API — Sindri is a zero-knowledge developer cloud platform that provides serverless inf +activation: + keywords: + - "sindri" + - "tools" + patterns: + - "(?i)sindri" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SINDRI_API_KEY] +--- + +# Sindri API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +> Sindri is a zero-knowledge developer cloud platform that provides serverless infrastructure for zero-knowledge (ZK) applications. It enables teams to go from idea to production quickly and securely. + +## Authentication + +This integration uses **Bearer Token** authentication. The token is injected automatically into the `Authorization` header. + +## Required Credentials + +- `SINDRI_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/slack/SKILL.md b/skills/slack/SKILL.md new file mode 100644 index 00000000..8ec979c2 --- /dev/null +++ b/skills/slack/SKILL.md @@ -0,0 +1,102 @@ +--- +name: slack +version: "1.0.0" +description: Slack Web API — post messages, manage channels, search, react, user info +activation: + keywords: + - "slack" + - "post message" + - "channel" + - "slack message" + - "reaction" + exclude_keywords: + - "discord" + - "teams" + patterns: + - "(?i)send.*slack" + - "(?i)slack.*(message|channel|thread|react)" + - "(?i)post.*(to|in|on).*#" + tags: + - "messaging" + - "communication" + - "chat" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [SLACK_BOT_TOKEN] +--- + +# Slack Web API + +Use the `http` tool to call Slack. Credentials are automatically injected — **never construct Authorization headers manually**. When the URL host is `slack.com`, the system injects `Authorization: Bearer {SLACK_BOT_TOKEN}` transparently. + +## Base URL + +`https://slack.com/api` + +All POST bodies use `Content-Type: application/json`. + +## Actions + +**Post message:** +``` +http(method="POST", url="https://slack.com/api/chat.postMessage", body={"channel": "", "text": "Hello!"}) +``` + +**Reply in thread:** +``` +http(method="POST", url="https://slack.com/api/chat.postMessage", body={"channel": "", "text": "Reply", "thread_ts": ""}) +``` + +**List channels:** +``` +http(method="GET", url="https://slack.com/api/conversations.list?types=public_channel&limit=100") +``` + +**Channel history:** +``` +http(method="GET", url="https://slack.com/api/conversations.history?channel=&limit=20") +``` + +**Search messages:** +``` +http(method="GET", url="https://slack.com/api/search.messages?query=&count=10") +``` + +**Add reaction:** +``` +http(method="POST", url="https://slack.com/api/reactions.add", body={"channel": "", "timestamp": "", "name": "thumbsup"}) +``` + +**Get user info:** +``` +http(method="GET", url="https://slack.com/api/users.info?user=") +``` + +**List users:** +``` +http(method="GET", url="https://slack.com/api/users.list?limit=100") +``` + +**Update message:** +``` +http(method="POST", url="https://slack.com/api/chat.update", body={"channel": "", "ts": "", "text": "Updated text"}) +``` + +**Upload file:** +``` +http(method="POST", url="https://slack.com/api/files.uploadV2", body={"channel_id": "", "content": "file content", "filename": "file.txt", "title": "My File"}) +``` + +## Response Pattern + +All responses: `{"ok": true, ...}` or `{"ok": false, "error": ""}`. +Paginate with `cursor` param when `response_metadata.next_cursor` is non-empty. + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected. +- Channel IDs look like `C01234ABCDE`, not `#channel-name`. Use `conversations.list` to find IDs. +- Message timestamps (`ts`) are strings like `"1234567890.123456"` — not numbers. +- The `name` in `reactions.add` omits colons: use `thumbsup` not `:thumbsup:`. diff --git a/skills/sling/SKILL.md b/skills/sling/SKILL.md new file mode 100644 index 00000000..42b1c6b3 --- /dev/null +++ b/skills/sling/SKILL.md @@ -0,0 +1,52 @@ +--- +name: sling +version: "1.0.0" +description: Sling API — Sling simplifies workforce management by combining employee shift scheduling +activation: + keywords: + - "sling" + - "hr" + patterns: + - "(?i)sling" + tags: + - "hr" + - "recruitment" + - "workforce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SLING_AUTHORIZATION_KEY] +--- + +# Sling API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://api.getsling.com/v1` + +## Actions + +**List users:** +``` +http(method="GET", url="https://api.getsling.com/v1/{org_id}/users") +``` + +**List shifts:** +``` +http(method="GET", url="https://api.getsling.com/v1/{org_id}/calendar/{from}/{to}") +``` + +**List locations:** +``` +http(method="GET", url="https://api.getsling.com/v1/{org_id}/locations") +``` + +## Notes + +- Sling is a workforce scheduling platform. +- Date range format: `YYYY-MM-DD`. +- Org ID required in most paths. +- Auth via `Authorization` header (auto-injected). diff --git a/skills/spotify/SKILL.md b/skills/spotify/SKILL.md new file mode 100644 index 00000000..10f484ea --- /dev/null +++ b/skills/spotify/SKILL.md @@ -0,0 +1,88 @@ +--- +name: spotify +version: "1.0.0" +description: Spotify Web API — search, playlists, tracks, albums, player control +activation: + keywords: + - "spotify" + - "playlist" + - "spotify track" + exclude_keywords: + - "apple music" + - "soundcloud" + patterns: + - "(?i)spotify.*(playlist|track|album|artist|search)" + - "(?i)(play|search|add).*spotify" + tags: + - "music" + - "media" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SPOTIFY_ACCESS_TOKEN] +--- + +# Spotify Web API + +Use the `http` tool. Credentials are automatically injected for `api.spotify.com`. + +## Base URL + +`https://api.spotify.com/v1` + +## Actions + +**Search:** +``` +http(method="GET", url="https://api.spotify.com/v1/search?q=radiohead&type=track,artist&limit=10") +``` + +**Get my playlists:** +``` +http(method="GET", url="https://api.spotify.com/v1/me/playlists?limit=20") +``` + +**Get playlist tracks:** +``` +http(method="GET", url="https://api.spotify.com/v1/playlists//tracks?limit=50") +``` + +**Create playlist:** +``` +http(method="POST", url="https://api.spotify.com/v1/users//playlists", body={"name": "My Playlist", "description": "Created via API", "public": false}) +``` + +**Add tracks to playlist:** +``` +http(method="POST", url="https://api.spotify.com/v1/playlists//tracks", body={"uris": ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"]}) +``` + +**Get currently playing:** +``` +http(method="GET", url="https://api.spotify.com/v1/me/player/currently-playing") +``` + +**Get artist:** +``` +http(method="GET", url="https://api.spotify.com/v1/artists/") +``` + +**Get album:** +``` +http(method="GET", url="https://api.spotify.com/v1/albums/") +``` + +**Get my top tracks:** +``` +http(method="GET", url="https://api.spotify.com/v1/me/top/tracks?time_range=medium_term&limit=20") +``` + +## Notes + +- Track URIs: `spotify:track:`. Album: `spotify:album:`. +- Search types: `track`, `artist`, `album`, `playlist`, `show`, `episode`. +- `time_range` for top items: `short_term` (4 weeks), `medium_term` (6 months), `long_term` (years). +- Player control endpoints (play/pause/skip) require `user-modify-playback-state` scope and active device. +- Pagination: `limit` + `offset`. Check `total` and `next` URL. +- Rate limit: varies. Check `Retry-After` header on 429. diff --git a/skills/square/SKILL.md b/skills/square/SKILL.md new file mode 100644 index 00000000..5b27974c --- /dev/null +++ b/skills/square/SKILL.md @@ -0,0 +1,58 @@ +--- +name: square +version: "1.0.0" +description: Square API — Square offers payment processing and business tools for merchants +activation: + keywords: + - "square" + - "payments" + patterns: + - "(?i)square" + tags: + - "payments" + - "billing" + - "finance" + max_context_tokens: 1200 +--- + +# Square API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://connect.squareup.com/v2` + +## Actions + +**List payments:** +``` +http(method="GET", url="https://connect.squareup.com/v2/payments?limit=10") +``` + +**Create payment:** +``` +http(method="POST", url="https://connect.squareup.com/v2/payments", body={"source_id": "cnon:card-nonce-ok","idempotency_key": "unique-key","amount_money": {"amount": 1000,"currency": "USD"},"location_id": "loc_id"}) +``` + +**List customers:** +``` +http(method="GET", url="https://connect.squareup.com/v2/customers?limit=10") +``` + +**Create customer:** +``` +http(method="POST", url="https://connect.squareup.com/v2/customers", body={"given_name": "John","family_name": "Doe","email_address": "john@example.com"}) +``` + +**List catalog items:** +``` +http(method="GET", url="https://connect.squareup.com/v2/catalog/list?types=ITEM&limit=10") +``` + +## Notes + +- Amounts in smallest currency unit: $10.00 = `1000`. +- `idempotency_key` required for create operations (use UUIDs). +- Location ID required for most transaction operations. +- Sandbox base URL: `https://connect.squareupsandbox.com/v2`. diff --git a/skills/stripe/SKILL.md b/skills/stripe/SKILL.md new file mode 100644 index 00000000..ef2484a0 --- /dev/null +++ b/skills/stripe/SKILL.md @@ -0,0 +1,99 @@ +--- +name: stripe +version: "1.0.0" +description: Stripe API — payments, customers, subscriptions, invoices, products +activation: + keywords: + - "stripe" + - "payment" + - "subscription" + - "invoice" + - "charge" + exclude_keywords: + - "paypal" + - "square" + patterns: + - "(?i)stripe.*(customer|payment|subscription|invoice|charge)" + - "(?i)(create|list|cancel).*subscription" + - "(?i)(charge|refund|payment)" + tags: + - "payments" + - "billing" + - "finance" + max_context_tokens: 1800 +metadata: + openclaw: + requires: + env: [STRIPE_SECRET_KEY] +--- + +# Stripe API + +Use the `http` tool. Credentials are automatically injected for `api.stripe.com`. Stripe uses **form-encoded bodies** for POST/PUT — pass the body as a flat object and include `Content-Type: application/x-www-form-urlencoded`. + +## Base URL + +`https://api.stripe.com/v1` + +**Important**: Stripe expects form-encoded POST data. Use URL-encoded key-value pairs or nested bracket notation. + +## Actions + +**List customers:** +``` +http(method="GET", url="https://api.stripe.com/v1/customers?limit=10") +``` + +**Create customer:** +``` +http(method="POST", url="https://api.stripe.com/v1/customers", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="name=John+Doe&email=john@acme.com&metadata[company]=Acme") +``` + +**Create payment intent:** +``` +http(method="POST", url="https://api.stripe.com/v1/payment_intents", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="amount=5000¤cy=usd&customer=cus_xxx&description=Order+123") +``` + +**List subscriptions:** +``` +http(method="GET", url="https://api.stripe.com/v1/subscriptions?customer=cus_xxx&status=active&limit=10") +``` + +**Create subscription:** +``` +http(method="POST", url="https://api.stripe.com/v1/subscriptions", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="customer=cus_xxx&items[0][price]=price_xxx") +``` + +**Cancel subscription:** +``` +http(method="DELETE", url="https://api.stripe.com/v1/subscriptions/sub_xxx") +``` + +**List invoices:** +``` +http(method="GET", url="https://api.stripe.com/v1/invoices?customer=cus_xxx&limit=10") +``` + +**Create refund:** +``` +http(method="POST", url="https://api.stripe.com/v1/refunds", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="payment_intent=pi_xxx&amount=2000") +``` + +**List products:** +``` +http(method="GET", url="https://api.stripe.com/v1/products?active=true&limit=20") +``` + +**Get balance:** +``` +http(method="GET", url="https://api.stripe.com/v1/balance") +``` + +## Notes + +- All amounts are in the **smallest currency unit** (cents for USD): $50.00 = `5000`. +- IDs are prefixed: `cus_` (customer), `sub_` (subscription), `pi_` (payment intent), `price_` (price), `prod_` (product), `in_` (invoice). +- Nested params use bracket notation: `items[0][price]=price_xxx`. +- Pagination: `starting_after=` + `limit`. Check `has_more` in response. +- List responses: `{"data": [...], "has_more": true/false}`. +- Use test keys (prefix `sk_test_`) for development. diff --git a/skills/subvisory/SKILL.md b/skills/subvisory/SKILL.md new file mode 100644 index 00000000..74193b1b --- /dev/null +++ b/skills/subvisory/SKILL.md @@ -0,0 +1,46 @@ +--- +name: subvisory +version: "1.0.0" +description: Subvisory API — A subscription tracking and optimization platform that helps individuals and tea +activation: + keywords: + - "subvisory" + - "subscription management" + patterns: + - "(?i)subvisory" + tags: + - "tools" + - "subscription-management" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SUBVISORY_API_KEY] +--- + +# Subvisory API + +Use the `http` tool. API key is automatically injected via `X-API-Key` header — **never construct auth headers manually**. + +> A subscription tracking and optimization platform that helps individuals and teams monitor recurring payments, forecast spending, receive billing and trial reminders, and manage subscription details v + +## Authentication + +This integration uses **API Key** authentication via the `X-API-Key` header. +Format: `X-API-Key: ...` + +## Required Credentials + +- `SUBVISORY_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/supabase/SKILL.md b/skills/supabase/SKILL.md new file mode 100644 index 00000000..d144db99 --- /dev/null +++ b/skills/supabase/SKILL.md @@ -0,0 +1,88 @@ +--- +name: supabase +version: "1.0.0" +description: Supabase API — database (PostgREST), auth, storage, edge functions +activation: + keywords: + - "supabase" + - "supabase table" + - "supabase auth" + exclude_keywords: + - "firebase" + - "planetscale" + patterns: + - "(?i)supabase.*(table|query|auth|storage|bucket)" + tags: + - "database" + - "backend" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [SUPABASE_URL, SUPABASE_SERVICE_KEY] +--- + +# Supabase API + +Use the `http` tool. Include `apikey` header on all requests. The service key grants full access (bypasses RLS). + +## Base URL + +`https://{SUPABASE_URL}.supabase.co` + +Required header: +``` +headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}, {"name": "Prefer", "value": "return=representation"}] +``` + +## Database (PostgREST) + +**Select rows:** +``` +http(method="GET", url="https://{project}.supabase.co/rest/v1/users?select=id,name,email&order=created_at.desc&limit=20", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}]) +``` + +**Select with filter:** +``` +http(method="GET", url="https://{project}.supabase.co/rest/v1/orders?select=*&status=eq.active&amount=gt.100&order=created_at.desc", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}]) +``` + +**Insert row:** +``` +http(method="POST", url="https://{project}.supabase.co/rest/v1/users", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}, {"name": "Prefer", "value": "return=representation"}], body={"name": "Alice", "email": "alice@example.com"}) +``` + +**Update rows:** +``` +http(method="PATCH", url="https://{project}.supabase.co/rest/v1/users?id=eq.123", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}, {"name": "Prefer", "value": "return=representation"}], body={"name": "Updated Name"}) +``` + +**Delete rows:** +``` +http(method="DELETE", url="https://{project}.supabase.co/rest/v1/users?id=eq.123", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}]) +``` + +**RPC (call database function):** +``` +http(method="POST", url="https://{project}.supabase.co/rest/v1/rpc/my_function", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}], body={"param1": "value"}) +``` + +## Storage + +**List buckets:** +``` +http(method="GET", url="https://{project}.supabase.co/storage/v1/bucket", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}]) +``` + +**List files in bucket:** +``` +http(method="POST", url="https://{project}.supabase.co/storage/v1/object/list/", headers=[{"name": "apikey", "value": "{SUPABASE_SERVICE_KEY}"}], body={"prefix": "", "limit": 20}) +``` + +## Notes + +- PostgREST filter operators: `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `like`, `ilike`, `in`, `is`. +- Select specific columns: `?select=col1,col2`. Relations: `?select=*,orders(*)`. +- `Prefer: return=representation` returns the created/updated rows. +- Use `anon` key for client-side (respects RLS) or `service_role` key for admin (bypasses RLS). +- Pagination: `limit` + `offset` or `Range` header. diff --git a/skills/supervisely/SKILL.md b/skills/supervisely/SKILL.md new file mode 100644 index 00000000..758099bb --- /dev/null +++ b/skills/supervisely/SKILL.md @@ -0,0 +1,46 @@ +--- +name: supervisely +version: "1.0.0" +description: Supervisely API — A web-based computer vision platform that enables teams to annotate and manage d +activation: + keywords: + - "supervisely" + - "computer vision" + patterns: + - "(?i)supervisely" + tags: + - "tools" + - "computer-vision" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SUPERVISELY_API_KEY] +--- + +# Supervisely API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> A web-based computer vision platform that enables teams to annotate and manage datasets (images, video, 3D, medical), build and train neural networks, automate labeling with AI, and collaborate on mod + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `SUPERVISELY_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/svix/SKILL.md b/skills/svix/SKILL.md new file mode 100644 index 00000000..7531b20e --- /dev/null +++ b/skills/svix/SKILL.md @@ -0,0 +1,56 @@ +--- +name: svix +version: "1.0.0" +description: Svix API — Svix is a webhook delivery service that enables developers to send, receive +activation: + keywords: + - "svix" + - "developer-tools" + patterns: + - "(?i)svix" + tags: + - "tools" + - "developer-tools" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [SVIX_BASE_URL, SVIX_TOKEN] +--- + +# Svix API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +## Base URL + +`https://api.svix.com` + +## Actions + +**List applications:** +``` +http(method="GET", url="https://api.svix.com/api/v1/app/?limit=10") +``` + +**Create application:** +``` +http(method="POST", url="https://api.svix.com/api/v1/app/", body={"name": "My App","uid": "my-app"}) +``` + +**Create message:** +``` +http(method="POST", url="https://api.svix.com/api/v1/app/{app_id}/msg/", body={"eventType": "order.completed","payload": {"orderId": "123"}}) +``` + +**List endpoints:** +``` +http(method="GET", url="https://api.svix.com/api/v1/app/{app_id}/endpoint/?limit=10") +``` + +## Notes + +- Svix is a webhooks-as-a-service platform. +- Applications group endpoints and messages. +- Messages are webhook payloads sent to all matching endpoints. +- Event types define the schema of webhook payloads. diff --git a/skills/tavily/SKILL.md b/skills/tavily/SKILL.md new file mode 100644 index 00000000..f835e3d6 --- /dev/null +++ b/skills/tavily/SKILL.md @@ -0,0 +1,60 @@ +--- +name: tavily +version: "1.0.0" +description: Tavily Search API — AI-optimized web search for LLM agents +activation: + keywords: + - "tavily" + - "tavily search" + - "web search" + exclude_keywords: + - "exa" + - "brave" + - "google" + patterns: + - "(?i)tavily.*(search|find)" + - "(?i)search.*web.*tavily" + tags: + - "search" + - "ai" + max_context_tokens: 800 +metadata: + openclaw: + requires: + env: [TAVILY_API_KEY] +--- + +# Tavily Search API + +Use the `http` tool. + +## Endpoint + +`https://api.tavily.com` + +## Actions + +**Search:** +``` +http(method="POST", url="https://api.tavily.com/search", body={"api_key": "{TAVILY_API_KEY}", "query": "latest developments in AI safety", "search_depth": "advanced", "max_results": 5, "include_answer": true}) +``` + +**Search with content extraction:** +``` +http(method="POST", url="https://api.tavily.com/search", body={"api_key": "{TAVILY_API_KEY}", "query": "rust async programming best practices", "search_depth": "advanced", "max_results": 5, "include_raw_content": true, "include_answer": true}) +``` + +**Extract content from URLs:** +``` +http(method="POST", url="https://api.tavily.com/extract", body={"api_key": "{TAVILY_API_KEY}", "urls": ["https://example.com/article"]}) +``` + +## Notes + +- `search_depth`: `basic` (fast) or `advanced` (thorough, includes content). +- `include_answer`: returns an AI-generated answer alongside results. +- `include_raw_content`: includes full page content (increases response size). +- Domain filtering: `include_domains`, `exclude_domains` arrays. +- `topic`: `general` (default) or `news` for news-focused results. +- API key goes in the body, not headers. +- Results include `url`, `title`, `content` (snippet), `score`. diff --git a/skills/teams/SKILL.md b/skills/teams/SKILL.md new file mode 100644 index 00000000..1fa8a7d2 --- /dev/null +++ b/skills/teams/SKILL.md @@ -0,0 +1,59 @@ +--- +name: teams +version: "1.0.0" +description: Teams API — A collaboration and communication platform that offers chat, meetings +activation: + keywords: + - "teams" + - "ai" + patterns: + - "(?i)teams" + tags: + - "ai" + - "machine-learning" + - "storage" + - "communication" + max_context_tokens: 1200 +--- + +# Teams API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://graph.microsoft.com/v1.0` + +## Actions + +**List my teams:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/joinedTeams") +``` + +**List channels:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/teams/{team_id}/channels") +``` + +**Send message:** +``` +http(method="POST", url="https://graph.microsoft.com/v1.0/teams/{team_id}/channels/{channel_id}/messages", body={"body": {"content": "Hello Teams!"}}) +``` + +**List messages:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/teams/{team_id}/channels/{channel_id}/messages?$top=10") +``` + +**List chats:** +``` +http(method="GET", url="https://graph.microsoft.com/v1.0/me/chats?$top=10") +``` + +## Notes + +- Uses OAuth 2.0 via Microsoft Graph — credentials are auto-injected. +- Message body supports HTML: `{"contentType": "html", "content": "Bold"}`. +- Team and channel IDs are GUIDs. +- Pagination: `@odata.nextLink` URL in response. diff --git a/skills/todoist/SKILL.md b/skills/todoist/SKILL.md new file mode 100644 index 00000000..bfcdc875 --- /dev/null +++ b/skills/todoist/SKILL.md @@ -0,0 +1,83 @@ +--- +name: todoist +version: "1.0.0" +description: Todoist REST API — tasks, projects, labels, comments, sections +activation: + keywords: + - "todoist" + - "todoist task" + - "todoist project" + - "todo list" + exclude_keywords: + - "asana" + - "trello" + patterns: + - "(?i)todoist.*(task|project|label)" + - "(?i)(add|list|complete).*todoist" + tags: + - "task-management" + - "productivity" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [TODOIST_API_TOKEN] +--- + +# Todoist REST API + +Use the `http` tool. Credentials are automatically injected for `api.todoist.com`. + +## Base URL + +`https://api.todoist.com/rest/v2` + +## Actions + +**List active tasks:** +``` +http(method="GET", url="https://api.todoist.com/rest/v2/tasks") +``` + +**Get task:** +``` +http(method="GET", url="https://api.todoist.com/rest/v2/tasks/") +``` + +**Create task:** +``` +http(method="POST", url="https://api.todoist.com/rest/v2/tasks", body={"content": "Buy groceries", "description": "Milk, eggs, bread", "project_id": "", "due_string": "tomorrow at 10am", "priority": 3}) +``` + +**Complete task:** +``` +http(method="POST", url="https://api.todoist.com/rest/v2/tasks//close") +``` + +**Update task:** +``` +http(method="POST", url="https://api.todoist.com/rest/v2/tasks/", body={"content": "Updated title", "priority": 4}) +``` + +**List projects:** +``` +http(method="GET", url="https://api.todoist.com/rest/v2/projects") +``` + +**Create project:** +``` +http(method="POST", url="https://api.todoist.com/rest/v2/projects", body={"name": "Work"}) +``` + +**Add comment:** +``` +http(method="POST", url="https://api.todoist.com/rest/v2/comments", body={"task_id": "", "content": "Note to self"}) +``` + +## Notes + +- Priority: 1=normal, 2=medium, 3=high, 4=urgent (reversed from most systems). +- `due_string` supports natural language: "tomorrow", "every monday", "Jan 5 at 3pm". +- Task IDs are numeric strings. Project IDs are also numeric. +- Filter tasks with `?project_id=X` or `?label=Y` query params. +- Completing a recurring task creates the next occurrence automatically. diff --git a/skills/trello/SKILL.md b/skills/trello/SKILL.md new file mode 100644 index 00000000..35860fd6 --- /dev/null +++ b/skills/trello/SKILL.md @@ -0,0 +1,84 @@ +--- +name: trello +version: "1.0.0" +description: Trello REST API — boards, lists, cards, comments, labels +activation: + keywords: + - "trello" + - "trello board" + - "trello card" + exclude_keywords: + - "jira" + - "asana" + patterns: + - "(?i)trello.*(board|card|list)" + - "(?i)(create|move|update).*trello" + tags: + - "project-management" + - "kanban" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [TRELLO_API_KEY, TRELLO_TOKEN] +--- + +# Trello REST API + +Use the `http` tool. Auth is via query params `key` and `token` appended to every URL. + +## Base URL + +`https://api.trello.com/1` + +Append `?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}` to all URLs. + +## Actions + +**List my boards:** +``` +http(method="GET", url="https://api.trello.com/1/members/me/boards?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}&fields=name,url,shortUrl") +``` + +**Get board lists:** +``` +http(method="GET", url="https://api.trello.com/1/boards//lists?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}&fields=name") +``` + +**List cards in a list:** +``` +http(method="GET", url="https://api.trello.com/1/lists//cards?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}&fields=name,desc,due,labels") +``` + +**Create card:** +``` +http(method="POST", url="https://api.trello.com/1/cards?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}", body={"name": "Card title", "desc": "Description", "idList": "", "due": "2026-04-01T12:00:00.000Z"}) +``` + +**Move card to another list:** +``` +http(method="PUT", url="https://api.trello.com/1/cards/?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}", body={"idList": ""}) +``` + +**Add comment:** +``` +http(method="POST", url="https://api.trello.com/1/cards//actions/comments?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}", body={"text": "Comment"}) +``` + +**Add label to card:** +``` +http(method="POST", url="https://api.trello.com/1/cards//idLabels?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}", body={"value": ""}) +``` + +**Search:** +``` +http(method="GET", url="https://api.trello.com/1/search?key={TRELLO_API_KEY}&token={TRELLO_TOKEN}&query=search+text&modelTypes=cards&cards_limit=10") +``` + +## Notes + +- Trello uses query-parameter auth, not headers. Always include `key` and `token`. +- IDs are 24-character hex strings like `"5a1b2c3d4e5f6a7b8c9d0e1f"`. +- Due dates are ISO 8601 with timezone. `dueComplete: true` marks as done. +- `fields` param controls which properties to return (comma-separated). +- Board shortLinks can be used interchangeably with IDs. diff --git a/skills/twelve-data/SKILL.md b/skills/twelve-data/SKILL.md new file mode 100644 index 00000000..7f55e63e --- /dev/null +++ b/skills/twelve-data/SKILL.md @@ -0,0 +1,46 @@ +--- +name: twelve-data +version: "1.0.0" +description: Twelve Data API — Twelve Data provides unified REST and WebSocket APIs delivering real-time and hi +activation: + keywords: + - "twelve-data" + - "twelve data" + - "finance" + patterns: + - "(?i)twelve.?data" + tags: + - "tools" + - "finance" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [TWELVE_DATA_API_KEY] +--- + +# Twelve Data API + +Use the `http` tool. API key is automatically injected as `apikey` query parameter. + +> Twelve Data provides unified REST and WebSocket APIs delivering real-time and historical market data—including stocks, forex, crypto, ETFs, commodities, and fundamentals—alongside technical indicators + +## Authentication + +This integration uses **query parameter** authentication via `apikey`. + +## Required Credentials + +- `TWELVE_DATA_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/twilio/SKILL.md b/skills/twilio/SKILL.md new file mode 100644 index 00000000..9e27f962 --- /dev/null +++ b/skills/twilio/SKILL.md @@ -0,0 +1,60 @@ +--- +name: twilio +version: "1.0.0" +description: Twilio API — Twilio is a cloud communications platform that enables developers to build SMS +activation: + keywords: + - "twilio" + - "tools" + patterns: + - "(?i)twilio" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN] +--- + +# Twilio API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://api.twilio.com/2010-04-01/Accounts/{TWILIO_ACCOUNT_SID}` + +**Content-Type**: `application/x-www-form-urlencoded` for POST/PUT requests. + +## Actions + +**Send SMS:** +``` +http(method="POST", url="https://api.twilio.com/2010-04-01/Accounts/{TWILIO_ACCOUNT_SID}/Messages.json", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="To=%2B1234567890&From=%2B0987654321&Body=Hello+from+Twilio") +``` + +**List messages:** +``` +http(method="GET", url="https://api.twilio.com/2010-04-01/Accounts/{TWILIO_ACCOUNT_SID}/Messages.json?PageSize=10") +``` + +**Make call:** +``` +http(method="POST", url="https://api.twilio.com/2010-04-01/Accounts/{TWILIO_ACCOUNT_SID}/Calls.json", headers=[{"name": "Content-Type", "value": "application/x-www-form-urlencoded"}], body="To=%2B1234567890&From=%2B0987654321&Url=http://demo.twilio.com/docs/voice.xml") +``` + +**List calls:** +``` +http(method="GET", url="https://api.twilio.com/2010-04-01/Accounts/{TWILIO_ACCOUNT_SID}/Calls.json?PageSize=10") +``` + +## Notes + +- Uses Basic auth with Account SID and Auth Token. +- POST bodies are form-encoded. +- Phone numbers in E.164 format (URL-encoded `+` → `%2B`). +- `.json` suffix returns JSON (default is XML). +- Pagination: `NextPageUri` in response. diff --git a/skills/typeform/SKILL.md b/skills/typeform/SKILL.md new file mode 100644 index 00000000..837b3b3c --- /dev/null +++ b/skills/typeform/SKILL.md @@ -0,0 +1,57 @@ +--- +name: typeform +version: "1.0.0" +description: Typeform API — Typeform is a cloud-based form builder that enables users to create interactive +activation: + keywords: + - "typeform" + - "tools" + patterns: + - "(?i)typeform" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [TYPEFORM_BASE_URL] +--- + +# Typeform API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.typeform.com` + +## Actions + +**List forms:** +``` +http(method="GET", url="https://api.typeform.com/forms?page_size=10") +``` + +**Get form:** +``` +http(method="GET", url="https://api.typeform.com/forms/{form_id}") +``` + +**List responses:** +``` +http(method="GET", url="https://api.typeform.com/forms/{form_id}/responses?page_size=10") +``` + +**Create form:** +``` +http(method="POST", url="https://api.typeform.com/forms", body={"title": "My Survey","fields": [{"type": "short_text","title": "What is your name?"}]}) +``` + +## Notes + +- Field types: `short_text`, `long_text`, `multiple_choice`, `yes_no`, `email`, `number`, `rating`, `date`. +- Responses contain `answers` array matching form `fields`. +- Pagination: `page_size` + `before`/`after` tokens. +- Webhooks configurable per form for real-time responses. diff --git a/skills/uber-eats/SKILL.md b/skills/uber-eats/SKILL.md new file mode 100644 index 00000000..e3391a6b --- /dev/null +++ b/skills/uber-eats/SKILL.md @@ -0,0 +1,47 @@ +--- +name: uber-eats +version: "1.0.0" +description: Uber Eats API — Uber Eats is a global online food ordering and delivery platform that lets consu +activation: + keywords: + - "uber-eats" + - "uber eats" + - "food delivery" + patterns: + - "(?i)uber.?eats" + tags: + - "tools" + - "food-delivery" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [UBER_EATS_CLIENT_ID, UBER_EATS_CLIENT_SECRET] +--- + +# Uber Eats API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Uber Eats is a global online food ordering and delivery platform that lets consumers browse local restaurant menus, place orders for delivery or pickup, and track fulfillment in real time while connec + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Required Credentials + +- `UBER_EATS_CLIENT_ID` — Client ID +- `UBER_EATS_CLIENT_SECRET` — Client Secret + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/unipile/SKILL.md b/skills/unipile/SKILL.md new file mode 100644 index 00000000..1a8cef50 --- /dev/null +++ b/skills/unipile/SKILL.md @@ -0,0 +1,48 @@ +--- +name: unipile +version: "1.0.0" +description: Unipile API — Unipile is a unified communication and productivity platform that brings togethe +activation: + keywords: + - "unipile" + - "tools" + patterns: + - "(?i)unipile" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [UNIPILE_DSN, UNIPILE_API_KEY] +--- + +# Unipile API + +Use the `http` tool. API key is automatically injected via `X-API-KEY` header — **never construct auth headers manually**. + +> Unipile is a unified communication and productivity platform that brings together emails, messages, calendars, and task management into a single, streamlined interface to help individuals and teams st + +## Authentication + +This integration uses **API Key** authentication via the `X-API-KEY` header. +Format: `X-API-KEY: ...` + +## Required Credentials + +- `UNIPILE_DSN` — DSN +- `UNIPILE_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/valyu/SKILL.md b/skills/valyu/SKILL.md new file mode 100644 index 00000000..1eca08a8 --- /dev/null +++ b/skills/valyu/SKILL.md @@ -0,0 +1,48 @@ +--- +name: valyu +version: "1.0.0" +description: Valyu API — Valyu is a multimodal retrieval API built to enrich your AI’s context with reran +activation: + keywords: + - "valyu" + - "ai" + patterns: + - "(?i)valyu" + tags: + - "ai" + - "machine-learning" + - "storage" + - "communication" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [VALYU_API_KEY] +--- + +# Valyu API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> Valyu is a multimodal retrieval API built to enrich your AI’s context with reranked knowledge from scholarly literature, real-time news, market feeds, and fresh web data. + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `VALYU_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/vercel/SKILL.md b/skills/vercel/SKILL.md new file mode 100644 index 00000000..158fb2ca --- /dev/null +++ b/skills/vercel/SKILL.md @@ -0,0 +1,93 @@ +--- +name: vercel +version: "1.0.0" +description: Vercel API — deployments, projects, domains, environment variables, logs +activation: + keywords: + - "vercel" + - "vercel deploy" + - "vercel project" + exclude_keywords: + - "netlify" + - "heroku" + patterns: + - "(?i)vercel.*(deploy|project|domain|env)" + - "(?i)(deploy|rollback).*vercel" + tags: + - "deployment" + - "hosting" + - "devops" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [VERCEL_TOKEN] +--- + +# Vercel API + +Use the `http` tool. Credentials are automatically injected for `api.vercel.com`. + +## Base URL + +`https://api.vercel.com` + +## Actions + +**List projects:** +``` +http(method="GET", url="https://api.vercel.com/v9/projects?limit=20") +``` + +**Get project:** +``` +http(method="GET", url="https://api.vercel.com/v9/projects/") +``` + +**List deployments:** +``` +http(method="GET", url="https://api.vercel.com/v6/deployments?projectId=&limit=10") +``` + +**Get deployment:** +``` +http(method="GET", url="https://api.vercel.com/v13/deployments/") +``` + +**List environment variables:** +``` +http(method="GET", url="https://api.vercel.com/v9/projects//env") +``` + +**Create environment variable:** +``` +http(method="POST", url="https://api.vercel.com/v10/projects//env", body={"key": "API_KEY", "value": "secret123", "type": "encrypted", "target": ["production", "preview"]}) +``` + +**List domains:** +``` +http(method="GET", url="https://api.vercel.com/v9/projects//domains") +``` + +**Add domain:** +``` +http(method="POST", url="https://api.vercel.com/v10/projects//domains", body={"name": "app.example.com"}) +``` + +**Promote deployment (alias):** +``` +http(method="POST", url="https://api.vercel.com/v10/projects//promote/") +``` + +**Get deployment build logs:** +``` +http(method="GET", url="https://api.vercel.com/v7/deployments//events") +``` + +## Notes + +- Deployment states: `BUILDING`, `READY`, `ERROR`, `CANCELED`, `QUEUED`. +- Env var targets: `production`, `preview`, `development`. +- Env var types: `plain`, `encrypted`, `secret`, `system`. +- Team scope: add `?teamId=` to all requests if using team account. +- Pagination: `limit` + `until` (timestamp) or `next` cursor. diff --git a/skills/vitally/SKILL.md b/skills/vitally/SKILL.md new file mode 100644 index 00000000..a353aa11 --- /dev/null +++ b/skills/vitally/SKILL.md @@ -0,0 +1,47 @@ +--- +name: vitally +version: "1.0.0" +description: Vitally API — Vitally is a customer success platform that helps B2B teams monitor product usag +activation: + keywords: + - "vitally" + - "csp" + patterns: + - "(?i)vitally" + tags: + - "tools" + - "csp" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [VITALLY_API_KEY, VITALLY_BASE_URL] +--- + +# Vitally API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Vitally is a customer success platform that helps B2B teams monitor product usage, segment accounts, automate workflows, and drive retention and expansion using data-driven insights and playbooks. + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: Basic ...` + +## Required Credentials + +- `VITALLY_API_KEY` — API Key +- `VITALLY_BASE_URL` — Base URL + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/voiceflow/SKILL.md b/skills/voiceflow/SKILL.md new file mode 100644 index 00000000..dd5648cd --- /dev/null +++ b/skills/voiceflow/SKILL.md @@ -0,0 +1,48 @@ +--- +name: voiceflow +version: "1.0.0" +description: Voiceflow API — Voiceflow is a collaborative platform that enables teams to design, prototype +activation: + keywords: + - "voiceflow" + - "ai" + patterns: + - "(?i)voiceflow" + tags: + - "ai" + - "machine-learning" + - "storage" + - "communication" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [VOICEFLOW_API_KEY] +--- + +# Voiceflow API + +Use the `http` tool. API key is automatically injected via `Authorization` header — **never construct auth headers manually**. + +> Voiceflow is a collaborative platform that enables teams to design, prototype, and build conversational AI experiences like voice assistants and chatbots without writing code. + +## Authentication + +This integration uses **API Key** authentication via the `Authorization` header. +Format: `Authorization: ...` + +## Required Credentials + +- `VOICEFLOW_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/waterfall/SKILL.md b/skills/waterfall/SKILL.md new file mode 100644 index 00000000..b3562539 --- /dev/null +++ b/skills/waterfall/SKILL.md @@ -0,0 +1,46 @@ +--- +name: waterfall +version: "1.0.0" +description: Waterfall API — Waterfall provides a unified B2B data platform that aggregates multiple vendors +activation: + keywords: + - "waterfall" + - "data" + patterns: + - "(?i)waterfall" + tags: + - "tools" + - "data" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [WATERFALL_API_KEY] +--- + +# Waterfall API + +Use the `http` tool. API key is automatically injected via `x-api-key` header — **never construct auth headers manually**. + +> Waterfall provides a unified B2B data platform that aggregates multiple vendors into one API to deliver verified contact details, phone numbers, job changes, and enrichment at scale for sales and GTM + +## Authentication + +This integration uses **API Key** authentication via the `x-api-key` header. +Format: `x-api-key: ...` + +## Required Credentials + +- `WATERFALL_API_KEY` — API Key + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/weaviate/SKILL.md b/skills/weaviate/SKILL.md new file mode 100644 index 00000000..6c29cb8c --- /dev/null +++ b/skills/weaviate/SKILL.md @@ -0,0 +1,58 @@ +--- +name: weaviate +version: "1.0.0" +description: Weaviate API — Weaviate is an open-source vector database designed for storing and searching la +activation: + keywords: + - "weaviate" + - "ai" + patterns: + - "(?i)weaviate" + tags: + - "ai" + - "machine-learning" + - "storage" + - "communication" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [WEAVIATE_API_KEY, WEAVIATE_REST_ENDPOINT] +--- + +# Weaviate API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{WEAVIATE_HOST}` + +## Actions + +**List collections:** +``` +http(method="GET", url="https://{WEAVIATE_HOST}/v1/schema") +``` + +**Create collection:** +``` +http(method="POST", url="https://{WEAVIATE_HOST}/v1/schema", body={"class": "Article","vectorizer": "text2vec-openai","properties": [{"name": "title","dataType": ["text"]},{"name": "content","dataType": ["text"]}]}) +``` + +**Add object:** +``` +http(method="POST", url="https://{WEAVIATE_HOST}/v1/objects", body={"class": "Article","properties": {"title": "My Article","content": "Article content"}}) +``` + +**GraphQL query:** +``` +http(method="POST", url="https://{WEAVIATE_HOST}/v1/graphql", body={"query": "{ Get { Article(limit: 5, nearText: {concepts: [\"AI\"]}) { title content } } }"}) +``` + +## Notes + +- Weaviate is a vector database. +- Classes define collections with properties and vectorizers. +- Vectorizers: `text2vec-openai`, `text2vec-cohere`, `text2vec-huggingface`. +- Search: `nearText` (semantic), `nearVector`, `bm25` (keyword), `hybrid`. diff --git a/skills/webflow/SKILL.md b/skills/webflow/SKILL.md new file mode 100644 index 00000000..ee932571 --- /dev/null +++ b/skills/webflow/SKILL.md @@ -0,0 +1,63 @@ +--- +name: webflow +version: "1.0.0" +description: Webflow API — Webflow is a no-code website builder that enables users to design, build +activation: + keywords: + - "webflow" + - "tools" + patterns: + - "(?i)webflow" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +--- + +# Webflow API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.webflow.com/v2` + +## Actions + +**List sites:** +``` +http(method="GET", url="https://api.webflow.com/v2/sites") +``` + +**Get site:** +``` +http(method="GET", url="https://api.webflow.com/v2/sites/{site_id}") +``` + +**List collections:** +``` +http(method="GET", url="https://api.webflow.com/v2/sites/{site_id}/collections") +``` + +**List items:** +``` +http(method="GET", url="https://api.webflow.com/v2/collections/{collection_id}/items?limit=10") +``` + +**Create item:** +``` +http(method="POST", url="https://api.webflow.com/v2/collections/{collection_id}/items", body={"fieldData": {"name": "New Post","slug": "new-post"},"isArchived": false,"isDraft": false}) +``` + +**Publish site:** +``` +http(method="POST", url="https://api.webflow.com/v2/sites/{site_id}/publish", body={"domains": ["mysite.webflow.io"]}) +``` + +## Notes + +- Collections are CMS content types. +- Items have `fieldData` matching collection field schema. +- Draft items need explicit publishing. +- Pagination: `offset` and `limit` params. diff --git a/skills/wikimedia/SKILL.md b/skills/wikimedia/SKILL.md new file mode 100644 index 00000000..cf66e227 --- /dev/null +++ b/skills/wikimedia/SKILL.md @@ -0,0 +1,39 @@ +--- +name: wikimedia +version: "1.0.0" +description: Wikimedia API — Wikimedia is a global nonprofit organization that hosts and supports free knowle +activation: + keywords: + - "wikimedia" + - "productivity" + patterns: + - "(?i)wikimedia" + tags: + - "productivity" + - "collaboration" + - "news" + - "productiv" + max_context_tokens: 1200 +--- + +# Wikimedia API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +> Wikimedia is a global nonprofit organization that hosts and supports free knowledge platforms like Wikipedia, offering collaborative, open-content resources maintained by a worldwide community of volu + +## Authentication + +This integration uses **OAuth 2.0**. The token is managed automatically — no manual auth setup required in API calls. + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/woocommerce/SKILL.md b/skills/woocommerce/SKILL.md new file mode 100644 index 00000000..1cfba7c8 --- /dev/null +++ b/skills/woocommerce/SKILL.md @@ -0,0 +1,61 @@ +--- +name: woocommerce +version: "1.0.0" +description: WooCommerce API — WooCommerce is a customizable, open-source eCommerce plugin for WordPress +activation: + keywords: + - "woocommerce" + - "ecommerce" + patterns: + - "(?i)woocommerce" + tags: + - "tools" + - "eCommerce" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [WOOCOMMERCE_BASE_URL, WOOCOMMERCE_CONSUMER_KEY, WOOCOMMERCE_CONSUMER_SECRET] +--- + +# WooCommerce API + +Use the `http` tool. Credentials are automatically injected. + +## Base URL + +`https://{WOOCOMMERCE_STORE}/wp-json/wc/v3` + +## Actions + +**List products:** +``` +http(method="GET", url="https://{WOOCOMMERCE_STORE}/wp-json/wc/v3/products?per_page=10") +``` + +**Get product:** +``` +http(method="GET", url="https://{WOOCOMMERCE_STORE}/wp-json/wc/v3/products/{product_id}") +``` + +**Create product:** +``` +http(method="POST", url="https://{WOOCOMMERCE_STORE}/wp-json/wc/v3/products", body={"name": "Widget","type": "simple","regular_price": "29.99","description": "A great widget"}) +``` + +**List orders:** +``` +http(method="GET", url="https://{WOOCOMMERCE_STORE}/wp-json/wc/v3/orders?per_page=10") +``` + +**List customers:** +``` +http(method="GET", url="https://{WOOCOMMERCE_STORE}/wp-json/wc/v3/customers?per_page=10") +``` + +## Notes + +- Uses Basic auth with consumer key and secret. +- Product types: `simple`, `grouped`, `variable`, `external`. +- Order statuses: `pending`, `processing`, `on-hold`, `completed`, `cancelled`, `refunded`, `failed`. +- Pagination: `page` and `per_page` params; check `X-WP-Total` header. diff --git a/skills/word-press/SKILL.md b/skills/word-press/SKILL.md new file mode 100644 index 00000000..3c43ade0 --- /dev/null +++ b/skills/word-press/SKILL.md @@ -0,0 +1,64 @@ +--- +name: word-press +version: "1.0.0" +description: WordPress API — WordPress is a popular open-source content management system (CMS) that enables +activation: + keywords: + - "word-press" + - "wordpress" + - "tools" + patterns: + - "(?i)word.?press" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +--- + +# WordPress API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{WORDPRESS_SITE}/wp-json/wp/v2` + +## Actions + +**List posts:** +``` +http(method="GET", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/posts?per_page=10") +``` + +**Get post:** +``` +http(method="GET", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/posts/{post_id}") +``` + +**Create post:** +``` +http(method="POST", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/posts", body={"title": "My Post","content": "

Post content

","status": "draft"}) +``` + +**List pages:** +``` +http(method="GET", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/pages?per_page=10") +``` + +**List categories:** +``` +http(method="GET", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/categories") +``` + +**Upload media:** +``` +http(method="POST", url="https://{WORDPRESS_SITE}/wp-json/wp/v2/media") +``` + +## Notes + +- Post statuses: `publish`, `draft`, `pending`, `private`, `future`. +- Content uses HTML in `content` field. +- `_embed` query param includes related data (author, featured image). +- Pagination: `page` and `per_page`; check `X-WP-Total` header. diff --git a/skills/workable/SKILL.md b/skills/workable/SKILL.md new file mode 100644 index 00000000..1052cc11 --- /dev/null +++ b/skills/workable/SKILL.md @@ -0,0 +1,56 @@ +--- +name: workable +version: "1.0.0" +description: Workable API — Workable is a hiring platform that streamlines recruiting processes with tools f +activation: + keywords: + - "workable" + - "ats" + patterns: + - "(?i)workable" + tags: + - "tools" + - "ATS" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [WORKABLE_SUBDOMAIN, WORKABLE_AUTH_TOKEN] +--- + +# Workable API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://{WORKABLE_SUBDOMAIN}.workable.com/spi/v3` + +## Actions + +**List jobs:** +``` +http(method="GET", url="https://{WORKABLE_SUBDOMAIN}.workable.com/spi/v3/jobs?state=published&limit=10") +``` + +**Get job:** +``` +http(method="GET", url="https://{WORKABLE_SUBDOMAIN}.workable.com/spi/v3/jobs/{shortcode}") +``` + +**List candidates:** +``` +http(method="GET", url="https://{WORKABLE_SUBDOMAIN}.workable.com/spi/v3/jobs/{shortcode}/candidates?limit=10") +``` + +**Create candidate:** +``` +http(method="POST", url="https://{WORKABLE_SUBDOMAIN}.workable.com/spi/v3/jobs/{shortcode}/candidates", body={"sourced": true,"candidate": {"name": "John Doe","email": "john@example.com"}}) +``` + +## Notes + +- Jobs identified by shortcode (e.g., `ABCDE1`). +- Job states: `draft`, `published`, `closed`, `archived`. +- Candidate stages configurable per pipeline. +- Pagination: `has_more` + `paging.next` URL in response. diff --git a/skills/wttr-in/SKILL.md b/skills/wttr-in/SKILL.md new file mode 100644 index 00000000..92af7589 --- /dev/null +++ b/skills/wttr-in/SKILL.md @@ -0,0 +1,37 @@ +--- +name: wttr-in +version: "1.0.0" +description: Wttr.in API — Wttr.in is a console-based weather forecast service that provides location-speci +activation: + keywords: + - "wttr-in" + - "wttr.in" + - "logistics" + patterns: + - "(?i)wttr.?in" + tags: + - "tools" + - "weather" + max_context_tokens: 1200 +--- + +# Wttr.in API + +Use the `http` tool. Credentials are automatically injected. + +> Wttr.in is a console-based weather forecast service that provides location-specific weather updates in a minimal, text-based format. It’s especially popular among developers and system administrators + +## Authentication + + +## Usage + +Use the `http` tool to call this API. Example: +``` +http(method="GET", url="/endpoint") +``` + +## Common Mistakes + +- Do NOT add Authorization headers — automatically injected by the credential system. +- Always use HTTPS URLs. diff --git a/skills/x-ai/SKILL.md b/skills/x-ai/SKILL.md new file mode 100644 index 00000000..f0adf623 --- /dev/null +++ b/skills/x-ai/SKILL.md @@ -0,0 +1,49 @@ +--- +name: x-ai +version: "1.0.0" +description: X AI API — xAI is an artificial intelligence company focused on developing advanced AI syst +activation: + keywords: + - "x-ai" + - "x ai" + - "ai" + patterns: + - "(?i)x.?ai" + tags: + - "ai" + - "machine-learning" + - "storage" + - "communication" + max_context_tokens: 1200 +metadata: + openclaw: + requires: + env: [X_AI_API_KEY] +--- + +# X AI API + +Use the `http` tool. Credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.x.ai/v1` + +## Actions + +**Chat completion:** +``` +http(method="POST", url="https://api.x.ai/v1/chat/completions", body={"model": "grok-3","messages": [{"role": "user","content": "Hello"}],"max_tokens": 1024}) +``` + +**List models:** +``` +http(method="GET", url="https://api.x.ai/v1/models") +``` + +## Notes + +- OpenAI-compatible API format. +- Models: `grok-3`, `grok-3-mini`, `grok-2`. +- Supports `stream: true` for streaming. +- Temperature range: 0.0–2.0. diff --git a/skills/x/SKILL.md b/skills/x/SKILL.md new file mode 100644 index 00000000..43320651 --- /dev/null +++ b/skills/x/SKILL.md @@ -0,0 +1,53 @@ +--- +name: x +version: "1.0.0" +description: X API — X is a real-time social networking platform for sharing short-form content +activation: + keywords: + - "x" + - "tools" + patterns: + - "(?i)x" + tags: + - "tools" + - "utility" + - "tool" + max_context_tokens: 1200 +--- + +# X API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.x.com/2` + +## Actions + +**Search tweets:** +``` +http(method="GET", url="https://api.x.com/2/tweets/search/recent?query=from:username&max_results=10&tweet.fields=created_at,public_metrics") +``` + +**Get user by username:** +``` +http(method="GET", url="https://api.x.com/2/users/by/username/{username}?user.fields=public_metrics,description") +``` + +**Post tweet:** +``` +http(method="POST", url="https://api.x.com/2/tweets", body={"text": "Hello X!"}) +``` + +**Get user tweets:** +``` +http(method="GET", url="https://api.x.com/2/users/{user_id}/tweets?max_results=10&tweet.fields=created_at,public_metrics") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Use `tweet.fields`, `user.fields`, `expansions` to request specific data. +- Search query operators: `from:`, `to:`, `has:media`, `is:retweet`, `-is:reply`. +- Rate limits vary by endpoint and access level. diff --git a/skills/xero/SKILL.md b/skills/xero/SKILL.md new file mode 100644 index 00000000..e7fa68cb --- /dev/null +++ b/skills/xero/SKILL.md @@ -0,0 +1,59 @@ +--- +name: xero +version: "1.0.0" +description: Xero API — Xero is an online accounting software platform designed for small businesses +activation: + keywords: + - "xero" + - "accounting" + patterns: + - "(?i)xero" + tags: + - "accounting" + - "finance" + - "Accounting" + - "ai" + max_context_tokens: 1200 +--- + +# Xero API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.xero.com/api.xro/2.0` + +## Actions + +**List contacts:** +``` +http(method="GET", url="https://api.xero.com/api.xro/2.0/Contacts?page=1") +``` + +**Get contact:** +``` +http(method="GET", url="https://api.xero.com/api.xro/2.0/Contacts/{contact_id}") +``` + +**Create invoice:** +``` +http(method="POST", url="https://api.xero.com/api.xro/2.0/Invoices", body={"Type": "ACCREC","Contact": {"ContactID": "contact_id"},"LineItems": [{"Description": "Consulting","Quantity": 10,"UnitAmount": 150.0,"AccountCode": "200"}]}) +``` + +**List invoices:** +``` +http(method="GET", url="https://api.xero.com/api.xro/2.0/Invoices?page=1&Statuses=AUTHORISED") +``` + +**List accounts:** +``` +http(method="GET", url="https://api.xero.com/api.xro/2.0/Accounts") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Requires `Xero-tenant-id` header for multi-org access. +- Invoice types: `ACCREC` (receivable/sales), `ACCPAY` (payable/bills). +- Invoice statuses: `DRAFT`, `SUBMITTED`, `AUTHORISED`, `PAID`, `VOIDED`. diff --git a/skills/zendesk/SKILL.md b/skills/zendesk/SKILL.md new file mode 100644 index 00000000..baf79c90 --- /dev/null +++ b/skills/zendesk/SKILL.md @@ -0,0 +1,84 @@ +--- +name: zendesk +version: "1.0.0" +description: Zendesk Support API — tickets, users, comments, search, organizations +activation: + keywords: + - "zendesk" + - "zendesk ticket" + - "support ticket" + exclude_keywords: + - "jira" + - "freshdesk" + patterns: + - "(?i)zendesk.*(ticket|user|organization)" + - "(?i)(create|update|close).*support ticket" + tags: + - "customer-support" + - "helpdesk" + max_context_tokens: 1500 +metadata: + openclaw: + requires: + env: [ZENDESK_SUBDOMAIN, ZENDESK_EMAIL, ZENDESK_API_TOKEN] +--- + +# Zendesk Support API + +Use the `http` tool. Auth uses `{email}/token:{api_token}` as Basic auth. Credentials are automatically injected for your Zendesk subdomain. + +## Base URL + +`https://{ZENDESK_SUBDOMAIN}.zendesk.com/api/v2` + +## Actions + +**List tickets:** +``` +http(method="GET", url="https://{subdomain}.zendesk.com/api/v2/tickets?sort_by=created_at&sort_order=desc&per_page=20") +``` + +**Get ticket:** +``` +http(method="GET", url="https://{subdomain}.zendesk.com/api/v2/tickets/") +``` + +**Create ticket:** +``` +http(method="POST", url="https://{subdomain}.zendesk.com/api/v2/tickets", body={"ticket": {"subject": "Issue with login", "description": "Customer cannot log in", "priority": "high", "type": "problem", "requester": {"email": "user@example.com"}}}) +``` + +**Update ticket:** +``` +http(method="PUT", url="https://{subdomain}.zendesk.com/api/v2/tickets/", body={"ticket": {"status": "solved", "comment": {"body": "This has been resolved.", "public": true}}}) +``` + +**Add comment:** +``` +http(method="PUT", url="https://{subdomain}.zendesk.com/api/v2/tickets/", body={"ticket": {"comment": {"body": "Internal note", "public": false}}}) +``` + +**Search tickets:** +``` +http(method="GET", url="https://{subdomain}.zendesk.com/api/v2/search.json?query=type:ticket+status:open+priority:high&sort_by=created_at&sort_order=desc") +``` + +**List users:** +``` +http(method="GET", url="https://{subdomain}.zendesk.com/api/v2/users?role=end-user&per_page=20") +``` + +**Get user:** +``` +http(method="GET", url="https://{subdomain}.zendesk.com/api/v2/users/") +``` + +## Notes + +- Responses: `{"ticket": {...}}` or `{"tickets": [...]}`. +- Status flow: `new` → `open` → `pending` → `solved` → `closed`. +- Priority: `low`, `normal`, `high`, `urgent`. +- Type: `problem`, `incident`, `question`, `task`. +- Comments with `public: false` are internal notes (not visible to requester). +- Pagination: use `next_page` URL from response. Check `count` for total. +- Search syntax: `type:ticket status:open assignee:me priority:high created>2026-01-01`. diff --git a/skills/zoho/SKILL.md b/skills/zoho/SKILL.md new file mode 100644 index 00000000..badbc0c5 --- /dev/null +++ b/skills/zoho/SKILL.md @@ -0,0 +1,54 @@ +--- +name: zoho +version: "1.0.0" +description: Zoho API — Zoho offers a suite of cloud-based applications for businesses, including CRM +activation: + keywords: + - "zoho" + - "crm" + patterns: + - "(?i)zoho" + tags: + - "crm" + - "sales" + - "contacts" + - "CRM" + max_context_tokens: 1200 +--- + +# Zoho API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://www.zohoapis.com/crm/v2` + +## Actions + +**List records:** +``` +http(method="GET", url="https://www.zohoapis.com/crm/v2/Leads?per_page=10") +``` + +**Get record:** +``` +http(method="GET", url="https://www.zohoapis.com/crm/v2/Leads/{record_id}") +``` + +**Create record:** +``` +http(method="POST", url="https://www.zohoapis.com/crm/v2/Leads", body={"data": [{"Last_Name": "Doe","First_Name": "John","Email": "john@example.com","Company": "Acme"}]}) +``` + +**Search records:** +``` +http(method="GET", url="https://www.zohoapis.com/crm/v2/Leads/search?criteria=(Email:equals:john@example.com)") +``` + +## Notes + +- Uses OAuth 2.0 — credentials are auto-injected. +- Modules: `Leads`, `Contacts`, `Accounts`, `Deals`, `Tasks`, `Meetings`. +- Data wrapped in `{"data": [...]}`. +- Search criteria: `(Field:operator:value)`. Operators: `equals`, `starts_with`, `contains`. diff --git a/skills/zoom/SKILL.md b/skills/zoom/SKILL.md new file mode 100644 index 00000000..d8a3bbdd --- /dev/null +++ b/skills/zoom/SKILL.md @@ -0,0 +1,59 @@ +--- +name: zoom +version: "1.0.0" +description: Zoom API — Zoom is a video conferencing platform that enables virtual meetings, webinars +activation: + keywords: + - "zoom" + - "productivity" + patterns: + - "(?i)zoom" + tags: + - "productivity" + - "collaboration" + - "news" + - "productiv" + max_context_tokens: 1200 +--- + +# Zoom API + +Use the `http` tool. OAuth credentials are automatically injected — **never construct Authorization headers manually**. + +## Base URL + +`https://api.zoom.us/v2` + +## Actions + +**List meetings:** +``` +http(method="GET", url="https://api.zoom.us/v2/users/me/meetings?page_size=10") +``` + +**Create meeting:** +``` +http(method="POST", url="https://api.zoom.us/v2/users/me/meetings", body={"topic": "Team Meeting","type": 2,"start_time": "2026-03-28T10:00:00Z","duration": 60,"timezone": "America/New_York"}) +``` + +**Get meeting:** +``` +http(method="GET", url="https://api.zoom.us/v2/meetings/{meeting_id}") +``` + +**List users:** +``` +http(method="GET", url="https://api.zoom.us/v2/users?page_size=10") +``` + +**List recordings:** +``` +http(method="GET", url="https://api.zoom.us/v2/users/me/recordings?from=2026-03-01&to=2026-03-27") +``` + +## Notes + +- Uses OAuth 2.0 or JWT — credentials are auto-injected. +- Meeting types: 1=Instant, 2=Scheduled, 3=Recurring (no fixed time), 8=Recurring (fixed time). +- `me` in path refers to the authenticated user. +- Pagination: `next_page_token` from response.