Sure API工具

sure-api

by ashanzzz

Use the we-promise/sure REST API with X-Api-Key auth. Covers accounts, transactions, categories, tags, merchants, imports, holdings, trades, valuations, chats, official docs URLs, self-update workflow from upstream OpenAPI, and ClawHub publish readiness.

4.5k平台与服务未扫描2026年3月30日

安装

claude skill add --url https://github.com/openclaw/skills

文档

Sure API

Use this skill when the user asks to:

  • operate Sure through its API
  • inspect accounts, transactions, categories, tags, merchants, imports, holdings, trades, valuations, or chats
  • create/update/delete supported Sure resources safely
  • verify whether the upstream Sure API changed
  • keep this skill in sync with the official Sure API docs

Official source-of-truth URLs

These are the URLs the agent should trust first when updating or validating this skill:

  • Sure repo: https://github.com/we-promise/sure
  • API docs directory: https://github.com/we-promise/sure/tree/main/docs/api
  • OpenAPI spec page: https://github.com/we-promise/sure/blob/main/docs/api/openapi.yaml
  • Raw OpenAPI download used by the update script: https://raw.githubusercontent.com/we-promise/sure/main/docs/api/openapi.yaml

If behavior and local scripts disagree, re-check the upstream OpenAPI first.

Local config

Read secrets from secure env only:

  • SURE_BASE_URL
  • SURE_API_KEY

Single source of truth: secure/api-fillin.env

Never paste the API key into chat or into non-secure files.

Auth

Default auth header:

  • X-Api-Key: <SURE_API_KEY>

Note: the current upstream OpenAPI snapshot also shows Authorization header notes on some valuation endpoints. Treat upstream OpenAPI as authoritative if those endpoints behave differently in practice.

Skill layout

text
skills/sure-api/
├── SKILL.md
├── references/
│   ├── openapi.yaml
│   └── api_endpoints_summary.md
└── scripts/
    ├── sure_api_request.sh
    ├── sure_api_smoke.sh
    ├── sure_api_cli.js
    ├── sure_openapi_update.sh
    ├── sure_openapi_summarize.js
    └── sure_api_acceptance.sh

Capability model

This skill has two layers:

Layer 1: high-level wrapped commands

Use these first for common operations.

Implemented in scripts/sure_api_cli.js:

  • accounts:list
  • categories:list
  • tags:list
  • tags:create
  • tags:update
  • tags:delete
  • merchants:list
  • transactions:list
  • transactions:get
  • transactions:create
  • transactions:update
  • transactions:delete
  • imports:list
  • holdings:list
  • trades:list

Layer 2: raw official endpoint access

For any official endpoint not yet wrapped by the high-level CLI, use:

  • bash skills/sure-api/scripts/sure_api_request.sh <METHOD> <PATH> [curl args...]

This means the skill can still operate against official endpoints such as:

  • merchant detail
  • holding detail
  • import detail / create import
  • trade create / retrieve / update / delete
  • valuation create / retrieve / update
  • chats list / create / retrieve / update / delete / send message / retry
  • other official endpoints present in references/openapi.yaml

Quick start

Smoke test

bash
bash skills/sure-api/scripts/sure_api_smoke.sh

Common wrapped commands

bash
node skills/sure-api/scripts/sure_api_cli.js accounts:list
node skills/sure-api/scripts/sure_api_cli.js categories:list --classification expense
node skills/sure-api/scripts/sure_api_cli.js tags:list
node skills/sure-api/scripts/sure_api_cli.js merchants:list
node skills/sure-api/scripts/sure_api_cli.js transactions:list --start_date 2026-03-01 --end_date 2026-03-31 --type expense
node skills/sure-api/scripts/sure_api_cli.js holdings:list --account_id <uuid>
node skills/sure-api/scripts/sure_api_cli.js trades:list --account_id <uuid> --start_date 2026-03-01 --end_date 2026-03-31

Safe write pattern

Always prefer:

  1. read current state
  2. dry-run if the wrapped command supports it
  3. send the real write only with explicit confirmation flags

Example:

bash
node skills/sure-api/scripts/sure_api_cli.js transactions:create \
  --account_id <uuid> \
  --date 2026-03-01 \
  --amount 12.34 \
  --name "午饭" \
  --nature expense \
  --dry-run

node skills/sure-api/scripts/sure_api_cli.js transactions:create \
  --account_id <uuid> \
  --date 2026-03-01 \
  --amount 12.34 \
  --name "午饭" \
  --nature expense \
  --yes

Raw endpoint examples for official API coverage

Retrieve a merchant by id

bash
bash skills/sure-api/scripts/sure_api_request.sh GET /api/v1/merchants/<merchant-id>

Retrieve a holding by id

bash
bash skills/sure-api/scripts/sure_api_request.sh GET /api/v1/holdings/<holding-id>

Retrieve an import by id

bash
bash skills/sure-api/scripts/sure_api_request.sh GET /api/v1/imports/<import-id>

Create an import from raw CSV content

bash
bash skills/sure-api/scripts/sure_api_request.sh POST /api/v1/imports \
  -H 'Content-Type: application/json' \
  -d '{
    "raw_file_content": "date,amount,name\n2026-03-01,12.34,午饭",
    "type": "TransactionImport",
    "account_id": "<account-uuid>",
    "publish": "true"
  }'

Create a trade

bash
bash skills/sure-api/scripts/sure_api_request.sh POST /api/v1/trades \
  -H 'Content-Type: application/json' \
  -d '{
    "trade": {
      "account_id": "<account-uuid>",
      "date": "2026-03-01",
      "qty": 10,
      "price": 12.5,
      "type": "buy",
      "ticker": "AAPL"
    }
  }'

Create a valuation

bash
bash skills/sure-api/scripts/sure_api_request.sh POST /api/v1/valuations \
  -H 'Content-Type: application/json' \
  -d '{
    "valuation": {
      "account_id": "<account-uuid>",
      "amount": 10000,
      "date": "2026-03-01",
      "notes": "Month-end valuation"
    }
  }'

Create a chat and send a message

bash
bash skills/sure-api/scripts/sure_api_request.sh POST /api/v1/chats \
  -H 'Content-Type: application/json' \
  -d '{"title":"Monthly review","message":"Summarize March spending"}'

bash skills/sure-api/scripts/sure_api_request.sh POST /api/v1/chats/<chat-id>/messages \
  -H 'Content-Type: application/json' \
  -d '{"content":"Show biggest merchant changes"}'

Pagination and filtering

Most list endpoints return a resource list plus a pagination block. Typical filters in the official API include:

  • page
  • per_page
  • account/category/merchant/tag ids
  • date or date ranges
  • type/status filters on some resources

For exact parameters, read references/openapi.yaml.

Error handling

  • 401 / 403 → auth missing, invalid, or insufficient feature scope
  • 404 → wrong path or object not found
  • 422 → validation error; inspect request body against references/openapi.yaml
  • 429 / 5xx → retry with backoff up to 3 times if the action is idempotent

Self-update this skill

This skill is designed to be self-maintainable.

Fast refresh from official API

bash
bash skills/sure-api/scripts/sure_openapi_update.sh

What it does:

  1. downloads the latest official OpenAPI from the Sure GitHub repo
  2. overwrites references/openapi.yaml
  3. regenerates references/api_endpoints_summary.md

After updating OpenAPI

Do this in order:

  1. re-read references/api_endpoints_summary.md
  2. compare new endpoints/params with current sure_api_cli.js
  3. extend high-level wrappers only for endpoints that are common, stable, and worth scripting
  4. keep less-common endpoints accessible via sure_api_request.sh
  5. run acceptance checks

When to read references

Read references/openapi.yaml when you need:

  • exact request bodies
  • exact response shapes
  • enum values
  • parameter names
  • authoritative behavior after upstream changes

Read references/api_endpoints_summary.md when you need:

  • a fast endpoint inventory
  • a quick check of what the upstream API currently exposes

ClawHub publish readiness

Before publishing or bumping a version, run:

bash
bash skills/sure-api/scripts/sure_api_acceptance.sh

Optional live API validation:

bash
bash skills/sure-api/scripts/sure_api_acceptance.sh --with-live-api

The acceptance script checks:

  • required files exist
  • SKILL.md frontmatter is valid enough for publishing
  • official URLs are present
  • self-update instructions are present
  • endpoint summary matches the checked-in OpenAPI
  • optional live smoke test passes

ClawHub publish commands

First confirm login:

bash
clawhub whoami

Initial publish example:

bash
cd /root/.openclaw/workspace
clawhub publish ./skills/sure-api \
  --slug sure-api \
  --name "Sure API" \
  --version 1.0.0 \
  --changelog "Initial public release." \
  --tags latest

Update publish example:

bash
cd /root/.openclaw/workspace
clawhub publish ./skills/sure-api \
  --slug sure-api \
  --name "Sure API" \
  --version 1.0.1 \
  --changelog "Refresh official OpenAPI, tighten docs, and improve publish readiness." \
  --tags latest

Notes for future maintenance

  • Keep SKILL.md concise; put exact API detail in references/.
  • Do not add README / CHANGELOG / extra docs just for packaging.
  • Only wrap high-value flows in sure_api_cli.js; leave long-tail official endpoints to the raw request wrapper.
  • If upstream removes or renames endpoints, update examples and acceptance checks in the same commit.

相关 Skills

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描139.0k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描139.0k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描15.8k

相关 MCP 服务

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
86.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
52.8k

评论