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.
1---2name: moonbanking3description: 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.4---5
6# Moon Banking API
7
8Query 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.
9
10## Setup & Authentication
11
12- Set the environment variable:
13 `MOON_BANKING_API_KEY=your_api_key_here`
14 (A [Moon Banking Pro plan](https://moonbanking.com/pro) is required to get your API key. Once you have a plan, you can create an API key in your [Moon Banking dashboard](https://moonbanking.com/settings/api/manage-api-keys).)
15
16- Every request must include the header:
17 `Authorization: Bearer $MOON_BANKING_API_KEY`
18
19- Use `exec` with `curl -s` (silent mode) and pipe to `jq` for clean, readable JSON output.
20
21- If `jq` is not installed, remove `| jq .` — the agent can still parse raw JSON.
22
23### Standard curl pattern
24
25```bash
26curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
27 "https://api.moonbanking.com/v1/ENDPOINT?param=value&another=val" | jq .
28```
29
30## All Endpoints
31
32### 1. /banks
33This 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.
34**Common params**
35- `limit` (optional) - (1–100, default 10)
36- `starting_after` (optional)
37- `ending_before` (optional)
38- `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)
39- `sortOrder` (optional) - (asc, desc)
40**Query params**
41- `search` (optional)
42- `include` (optional) - (scores, country, meta)
43- `countryId` (optional)
44- `countryCode` (optional)
45**Example**
46```bash
47curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
48 "https://api.moonbanking.com/v1/banks?limit=10&search=ethical&sortBy=overall_score&sortOrder=desc&include=scores,country&countryCode=US" | jq .
49```
50
51### /banks/by-hostname
52This 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.
53**Query params**
54- `hostname` (required)
55- `include` (optional) - (scores, country)
56- `pageTitle` (optional)
57**Example**
58```bash
59curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
60 "https://api.moonbanking.com/v1/banks/by-hostname?hostname=fidelity.com&include=scores,country" | jq .
61```
62
63### /banks/{id}
64This 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.
65**Query params**
66- `include` (optional) - (scores, country)
67**Path params**
68- `id` (required)
69**Example**
70```bash
71curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
72 "https://api.moonbanking.com/v1/banks/6jkxE4N8gHXgDPK?include=scores,country" | jq .
73```
74
75### 2. /bank-votes
76This 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.
77**Common params**
78- `limit` (optional) - (1–100, default 10)
79- `starting_after` (optional)
80- `ending_before` (optional)
81- `sortBy` (optional) - (createdAt)
82- `sortOrder` (optional) - (asc, desc)
83**Query params**
84- `bankId` (optional)
85- `categories` (optional)
86- `isUp` (optional)
87- `countryCode` (optional)
88- `include` (optional) - (bank, country)
89**Example**
90```bash
91curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
92 "https://api.moonbanking.com/v1/bank-votes?limit=10&bankId=bank_abc&isUp=true&countryCode=US&sortBy=createdAt&sortOrder=desc&include=scores,country" | jq .
93```
94
95### 3. /countries
96This 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.
97**Common params**
98- `limit` (optional) - (1–100, default 10)
99- `starting_after` (optional)
100- `ending_before` (optional)
101- `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)
102- `sortOrder` (optional) - (asc, desc)
103**Query params**
104- `search` (optional)
105- `include` (optional) - (scores)
106**Example**
107```bash
108curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
109 "https://api.moonbanking.com/v1/countries?limit=10&search=swiss&sortBy=overall_score&sortOrder=desc&include=scores" | jq .
110```
111
112### /countries/{code}
113This 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.
114**Query params**
115- `include` (optional) - (scores)
116**Path params**
117- `code` (required)
118**Example**
119```bash
120curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
121 "https://api.moonbanking.com/v1/countries/US?include=scores" | jq .
122```
123
124### 4. /stories
125This 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.
126**Common params**
127- `limit` (optional) - (1–100, default 10)
128- `starting_after` (optional)
129- `ending_before` (optional)
130- `sortBy` (optional) - (createdAt, thumbsUpCount)
131- `sortOrder` (optional) - (asc, desc)
132**Query params**
133- `search` (optional)
134- `include` (optional) - (bank, country)
135- `countryCode` (optional)
136- `bankId` (optional)
137- `tags` (optional)
138**Example**
139```bash
140curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
141 "https://api.moonbanking.com/v1/stories?limit=10&search=swiss&sortBy=createdAt&sortOrder=desc&include=bank,country&countryCode=US&bankId=bank_abc" | jq .
142```
143
144### /stories/{id}
145This 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.
146**Query params**
147- `include` (optional) - (bank, country)
148**Path params**
149- `id` (required)
150**Example**
151```bash
152curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
153 "https://api.moonbanking.com/v1/stories/8HsY5nBc7jAqM4u?include=bank,country" | jq .
154```
155
156### 5. /world
157This 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.
158**Query params**
159- `include` (optional) - (scores)
160**Example**
161```bash
162curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
163 "https://api.moonbanking.com/v1/world?include=scores" | jq .
164```
165
166### 6. /search
167Search 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.
168**Common params**
169- `limit` (optional) - (1–50, default 10)
170**Query params**
171- `q` (required)
172- `include` (optional) - (banks, countries, stories)
173**Example**
174```bash
175curl -s -H "Authorization: Bearer $MOON_BANKING_API_KEY" \
176 "https://api.moonbanking.com/v1/search?q=crypto+friendly+banks&include=banks,countries,stories&limit=15" | jq .
177```
178
179## Best Practices & Tips
180
181- Use `jq` filters to extract useful fields, e.g.:
182 ```bash
183 | jq '.data[] | {name, overall_score, rank, country?.name}'
184 ```
185
186- Error handling:
187 - 401/403 → check or set `MOON_BANKING_API_KEY`
188 - 404 → invalid ID or code
189 - 429 → rate limit (wait and retry)
190
191- Pagination: Use `starting_after` / `ending_before` from previous responses.
192
193- Always summarize results helpfully (top banks, country rankings, popular stories, etc.) instead of dumping raw JSON.
194
195- Chain multiple `exec` calls for complex questions.
196
197Use 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.