Consumer Financial Protection Bureau (CFPB) Submissions API
HMDA data submission management
HMDA data submission management
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cfpb:cfpb-submissions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: HMDA Platform Filing Submissions API
description: Enables financial institutions to submit Home Mortgage Disclosure Act (HMDA) data programmatically to the FFIEC HMDA Platform. Provides endpoints for filing submissions, uploading loan application register (LAR) files, checking submission status, and retrieving edit reports for regulatory compliance.
contact:
name: FFIEC HMDA Help
url: https://ffiec.cfpb.gov/
license:
name: Creative Commons CC0
url: https://creativecommons.org/publicdomain/zero/1.0/
servers:
- url: https://ffiec.cfpb.gov
description: Production server
security:
- bearerAuth: []
tags:
- name: Submissions
description: HMDA data submission management
paths:
/institutions/{lei}/filings/{period}/submissions:
post:
tags:
- Submissions
summary: Create new submission
description: Creates a new submission for the filing identified by LEI and period
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
responses:
'201':
description: Submission created
content:
application/json:
schema:
$ref: '#/components/schemas/Submission'
'400':
description: Bad request
operationId: postInstitutionsByLeiFilingsByPeriodSubmissions
x-operation-id-source: derived
/institutions/{lei}/filings/{period}/submissions/latest:
get:
tags:
- Submissions
summary: Get latest submission
description: Returns the most recent submission for the given institution and filing period
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
responses:
'200':
description: Latest submission details
content:
application/json:
schema:
$ref: '#/components/schemas/Submission'
'404':
description: No submissions found
operationId: getInstitutionsByLeiFilingsByPeriodSubmissionsLatest
x-operation-id-source: derived
/institutions/{lei}/filings/{period}/submissions/{submissionId}:
post:
tags:
- Submissions
summary: Upload HMDA data file
description: Uploads a HMDA LAR (Loan Application Register) file for the given submission
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/submissionId'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: HMDA LAR file (pipe-delimited format)
responses:
'200':
description: File uploaded successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Submission'
'400':
description: Invalid file format
'404':
description: Submission not found
operationId: postInstitutionsByLeiFilingsByPeriodSubmissionsBySubmissionId
x-operation-id-source: derived
/institutions/{lei}/filings/{period}/submissions/{submissionId}/sign:
get:
tags:
- Submissions
summary: Get submission signature receipt
description: Returns the signature receipt for a submission
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/submissionId'
responses:
'200':
description: Submission receipt
content:
application/json:
schema:
$ref: '#/components/schemas/SignatureReceipt'
'404':
description: Submission not found
operationId: getInstitutionsByLeiFilingsByPeriodSubmissionsBySubmissionIdSign
x-operation-id-source: derived
post:
tags:
- Submissions
summary: Sign submission
description: Signs and finalizes a submission after all edits have been verified
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/submissionId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
signed:
type: boolean
description: Whether the submission is being signed
responses:
'200':
description: Submission signed
content:
application/json:
schema:
$ref: '#/components/schemas/SignatureReceipt'
'400':
description: Submission cannot be signed (edits not verified)
'404':
description: Submission not found
operationId: postInstitutionsByLeiFilingsByPeriodSubmissionsBySubmissionIdSign
x-operation-id-source: derived
/institutions/{lei}/filings/{period}/submissions/{submissionId}/summary:
get:
tags:
- Submissions
summary: Get submission summary
description: Returns submission details plus transmittal sheet information
parameters:
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/submissionId'
responses:
'200':
description: Submission summary with transmittal sheet
content:
application/json:
schema:
$ref: '#/components/schemas/SubmissionSummary'
'404':
description: Submission not found
operationId: getInstitutionsByLeiFilingsByPeriodSubmissionsBySubmissionIdSummary
x-operation-id-source: derived
components:
schemas:
SignatureReceipt:
type: object
properties:
timestamp:
type: integer
format: int64
description: Unix timestamp of signing
receipt:
type: string
description: Receipt code
status:
$ref: '#/components/schemas/SubmissionStatus'
SubmissionStatus:
type: object
properties:
code:
type: integer
description: Status code
message:
type: string
description: Status message
SubmissionSummary:
type: object
properties:
submission:
$ref: '#/components/schemas/Submission'
transmittalSheet:
$ref: '#/components/schemas/TransmittalSheet'
TransmittalSheet:
type: object
properties:
institutionName:
type: string
description: Name of the institution
year:
type: integer
description: Activity year
quarter:
type: integer
description: Quarter (if quarterly filing)
lei:
type: string
description: Legal Entity Identifier
taxId:
type: string
description: Tax ID
totalLines:
type: integer
description: Total number of LAR lines
contact:
type: object
properties:
name:
type: string
phone:
type: string
email:
type: string
address:
type: object
Submission:
type: object
properties:
id:
type: string
description: Submission identifier
status:
$ref: '#/components/schemas/SubmissionStatus'
start:
type: integer
format: int64
description: Unix timestamp when submission started
end:
type: integer
format: int64
description: Unix timestamp when submission ended
parameters:
period:
name: period
in: path
required: true
description: Filing period (year, e.g. 2020)
schema:
type: string
example: '2020'
lei:
name: lei
in: path
required: true
description: Legal Entity Identifier of the financial institution
schema:
type: string
example: B90YWS6AFX2LGWOXJ1LD
submissionId:
name: submissionId
in: path
required: true
description: Submission identifier
schema:
type: string
example: B90YWS6AFX2LGWOXJ1LD-2020-1
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT