Hackford Enforcement API
The Enforcement API from Hackford — 1 operation(s) for enforcement.
The Enforcement API from Hackford — 1 operation(s) for enforcement.
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/hackforddata-com:hackforddata-com-enforcement-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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:
title: Hackford Public Enforcement API
version: v1
description: Versioned public API for Hackford regulated-firm intelligence. Firm type is Hackford's public regulated-firm grouping contract.
contact:
email: support@hackforddata.com
servers:
- url: https://api.hackforddata.com/v1
description: Production
tags:
- name: Enforcement
paths:
/firms/{hackford_id}/fines:
get:
operationId: firms_fines_retrieve
description: Return disciplinary-history records labelled Fines for one canonical firm. Amounts and finality are unclassified; amount criteria are rejected.
summary: Firm disciplinary Fines records
parameters:
- in: query
name: date_from
schema:
type: string
format: date
description: Disciplinary action date on or after this date.
- in: query
name: date_to
schema:
type: string
format: date
description: Disciplinary action date on or before this date.
- in: query
name: description
schema:
type: string
description: Case-insensitive text contained in the disciplinary narrative.
- in: path
name: hackford_id
schema:
type: string
required: true
- in: query
name: page
schema:
type: integer
- in: query
name: page_size
schema:
type: integer
description: Page size, capped at 100.
tags:
- Enforcement
security:
- OAuthAccessTokenAuth: []
- PublicApiKeyAuth: []
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FirmFinesResponse'
description: ''
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
components:
schemas:
FirmPermissionFirm:
type: object
properties:
hackford_id:
type: string
display_name:
type: string
canonical_url:
type: string
identifiers:
$ref: '#/components/schemas/FirmIdentifiers'
required:
- canonical_url
- display_name
- hackford_id
- identifiers
PublicApiError:
type: object
properties:
detail:
type: string
code:
type: string
export_usage:
$ref: '#/components/schemas/ExportUsage'
required:
- detail
ExportUsage:
type: object
properties:
credits_consumed:
type: integer
credits_remaining:
type: integer
quota:
type: integer
owner_type:
$ref: '#/components/schemas/OwnerTypeEnum'
resets_at:
type: string
format: date-time
required:
- credits_consumed
- credits_remaining
- owner_type
- quota
- resets_at
OwnerTypeEnum:
enum:
- individual
- organisation
type: string
description: '* `individual` - individual
* `organisation` - organisation'
FirmIdentifiers:
type: object
properties:
fca_frn:
type:
- string
- 'null'
sec_crd:
type:
- string
- 'null'
sec_file:
type:
- string
- 'null'
cik:
type:
- string
- 'null'
companies_house:
type:
- string
- 'null'
lei:
type:
- string
- 'null'
FirmFinesResponse:
type: object
properties:
firm:
$ref: '#/components/schemas/FirmPermissionFirm'
count:
type: integer
page:
type: integer
page_size:
type: integer
next:
type:
- string
- 'null'
previous:
type:
- string
- 'null'
results:
type: array
items:
$ref: '#/components/schemas/FirmFineRow'
source:
type: object
additionalProperties: {}
required:
- count
- firm
- next
- page
- page_size
- previous
- results
- source
MonetaryAmount:
type: object
properties:
value:
type: string
format: decimal
pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
currency:
type: string
required:
- currency
- value
FirmFineRow:
type: object
properties:
type_of_action:
type: string
source_system:
type: string
fine_date:
type:
- string
- 'null'
format: date
amount:
allOf:
- $ref: '#/components/schemas/MonetaryAmount'
reason:
type:
- string
- 'null'
notice_url:
type:
- string
- 'null'
fined_party:
type:
- string
- 'null'
required:
- amount
- fine_date
- fined_party
- notice_url
- reason
- source_system
- type_of_action
securitySchemes:
OAuthAccessTokenAuth:
type: http
scheme: bearer
bearerFormat: OAuth 2.1 access token
PublicApiKeyAuth:
type: http
scheme: bearer
bearerFormat: Hackford public API key
cookieAuth:
type: apiKey
in: cookie
name: sessionid
jwtAuth:
type: http
scheme: bearer
bearerFormat: JWT
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Token-based authentication with required prefix "Token"