Stories
A story is user-submitted content about a bank. Users generally discuss their experiences with banks, whether positive or negative.
The story model
The story model contains user-generated content about banks, as well as information about the bank and country in which the bank is located.
Properties
- Name
id- Type
- string
- Description
The story's auto-generated unique identifier.
- Name
text- Type
- string
- Constraints
- min1•max280
- Description
The story content submitted by the user.
- Name
tags- Type
- array
- Description
An array of tags associated with this story for categorization and filtering. Possible tags are
CRYPTO_FRIENDLY,FEES_PRICING,DIGITAL_EXPERIENCE,ACCOUNT_FEATURES,CUSTOMER_SERVICE,SECURITY_TRUST,BRANCH_ATM_ACCESS,INTERNATIONAL_BANKING,BUSINESS_BANKING,PROCESSING_SPEED,TRANSPARENCY,INNOVATION,INVESTMENT_SERVICESandLENDING.- Name
bankId- Type
- string
- Description
The ID of the bank this story is about.
- Name
createdAt- Type
- string
- Description
The date and time the story was created in Moon Banking.
- Name
updatedAt- Type
- string
- Description
The date and time the story was last updated in Moon Banking.
- Name
thumbsUpCount- Type
- integer
- Constraints
- min0
- Description
The number of thumbs up votes for this story.
- Name
bank- Type
- object
- Description
The bank about which the story was written.
- Name
country- Type
- object
- Description
The country of the bank about which the story was written.
GET /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.
Optional parameters
- Name
limit- Type
- integer
- Constraints
- min1•max100
- Default
- default10
- Description
Number of items to return.
- Name
starting_after- Type
- string
- Description
Cursor for forward pagination. Use the id of the last item from the previous page to get the next page.
- Name
ending_before- Type
- string
- Description
Cursor for backward pagination. Use the id of the first item from the current page to get the previous page.
- Name
search- Type
- string
- Description
Search stories by text content.
- Name
sortBy- Type
- enum
- Default
- default"createdAt"
- Description
Field to sort by.
Possible values:
createdAt,thumbsUpCount- Name
sortOrder- Type
- enum
- Default
- default"asc"
- Description
Sort order. Either ascending or descending.
Possible values:
asc,desc- Name
include- Type
- string
- Description
An optional comma-separated list of fields to include in the response. Possible values:
bank,country- Name
countryCode- Type
- string
- Constraints
- min2•max2
- Description
The country's ISO 3166-1 code (2 characters).
- Name
bankId- Type
- string
- Description
The bank's auto-generated unique identifier.
- Name
tags- Type
- string
- Description
An optional comma-separated list of fields to include in the response. Possible values:
CRYPTO_FRIENDLY,CUSTOMER_SERVICE,FEES_PRICING,DIGITAL_EXPERIENCE,SECURITY_TRUST,ACCOUNT_FEATURES,BRANCH_ATM_ACCESS,INTERNATIONAL_BANKING,BUSINESS_BANKING,PROCESSING_SPEED,TRANSPARENCY,INNOVATION,INVESTMENT_SERVICES,LENDING
Request
curl -G https://api.moonbanking.com/v1/stories \
-H "Authorization: Bearer {your_api_key}" \
-H "Moon-Banking-Version: 2025-07-11" \
--data-urlencode "limit=20" \
--data-urlencode "starting_after=8HsY5nBc7jAqM4u" \
--data-urlencode "ending_before=6jkxE4N8gHXgDPK" \
--data-urlencode "search=customer%20service" \
--data-urlencode "sortBy=createdAt" \
--data-urlencode "sortOrder=asc" \
--data-urlencode "include=bank%2Ccountry" \
--data-urlencode "countryCode=US" \
--data-urlencode "bankId=6jkxE4N8gHXgDPK" \
--data-urlencode "tags=CRYPTO_FRIENDLY%2CCUSTOMER_SERVICE%2CFEES_PRICING%2CDIGITAL_EXPERIENCE%2CSECURITY_TRUST%2CACCOUNT_FEATURES%2CBRANCH_ATM_ACCESS%2CINTERNATIONAL_BANKING%2CBUSINESS_BANKING%2CPROCESSING_SPEED%2CTRANSPARENCY%2CINNOVATION%2CINVESTMENT_SERVICES%2CLENDING"
Response
{
"success": true,
"data": [
{
"id": "8HsY5nBc7jAqM4u",
"text": "I had a great experience with this bank's customer service.",
"tags": [
"CUSTOMER_SERVICE"
],
"bankId": "6jkxE4N8gHXgDPK",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z",
"thumbsUpCount": 10,
"bank": {
"id": "6jkxE4N8gHXgDPK",
"name": "Fidelity",
"url": "https://www.fidelity.com",
"countryId": "454hfjsjuusbf"
},
"country": {
"id": "454hfjsjuusbf",
"name": "United States",
"code": "US",
"emoji": "🇺🇸"
}
},
...
],
"pagination": {
"hasMore": true,
"limit": 20,
"nextCursor": "8HsY5nBc7jAqM4u",
"previousCursor": "6jkxE4N8gHXgDPK",
"meta": {
"total": 42
}
},
"message": "Sample message",
"timestamp": "2026-02-12T21:20:01.643Z",
"version": "2025-07-11"
}
GET /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.
Required parameters
- Name
id- Type
- string
- Description
The story's auto-generated unique identifier.
Optional parameters
- Name
include- Type
- string
- Description
An optional comma-separated list of fields to include in the response. Possible values:
bank,country
Request
curl -G https://api.moonbanking.com/v1/stories/8HsY5nBc7jAqM4u \
-H "Authorization: Bearer {your_api_key}" \
-H "Moon-Banking-Version: 2025-07-11" \
--data-urlencode "include=bank%2Ccountry"
Response
{
"success": true,
"data": {
"id": "8HsY5nBc7jAqM4u",
"text": "I had a great experience with this bank's customer service.",
"tags": [
"CUSTOMER_SERVICE"
],
"bankId": "6jkxE4N8gHXgDPK",
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z",
"thumbsUpCount": 10,
"bank": {
"id": "6jkxE4N8gHXgDPK",
"name": "Fidelity",
"url": "https://www.fidelity.com",
"countryId": "454hfjsjuusbf"
},
"country": {
"id": "454hfjsjuusbf",
"name": "United States",
"code": "US",
"emoji": "🇺🇸"
}
},
"message": "Sample message",
"timestamp": "2026-02-12T21:20:01.643Z",
"version": "2025-07-11"
}