Moneyhub Projects API

The projects API from Moneyhub — 2 operation(s) for projects.

Operations 5

GET /projects Retrieve all projects for a user
POST /projects Create a single project for a user
GET /projects/{projectId} Retrieve a single project
PATCH /projects/{projectId} Update a single project
DELETE /projects/{projectId} Delete a single project

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moneyhub-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moneyhub-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Documentation for the Moneyhub data API. <br/>Authentication is via bearer token. <br/>
  title: Moneyhub Data Projects API
  version: 2.0.0
  x-build-sha: 5d5191d
servers:
- url: https://api.moneyhub.co.uk/v2.0
security:
- Bearer: []
tags:
- name: projects
paths:
  /projects:
    get:
      summary: Retrieve all projects for a user
      description: Requires **projects:read** scope.
      parameters:
      - description: The total number of records to retrieve
        in: query
        name: limit
        schema:
          type: integer
          maximum: 1000
          minimum: 0
      - description: The offset at which to start retrieving records
        in: query
        name: offset
        schema:
          type: integer
          maximum: 1000000000
          minimum: 0
      responses:
        '200':
          description: Successful Projects Response
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/Project'
                    type: array
                  links:
                    $ref: '#/components/schemas/Links'
                  meta:
                    type: object
                type: object
        '401':
          description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unsuccessful Response - Forbidden - Invalid scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - projects
    post:
      summary: Create a single project for a user
      description: Requires **projects:write** scopes.
      responses:
        '200':
          description: Successful Project Response
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Project'
                  links:
                    $ref: '#/components/schemas/Links'
                  meta:
                    type: object
                type: object
        '400':
          description: Unsuccessful Response - Bad request - Missing query parameters - Missing body properties
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unsuccessful Response - Forbidden - Invalid scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectPost'
  /projects/{projectId}:
    get:
      summary: Retrieve a single project
      description: Requires **projects:read** scope.
      parameters:
      - description: The Project Id
        in: path
        name: projectId
        required: true
        x-example: 0b4e6488-6de0-420c-8f56-fee665707d57
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful Project Response
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Project'
                  links:
                    $ref: '#/components/schemas/Links'
                  meta:
                    type: object
                type: object
        '401':
          description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unsuccessful Response - Forbidden - Invalid scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unsuccessful Response - Resource Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - projects
    patch:
      summary: Update a single project
      description: Requires **projects:write** scopes.
      parameters:
      - description: The Project Id
        in: path
        name: projectId
        required: true
        x-example: 0b4e6488-6de0-420c-8f56-fee665707d57
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful Project Response
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/Project'
                  links:
                    $ref: '#/components/schemas/Links'
                  meta:
                    type: object
                type: object
        '401':
          description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unsuccessful Response - Forbidden - Invalid scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unsuccessful Response - Resource Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectPatch'
    delete:
      summary: Delete a single project
      description: This endpoint can only be used to delete projects created using the POST /projects endpoint. Projects created when connecting to a financial institution can only be deleted by removing the connection they belong to. Requires **projects:delete** scope.
      parameters:
      - description: The Project Id
        in: path
        name: projectId
        required: true
        x-example: 0b4e6488-6de0-420c-8f56-fee665707d57
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Successful Response
        '401':
          description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Unsuccessful Response - Forbidden - Invalid scopes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unsuccessful Response - Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - projects
components:
  schemas:
    Links:
      additionalProperties: false
      properties:
        next:
          description: The url to retrieve the next page of results from
          format: uri
          type: string
        prev:
          description: The url to retrieve the previous page of results from
          format: uri
          type: string
        self:
          description: The url of the current resource(s)
          format: uri
          type: string
      required:
      - self
      type: object
    Project:
      additionalProperties: false
      properties:
        id:
          description: The unique identifier for the project
        name:
          description: The name of the project
          type: string
          example: Home Improvement
        accountIds:
          description: Account IDs that are associated with the project
          type: array
          items:
            type: string
          example:
          - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type:
          description: The project type
          type: string
          enum:
          - PropertyProject
          - RentalProject
          - GenericProject
          example: PropertyProject
        dateCreated:
          description: The date the project was created
          format: date-time
          type: string
          example: '2018-07-11T03:51:08.000Z'
        archived:
          description: Flag to show if project is archived or not
          type: boolean
          example: false
      example:
        name: Home Improvement
        accountIds:
        - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type: RentalProject
        dateCreated: '2018-07-11T03:51:08.000Z'
        archived: false
      required:
      - id
      - name
      - accountIds
      - type
      type: object
    Error:
      additionalProperties: false
      properties:
        code:
          description: The error code
          type: string
        message:
          description: The error message
          type: string
        correlationId:
          description: Id that identifies the request and can be used to ask for more details related to the error
          type: string
        id:
          description: Id of the resource
          type: string
        userId:
          description: UserId of the resource
          type: string
      required:
      - code
      type: object
    ProjectPatch:
      additionalProperties: false
      properties:
        name:
          description: The name of the project
          type: string
          example: Home Improvement
        accountIds:
          description: Account IDs that are associated with the project
          type: array
          items:
            type: string
          example:
          - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type:
          description: The project type
          type: string
          enum:
          - PropertyProject
          - RentalProject
          - GenericProject
          example: PropertyProject
        archived:
          description: Flag to determine if project is archived or not
          type: boolean
          example: true
      example:
        name: Home Improvement
        accountIds:
        - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type: RentalProject
        archived: true
      type: object
    ProjectPost:
      additionalProperties: false
      properties:
        name:
          description: The name of the project
          type: string
          example: Home Improvement
        accountIds:
          description: Account IDs that are associated with the project
          type: array
          items:
            type: string
          example:
          - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type:
          description: The project type
          type: string
          enum:
          - PropertyProject
          - RentalProject
          - GenericProject
          example: RentalProject
      example:
        name: Home Improvement
        accountIds:
        - c390a94f-2309-4cdf-8d02-b0c5304d9f66
        type: RentalProject
      required:
      - name
      - type
      type: object
  securitySchemes:
    Bearer:
      type: apiKey
      name: Authorization
      in: header