Hackford Relationships API
The Relationships API from Hackford — 2 operation(s) for relationships.
The Relationships API from Hackford — 2 operation(s) for relationships.
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-relationships-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 Relationships 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: Relationships
paths:
/firms/{hackford_id}/relationships:
get:
operationId: firms_relationships_retrieve
description: Return FCA appointed-representative/principal relationships for one firm.
summary: Firm relationships
parameters:
- in: path
name: hackford_id
schema:
type: string
required: true
- in: query
name: page
schema:
type: integer
description: 1-based page number.
- in: query
name: page_size
schema:
type: integer
description: Page size. Defaults to 25 and is capped at 100.
- in: query
name: relationship_type
schema:
type: string
description: '`appointed_representative`, `principal` or `both`.'
- in: query
name: status
schema:
type: string
description: '`current`, `previous` or `both`. Defaults to `current`.'
tags:
- Relationships
security:
- OAuthAccessTokenAuth: []
- PublicApiKeyAuth: []
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicRelationshipResponse'
description: ''
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
/relationships:
get:
operationId: relationships_retrieve
description: Search the public FCA appointed-representative relationship graph.
summary: Search relationships
parameters:
- in: query
name: appointed_representative_frn
schema:
type: string
description: Appointed representative FCA FRN.
- in: query
name: appointed_representative_hackford_id
schema:
type: string
description: Appointed representative firm Hackford ID.
- in: query
name: principal_frn
schema:
type: string
description: Principal FCA FRN.
- in: query
name: principal_hackford_id
schema:
type: string
description: Principal firm Hackford ID.
- in: query
name: status
schema:
type: string
description: '`current`, `previous` or `both`. Defaults to `current`.'
tags:
- Relationships
security:
- OAuthAccessTokenAuth: []
- PublicApiKeyAuth: []
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicRelationshipResponse'
description: ''
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicApiError'
description: ''
components:
schemas:
PublicRelationshipResponse:
type: object
properties:
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/PublicRelationshipRow'
required:
- count
- next
- page
- page_size
- previous
- results
FirmTypeTag:
type: object
properties:
code:
type: string
display_name:
type: string
required:
- code
- display_name
PublicApiError:
type: object
properties:
detail:
type: string
code:
type: string
export_usage:
$ref: '#/components/schemas/ExportUsage'
required:
- detail
FirmTypeTags:
type: object
properties:
technology:
type: array
items:
$ref: '#/components/schemas/FirmTypeTag'
strategy:
type: array
items:
$ref: '#/components/schemas/FirmTypeTag'
client_focus:
type: array
items:
$ref: '#/components/schemas/FirmTypeTag'
service:
type: array
items:
$ref: '#/components/schemas/FirmTypeTag'
required:
- client_focus
- service
- strategy
- technology
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
FirmType:
type: object
properties:
category:
allOf:
- $ref: '#/components/schemas/FirmTypeReference'
type:
allOf:
- $ref: '#/components/schemas/FirmTypeReference'
tags:
$ref: '#/components/schemas/FirmTypeTags'
required:
- category
- tags
- type
OwnerTypeEnum:
enum:
- individual
- organisation
type: string
description: '* `individual` - individual
* `organisation` - organisation'
PublicRelationshipRow:
type: object
properties:
relationship_id:
type: string
relationship_type:
type: string
status:
type: string
status_effective_date:
type:
- string
- 'null'
format: date
principal:
$ref: '#/components/schemas/PublicRelationshipFirm'
appointed_representative:
$ref: '#/components/schemas/PublicRelationshipFirm'
source:
type: object
additionalProperties: {}
required:
- appointed_representative
- principal
- relationship_id
- relationship_type
- source
- status
- status_effective_date
PublicRelationshipFirm:
type: object
properties:
hackford_id:
type:
- string
- 'null'
display_name:
type:
- string
- 'null'
fca_frn:
type:
- string
- 'null'
firm_type:
allOf:
- $ref: '#/components/schemas/FirmType'
required:
- display_name
- fca_frn
- firm_type
- hackford_id
FirmTypeReference:
type: object
properties:
code:
type: string
display_name:
type: string
required:
- code
- display_name
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"