Goodlord Application API

An application contains rental information and all of the applicants/guarantors which are applying for a tenancy.

Operations 4

POST /referencing/application Create a new application #
GET /referencing/application/{applicationId} Get Application #
PATCH /referencing/application/{applicationId} Patch Application #
DELETE /referencing/application/{applicationId} Delete Application #

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/goodlord-application-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

goodlord-application-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Goodlord Application API
  version: 1.0.0
  contact:
    email: devs@vouch.co.uk
    name: Goodlord
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: http://swagger.io/terms/
  description: 'Operations tagged Application across 2 of this provider''s published API definitions: goodlord-referencing-api-openapi.json, goodlord-referencing-api-sandbox-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.goodoverlord.com
  description: Live Server
- url: https://api-sandbox.goodlord.co
  description: Sandbox Server
security:
- OAuth2: []
tags:
- name: Application
  description: An application contains rental information and all of the applicants/guarantors which are applying for a tenancy.
  externalDocs:
    description: What's an Application?
    url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api#applications
paths:
  /referencing/application:
    parameters:
    - $ref: '#/components/parameters/CompanyId'
    post:
      externalDocs:
        description: Find out more about Applications
        url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api#applications
      tags:
      - Application
      summary: Create a new application
      description: Create a new rental application to reference tenants and guarantors
      operationId: createApplication
      requestBody:
        description: Application object that needs to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
            examples:
              Example 1 - Create a 12 month tenancy:
                value:
                  tenancy:
                    moveInDate: '2024-10-01'
                    term: 12
                    monthlyCost: 1000
                    address:
                      line1: 22 Street
                      city: Sheffield
                      postcode: S6 3GJ
                      country: Wales
                  agency:
                    companyName: John Smith Lettings
                    agentName: John Smith
                    agentMobile: 07293838394
                    agentEmail: john.smith@example.com
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
              examples:
                Example 1 - Create a 12 month tenancy:
                  value:
                    id: 644e4a2b-e2cc-4269-9022-91eaada1592e
                    subjects: []
                    createdAt: '2025-07-22T14:35:12.1893525+00:00'
                    tenancy:
                      moveInDate: '2024-10-01'
                      monthlyCost: 1000
                      term: 12
                      address:
                        id: 01dad872-3428-4dc1-b911-3a0da3bbc1fc
                        line1: 22 Street
                        line2: null
                        city: Sheffield
                        postcode: S6 3GJ
                        country: Wales
                    agency:
                      companyName: John Smith Lettings
                      agentName: John Smith
                      agentMobile: 07293838394
                      agentEmail: john.smith@example.com
                    status: Active
                    documents: []
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMessageResponse'
    servers:
    - url: https://api.goodoverlord.com
      description: Live Server
  /referencing/application/{applicationId}:
    parameters:
    - name: applicationId
      in: path
      description: The applicationId of the application you wish to retrieve
      required: true
      schema:
        type: string
    - $ref: '#/components/parameters/CompanyId'
    get:
      externalDocs:
        description: Find out more about Applications
        url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api#applications
      tags:
      - Application
      summary: Get Application
      description: Retrieve a copy of an application which you have already created
      operationId: getApplication
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Could not find requested application {applicationId}
                xml:
                  name: '##default'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMessageResponse'
    patch:
      externalDocs:
        description: Find out more about Applications
        url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api#application
      tags:
      - Application
      summary: Patch Application
      description: Patch an application which you have previously created
      operationId: patchApplication
      requestBody:
        description: Properties which need to be patched on the application
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchApplicationRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Could not find requested application {applicationId}
                xml:
                  name: '##default'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMessageResponse'
    delete:
      externalDocs:
        description: Find out more about Applications
        url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api#application
      tags:
      - Application
      summary: Delete Application
      description: Delete an application which you have already created
      operationId: deleteApplication
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Could not find requested application {applicationId}
                xml:
                  name: '##default'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiMessageResponse'
    servers:
    - url: https://api.goodoverlord.com
      description: Live Server
components:
  schemas:
    Application:
      title: Application
      type: object
      description: An application contains rental information and all of the applicants/guarantors which are applying for a tenancy.
      properties:
        id:
          type: string
        tenancy:
          type: object
          properties:
            moveInDate:
              type: string
              example: '2024-10-01'
            term:
              type: number
              example: 12
            monthlyCost:
              type: number
              example: 1000
            address:
              type: object
              properties:
                line1:
                  type: string
                  example: 22 Street
                city:
                  type: string
                  example: Sheffield
                postcode:
                  type: string
                  example: S1 123
                country:
                  type: string
                  example: England
        subjects:
          type: array
          items:
            $ref: '#/components/schemas/Subject'
        agency:
          type: object
          properties:
            companyName:
              type: string
              example: John Smith Lettings
            agentName:
              type: string
              example: John Smith
            agentMobile:
              type: string
              example: 07912345678
            agentEmail:
              type: string
              example: john.smith@example.com
        createdAt:
          type: string
      required: []
    ApiMessageResponse:
      type: object
      properties:
        message:
          type: string
          example: Something happened that I need to alert you about
      xml:
        name: '##default'
    PatchApplicationRequest:
      title: Patch Application Request
      type: object
      properties:
        tenancy:
          type: object
          description: One of moveInDate, term or monthlyCost are required
          properties:
            moveInDate:
              type: string
              description: Move in date in YYYY-MM-DD format. This must be a date in the future, but no longer than 14 months in the future.
              example: '2024-10-01'
            term:
              type: number
              example: 12
              description: Term of rental tenancy in months. Maximum 120 months (10 years)
            monthlyCost:
              type: number
              example: 1000
              description: Monthly cost in GBP
            address:
              type: object
              description: Address of application
              required:
              - line1
              - country
              - postcode
              - city
              properties:
                line1:
                  type: string
                line2:
                  type: string
                city:
                  type: string
                postcode:
                  type: string
                country:
                  type: string
          required: []
      required:
      - tenancy
    Subject:
      title: Subject
      type: object
      description: A subject is a person who is part of an application.
      properties:
        externalId:
          type: string
          example: '1234'
        rentalDetails:
          type: object
          properties:
            priceShare:
              type: number
              description: The portion of the monthly rent attributed to this subject, in GBP.
              example: 1000
            affordabilityRatio:
              type: number
              description: 'Minimum income-to-rent multiplier the subject''s income must satisfy. The stored value reflects company-config precedence: if your company has a configured affordability ratio (`TenantAffordabilityRatio` for applicants, `GuarantorAffordabilityRatio` for guarantors), the response shows that value rather than any value originally supplied at creation/patch time.'
              example: 2.5
        context:
          type: object
          properties:
            name:
              type: string
              example: John Smith
            firstName:
              type: string
              example: John
            lastName:
              type: string
              example: Smith
            email:
              type: string
              example: john@smith.com
            mobile:
              type: string
              example: 07912345678
            redirectUrlOnJourneyComplete:
              type: string
              example: https://www.myapp.com/complete
            tenancyRenewal:
              type: boolean
              example: false
            product:
              type: string
              example: Pro
            addresses:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    example: '1234'
                  addressType:
                    type: string
                    example: current
                  bedroomIdentifier:
                    type: string
                    example: Room A
                  name:
                    type: string
                    example: '22'
                  startDate:
                    type: string
                    example: '2024-10-01'
                  status:
                    type: string
                    example: Renting
                  line1:
                    type: string
                    example: Street
                  normalizedLine1:
                    type: string
                    example: 22 Street
                  line2:
                    type: string
                    example: Crookesmoore
                  city:
                    type: string
                    example: Sheffield
                  county: {}
                  postcode:
                    type: string
                    example: S1 123
                  country:
                    type: string
                    example: England
                  countryCodeAlpha2:
                    type: string
                    example: GB
                  referee:
                    type: object
                    properties:
                      id:
                        type: string
                        example: '1234'
                      name:
                        type: string
                        example: Jane Smith
                      email:
                        type: string
                        example: jane@smith.com
                      mobile:
                        type: string
                        example: 07912345678
                      createdAt:
                        type: string
                        example: '2024-10-01'
            incomes:
              type: array
              items:
                type: object
                properties:
                  company:
                    type: string
                    example: Tesco
                  position:
                    type: string
                    example: Manager
                  contractType:
                    type: string
                    example: Permanent
                  contractSchedule:
                    type: string
                    example: Full Time
                  guaranteedBonus: {}
                  startDate:
                    type: string
                    example: '2024-10-01'
                  endDate: {}
                  address:
                    type: object
                    properties:
                      id: {}
                      addressType:
                        type: string
                      name: {}
                      startDate: {}
                      status: {}
                      line1:
                        type: string
                      normalizedLine1:
                        type: string
                      line2:
                        type: string
                      line3: {}
                      city:
                        type: string
                      county: {}
                      postcode:
                        type: string
                      country:
                        type: string
                      countryCodeAlpha2: {}
                  referee:
                    type: object
                    properties:
                      id:
                        type: string
                        example: '1234'
                      name:
                        type: string
                        example: Jane Smith
                      email:
                        type: string
                        example: jane@smith.com
                      mobile:
                        type: string
                        example: 07912345678
                      createdAt:
                        type: string
                        example: '2024-10-01'
                      isNonProfessionalEmail:
                        type: boolean
                        nullable: true
                        description: True when the referee's email domain has been flagged as a free or non-professional email provider (e.g. gmail.com, yahoo.com). Null when the value cannot be determined or is not evaluated for this referee type.
                        example: true
                  type:
                    type: string
                  evidenceType:
                    type: string
                    example: Open Banking
                  income:
                    type: object
                    properties:
                      value:
                        type: number
                      currency:
                        type: string
                      frequency:
                        type: string
                  id:
                    type: string
            incomeSummary:
              type: object
              properties:
                totalIncome:
                  type: number
                  example: 2000
                totalVerifiedIncome:
                  type: number
                  example: 1000
                maximumAffordabilityPercentage:
                  type: number
                  example: 123
                openBanking:
                  type: object
                  properties:
                    provider:
                      type: string
                      example: tink
                    status:
                      type: string
                      example: Connected
                    outcome:
                      type: object
                      properties:
                        estimatedAnnualNetIncome:
                          type: number
                          example: 1000
                        estimatedAnnualGrossIncome:
                          type: number
                          example: 1500
                    optOutReason:
                      type: object
                      properties:
                        category:
                          type: string
                          example: bankNotListed
                          enum:
                          - bankNotListed
                          - connectionFailed
                          - privacyConcerns
                          - incomeAccuracy
                          - somethingElse
                          - userOptedOut
                        additionalInformation:
                          type: string
                          example: Additional information here.
            credit:
              type: object
              properties:
                hasAdverseCredit:
                  type: boolean
                  example: false
                adverseCreditDeclared:
                  type: boolean
                  example: false
            documents:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    example: '1234'
                  fileName:
                    type: string
                    example: file.pdf
                  thumbnail:
                    type: string
                    example: file.png
                  documentType:
                    type: string
                    example: Proof of Address
            communicationPreferences:
              type: object
              properties:
                sendInitialTenantEmail:
                  type: boolean
                  example: false
                  description: Whether to send the initial tenant email. This is used to notify the tenant that they have been added to a referencing application. You may wish to disable this if you wish to send your own emails rather than relying on Goodlord to send them. Please note that this email does include a link to the referencing bot journey that an applicant is required to fill out to submit their application.
                disableRentProtectionComms:
                  type: boolean
                  example: true
                  description: Whether to show Rent Protection Insurance (RPI) copy & coverage in the subject referencing PDF report
                disableTCLIComms:
                  type: boolean
                  example: true
                  description: Whether to show Tenant Contents and Liability Insurance (TCLI) banner in subject referencing PDF report
                disableTenancyServicesComms:
                  type: boolean
                  example: true
                  description: Whether to show tenancy services banner in subject referencing PDF report
            guarantorCollection:
              type: object
              nullable: true
              description: Reflects the guarantor collection configuration on this subject. Only populated when present on the stored subject - applicants with a guarantor requirement will have this populated; applicants without and all guarantors will not. The `affordabilityRatio` shown here reflects the resolved value after company-config precedence is applied.
              properties:
                required:
                  type: boolean
                  description: Whether a guarantor is required for this applicant.
                  example: true
                product:
                  type: string
                  description: The referencing product the guarantor will go through.
                  enum:
                  - Pro
                  - Essential
                  - Priority
                  - Corporate
                  example: Pro
                affordabilityRatio:
                  type: number
                  minimum: 1
                  description: Minimum income-to-rent multiplier the guarantor's income must satisfy. Reflects company-config precedence (see request schema for details).
                  example: 3.0
            identity:
              type: object
              nullable: true
              properties:
                nationality:
                  type: string
                  example: UK
                  description: The tenant's nationality
                nationalInsuranceNumber:
                  type: string
                  example: AB123456C
                  description: The tenant's National Insurance Number
                r2rShareCode:
                  type: string
                  example: A12 B3D EFG
                  description: The tenant's Right to Rent Share Code
                idvt:
                  type: object
                  nullable: true
                  properties:
                    idCheckStatus:
                      type: string
                      enum:
                      - Pending
                      - Pass
                      - Fail
                      - Refer
                    r2rCheckStatus:
                      type: string
                      enum:
                      - NotPerformed
                      - Pending
                      - Pass
                      - Fail
                      - Refer
                pepsSanctions:
                  type: object
                  nullable: true
                  properties:
                    pepsStatus:
                      type: string
                      enum:
                      - NotFound
                      - Match
                      - ActionRequired
                    sanctionsStatus:
                      type: string
                      enum:
                      - NotFound
                      - Match
                      - ActionRequired
        outcome:
          type: object
          properties:
            status:
              type: string
              example: Accepted
            comments:
              type: string
              example: This application has been accepted
            rpi:
              type: object
              properties:
                eligibility:
                  type: string
                  example: eligible
                comments:
                  type: string
                  example: This application is eligible for RPI
            sections:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: Income
                  status:
                    type: string
                    example: Accepted
        id:
          type: string
          example: '1234'
        type:
          type: string
          enum:
          - applicant
          - guarantor
          example: applicant
        attachedSubjects:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
        milestones:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                example: FinalOutcome
              event:
                type: string
                example: subject.accepted
              createdAt:
                type: string
                example: '2024-10-01'
              updatedAt:
                type: string
                example: '2024-10-01'
        recommendations:
          type: array
          items: {}
      required: []
    CreateApplicationRequest:
      title: Create Application Request
      type: object
      properties:
        tenancy:
          type: object
          properties:
            moveInDate:
              type: string
              description: Move in date in YYYY-MM-DD format. This must be a date in the future, but no longer than 14 months in the future.
              example: '2024-10-01'
            term:
              type: number
              example: 12
              description: Term of rental tenancy in months. Maximum 120 months (10 years)
            monthlyCost:
              type: number
              example: 1000
              description: Monthly cost in GBP
            address:
              type: object
              properties:
                line1:
                  example: 22 Street
                  type: string
                city:
                  example: Sheffield
                  type: string
                postcode:
                  example: S1 123
                  type: string
                country:
                  example: England
                  description: 'Must be one of: ''England'' | ''Scotland'' | ''Wales''. Tenancies created within England are subject to right to rent checks and sharecode collection'
                  type: string
              required:
              - line1
              - city
              - postcode
              - country
          required:
          - moveInDate
          - term
          - monthlyCost
          - address
        agency:
          type: object
          properties:
            companyName:
              type: string
              description: The name of your lettings agency. This is used by our referencing team to identify your agency
              example: John Smith Lettings
            agentName:
              type: string
              description: The name of your estate agent who is assigned to this application
              example: John Smith
            agentMobile:
              type: string
              description: The mobile number of your estate agent who is assigned to this application. We require this as our referencing may need to contact them to provide updates and chasers.
              example: 07293838394
            agentEmail:
              type: string
              description: The email address of your estate agent who is assigned to this application. We require this as our referencing may need to contact them to provide updates and chasers.
              example: john.smith@example.com
          required:
          - companyName
          - agentName
      required:
      - tenancy
      - agency
    APIErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              reason:
                type: string
                example: PropertyIsInvalid
              description:
                type: string
                example: Request.Property is Invalid
            required:
            - reason
            - description
      required:
      - errors
  parameters:
    CompanyId:
      name: Company-ID
      in: header
      description: A unique GUID identifying your company, issued alongside your API keys. This value may differ between production and sandbox environments. This is a mandatory header for all application and subject endpoints.
      required: true
      schema:
        type: string
        format: uuid
      example: e2baa1a0-1234-5678-9abc-def012345678
  securitySchemes:
    OAuth2:
      description: 'This API uses OAuth2 to authenticate requests. You must use your client credentials to obtain a token.

        Read [Obtain a JWT Token](./operations/getAuthToken) for more information.'
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.goodoverlord.com/auth/token
          scopes: {}
externalDocs:
  description: Understanding Goodlord's Referencing API
  url: https://portal.goodlord.co/blog/2024/8/20/getting-started-with-goodlord-referencing-api
x-refined-from:
- goodlord-referencing-api-openapi.json
- goodlord-referencing-api-sandbox-openapi.json