Moon Banking

v1.1.0

Full access to Moon Banking API endpoints for data about every bank on Earth, including stories, votes, scores, search, country overviews, world overview, crypto-friendliness, and more. Requires MOON_BANKING_API_KEY env var.

1· 1.8k·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (bank data API) align with requested artifacts: a single MOON_BANKING_API_KEY and curl+jq to call https://api.moonbanking.com/v1. Nothing else (no unrelated cloud creds or system paths) is requested.
Instruction Scope
SKILL.md contains explicit curl patterns and endpoint docs; it only instructs the agent to send HTTP requests to the documented API with the Authorization header. It does not direct the agent to read local files, other env vars, or exfiltrate data to unrelated endpoints.
Install Mechanism
No install spec and no code files — instruction-only skill. This is the lowest-risk install model (nothing is written to disk by the skill itself).
Credentials
Only one required env var (MOON_BANKING_API_KEY) is declared and used, which is proportional. Minor metadata inconsistency: registry summary lists 'Primary credential: none' while SKILL.md declares MOON_BANKING_API_KEY as the primary credential; this should be corrected but does not indicate malicious behavior.
Persistence & Privilege
Skill does not request always:true, does not ask to modify other skills or system settings, and has no required config paths. Default autonomous invocation is allowed (platform default) but the skill's scope is limited to calling the API.
Assessment
This skill appears to simply call the Moon Banking API and needs a single API key (MOON_BANKING_API_KEY). Before installing: verify that the homepage and owner are legitimate (ensure moonbanking.com and the docs link are correct), confirm you will not reuse a high-privilege key (use a key with minimal scope or a dedicated key), and review the Moon Banking API terms/privacy. Note the small metadata mismatch (registry says no primary credential while SKILL.md requires one) — ask the publisher to correct it. Because the skill can be invoked by the agent, avoid supplying keys that grant write/delete access or broad account privileges; prefer a read-only or scoped API key and monitor API usage after enabling the skill.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

💰 Clawdis
OSLinux · macOS · Windows
Binscurl, jq
EnvMOON_BANKING_API_KEY
bankingvk97cpgwgkymww7rr6w6z0hwxf180zgg7financevk97cpgwgkymww7rr6w6z0hwxf180zgg7latestvk97cpgwgkymww7rr6w6z0hwxf180zgg7
1.8kdownloads
1stars
2versions
Updated 1mo ago
v1.1.0
MIT-0
Linux, macOS, Windows

Moon Banking API

Query the Moon Banking API at https://api.moonbanking.com/v1 for data about every bank on Earth, as well as aggregated bank data at the world and country levels. Includes data about banks, countries, stories, votes, search, world overview, and more.

Setup & Authentication

  • Set the environment variable:
    MOON_BANKING_API_KEY=your_api_key_here
    (A Moon Banking Pro plan is required to get your API key. Once you have a plan, you can create an API key in your Moon Banking dashboard.)

  • Every request must include the header:
    Authorization: Bearer $MOON_BANKING_API_KEY

  • Use exec with curl -s (silent mode) and pipe to jq for clean, readable JSON output.

  • If jq is not installed, remove | jq . — the agent can still parse raw JSON.

Standard curl pattern

curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/ENDPOINT?param=value&another=val" | jq .

All Endpoints

1. /banks

This endpoint allows you to retrieve a paginated list of all banks. By default, a maximum of ten banks are shown per page. You can search banks by name, filter by country, sort them by various fields, and include related data like scores and country information.
Common params

  • limit (optional) - (1–100, default 10)
  • starting_after (optional)
  • ending_before (optional)
  • sortBy (optional) - (name, rank, countryRank, storiesCount, countryId, overall_score, overall_total, overall_up, overall_down, cryptoFriendly_score, cryptoFriendly_total, cryptoFriendly_up, cryptoFriendly_down, customerService_score, customerService_total, customerService_up, customerService_down, feesPricing_score, feesPricing_total, feesPricing_up, feesPricing_down, digitalExperience_score, digitalExperience_total, digitalExperience_up, digitalExperience_down, securityTrust_score, securityTrust_total, securityTrust_up, securityTrust_down, accountFeatures_score, accountFeatures_total, accountFeatures_up, accountFeatures_down, branchAtmAccess_score, branchAtmAccess_total, branchAtmAccess_up, branchAtmAccess_down, internationalBanking_score, internationalBanking_total, internationalBanking_up, internationalBanking_down, businessBanking_score, businessBanking_total, businessBanking_up, businessBanking_down, processingSpeed_score, processingSpeed_total, processingSpeed_up, processingSpeed_down, transparency_score, transparency_total, transparency_up, transparency_down, innovation_score, innovation_total, innovation_up, innovation_down, investmentServices_score, investmentServices_total, investmentServices_up, investmentServices_down, lending_score, lending_total, lending_up, lending_down)
  • sortOrder (optional) - (asc, desc)
    Query params
  • search (optional)
  • include (optional) - (scores, country, meta)
  • countryId (optional)
  • countryCode (optional)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/banks?limit=10&search=ethical&sortBy=overall_score&sortOrder=desc&include=scores,country&countryCode=US" | jq .  

/banks/by-hostname

This endpoint allows you to retrieve banks by hostname. It will return up to one bank per country that matches the provided hostname. The hostname is normalized (www. prefix removed if present) and matched against both the primary hostname and alternative hostnames.
Query params

  • hostname (required)
  • include (optional) - (scores, country)
  • pageTitle (optional)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/banks/by-hostname?hostname=fidelity.com&include=scores,country" | jq .  

/banks/{id}

This endpoint allows you to retrieve a specific bank by providing the bank ID. You can include related data like scores and country information in the response.
Query params

  • include (optional) - (scores, country)
    Path params
  • id (required)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/banks/6jkxE4N8gHXgDPK?include=scores,country" | jq .  

2. /bank-votes

This endpoint allows you to retrieve a paginated list of bank votes. You can filter by bank ID, category, country, vote type (upvote or downvote), and other parameters.
Common params

  • limit (optional) - (1–100, default 10)
  • starting_after (optional)
  • ending_before (optional)
  • sortBy (optional) - (createdAt)
  • sortOrder (optional) - (asc, desc)
    Query params
  • bankId (optional)
  • categories (optional)
  • isUp (optional)
  • countryCode (optional)
  • include (optional) - (bank, country)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/bank-votes?limit=10&bankId=bank_abc&isUp=true&countryCode=US&sortBy=createdAt&sortOrder=desc&include=scores,country" | jq .  

3. /countries

This endpoint allows you to retrieve a paginated list of all countries. By default, a maximum of ten countries are shown per page. You can search countries by name or 2-letter code, sort them by various fields, and include related data like scores.
Common params

  • limit (optional) - (1–100, default 10)
  • starting_after (optional)
  • ending_before (optional)
  • sortBy (optional) - (name, code, rank, banksCount, storiesCount, overall_score, overall_total, overall_up, overall_down, cryptoFriendly_score, cryptoFriendly_total, cryptoFriendly_up, cryptoFriendly_down, customerService_score, customerService_total, customerService_up, customerService_down, feesPricing_score, feesPricing_total, feesPricing_up, feesPricing_down, digitalExperience_score, digitalExperience_total, digitalExperience_up, digitalExperience_down, securityTrust_score, securityTrust_total, securityTrust_up, securityTrust_down, accountFeatures_score, accountFeatures_total, accountFeatures_up, accountFeatures_down, branchAtmAccess_score, branchAtmAccess_total, branchAtmAccess_up, branchAtmAccess_down, internationalBanking_score, internationalBanking_total, internationalBanking_up, internationalBanking_down, businessBanking_score, businessBanking_total, businessBanking_up, businessBanking_down, processingSpeed_score, processingSpeed_total, processingSpeed_up, processingSpeed_down, transparency_score, transparency_total, transparency_up, transparency_down, innovation_score, innovation_total, innovation_up, innovation_down, investmentServices_score, investmentServices_total, investmentServices_up, investmentServices_down, lending_score, lending_total, lending_up, lending_down)
  • sortOrder (optional) - (asc, desc)
    Query params
  • search (optional)
  • include (optional) - (scores)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/countries?limit=10&search=swiss&sortBy=overall_score&sortOrder=desc&include=scores" | jq .  

/countries/{code}

This endpoint allows you to retrieve a specific country by providing the 2-letter ISO country code. You can include related data like scores in the response.
Query params

  • include (optional) - (scores)
    Path params
  • code (required)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/countries/US?include=scores" | jq .  

4. /stories

This endpoint allows you to retrieve a paginated list of all stories. By default, a maximum of ten stories are shown per page. You can search stories by text content, filter by bank ID, sort them by various fields, and include related data like bank and country information.
Common params

  • limit (optional) - (1–100, default 10)
  • starting_after (optional)
  • ending_before (optional)
  • sortBy (optional) - (createdAt, thumbsUpCount)
  • sortOrder (optional) - (asc, desc)
    Query params
  • search (optional)
  • include (optional) - (bank, country)
  • countryCode (optional)
  • bankId (optional)
  • tags (optional)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/stories?limit=10&search=swiss&sortBy=createdAt&sortOrder=desc&include=bank,country&countryCode=US&bankId=bank_abc" | jq .  

/stories/{id}

This endpoint allows you to retrieve a specific story by providing the story ID. You can include related data like bank and country information in the response.
Query params

  • include (optional) - (bank, country)
    Path params
  • id (required)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/stories/8HsY5nBc7jAqM4u?include=bank,country" | jq .  

5. /world

This endpoint allows you to retrieve global overview data that aggregates banks votes, stories and other data across all banks in all countries. You can include related data like scores in the response.
Query params

  • include (optional) - (scores)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/world?include=scores" | jq .  

6. /search

Search across banks, countries, and stories. You can specify which entities to search using the include parameter. If no include value is provided, all entities will be searched.
Common params

  • limit (optional) - (1–50, default 10)
    Query params
  • q (required)
  • include (optional) - (banks, countries, stories)
    Example
curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
     "https://api.moonbanking.com/v1/search?q=crypto+friendly+banks&include=banks,countries,stories&limit=15" | jq .  

Best Practices & Tips

  • Use jq filters to extract useful fields, e.g.:

    | jq '.data[] | {name, overall_score, rank, country?.name}'
    
  • Error handling:

    • 401/403 → check or set MOON_BANKING_API_KEY
    • 404 → invalid ID or code
    • 429 → rate limit (wait and retry)
  • Pagination: Use starting_after / ending_before from previous responses.

  • Always summarize results helpfully (top banks, country rankings, popular stories, etc.) instead of dumping raw JSON.

  • Chain multiple exec calls for complex questions.

Use this skill whenever questions or discussions involve bank information of any kind, including, but not limited to, rankings, reviews, country comparisons, customer experiences, or global banking insights.

Comments

Loading comments...