Rightmove · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Rightmove Commercial Listings API

8 actions 8 updates documentation extends openapi/rightmove-commercial-listings-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Rightmove's API. It is a proposal applied on top of the contract, not a document Rightmove publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-agentic-accessx-apievangelist-profilex-apievangelist-repox-release-versionx-release-datex-version-notex-access-gatex-access-note

Targets 6

$.info
$.components.securitySchemes.OAuth2
$.paths['/v2/property/commercial/{reference}'].put
$.paths['/v2/property/commercial/{reference}'].delete
$.paths['/v2/property/commercial/branch'].get
$.components.schemas.ProblemDetail

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Rightmove Commercial Listings API
  version: 1.0.0
extends: openapi/rightmove-commercial-listings-openapi.yml
x-apievangelist:
  generated: '2026-07-26'
  method: generated
  source: >-
    Derived from the harvested spec plus the artifacts in this repo
    (conventions/, errors/, rate-limits/, lifecycle/, authentication/,
    agentic-access/). The original document is never mutated — apply this overlay
    to get the annotated version.
actions:
- target: $.info
  description: Record the API Evangelist profile and the real release version.
  update:
    x-apievangelist-profile: https://apis.io/provider/rightmove/
    x-apievangelist-repo: https://github.com/api-evangelist/rightmove
    x-release-version: 2.1.6
    x-release-date: '2026-06-23'
    x-version-note: >-
      info.version reads 1.0.0 in the published document while the Apigee portal
      snapshot is property-feed-product-api-2.1.6 and the embedded changelog runs
      to v2.1.6. The document's version field is stale.
    x-access-gate: application-approval
    x-access-note: >-
      Credentials for BOTH the api-test and production environments are issued
      case by case by the Rightmove Data Feed Team (adfsupport@rightmove.co.uk).
      The portal's self-serve app registration does not yield working credentials.
- target: $.info
  description: Add the operational conventions captured in conventions/rightmove-conventions.yml.
  update:
    x-conventions:
      idempotency:
        supported: true
        mechanism: client-supplied-key upsert on PUT
        key: reference (path parameter)
        header: none
      pagination:
        style: page-number
        params: [page, size]
        applies_to: [getCommercialPropertiesByBranch]
      rate-limits:
        code: 429
        window-seconds: 60
        limit: not published (varies per environment and endpoint)
      processing: asynchronous — a 2xx is an acceptance, not a publication guarantee
      tracing: meta.traceId on success, properties.traceId on error
- target: $.components.securitySchemes.OAuth2
  description: >-
    Flag the contract defect — the scheme declares an implicit flow with an empty
    scopes map while the prose and the portal authentication page both document
    the client_credentials grant. The original is left untouched.
  update:
    x-defect: >-
      Declared flow is `implicit` with authorizationUrl /oauth/token and no
      scopes; the documented and implemented grant is client_credentials with a
      tokenUrl. Clients must POST to /oauth/token, not redirect a user agent.
    x-documented-grant: client_credentials
    x-token-url: /oauth/token
    x-scopes-implemented: false
    x-docs: https://api-docs.rightmove.co.uk/authentication
- target: $.paths['/v2/property/commercial/{reference}'].put
  description: Record the idempotency contract on the upsert operation.
  update:
    x-idempotent: true
    x-idempotency-key: reference
    x-idempotency-note: >-
      A new reference creates (201); the same reference updates (200). Safe to
      retry on 429/502/503 with backoff.
    x-agentic-access:
      action-class: acting
      consequence: write
      audit: required
- target: $.paths['/v2/property/commercial/{reference}'].delete
  description: Record the irreversibility of removal for agent-safety tooling.
  update:
    x-irreversible: true
    x-cascade: Removes the property and any associated listings; it will not be returned by future queries.
    x-agentic-access:
      action-class: acting
      consequence: physical
      audit: required
      human-in-the-loop: recommended
- target: $.paths['/v2/property/commercial/branch'].get
  description: >-
    The operation is untagged in the source document, which breaks tag-based
    navigation and per-tag spec splitting. Tag it with the existing Property tag.
  update:
    tags: [Property]
- target: $.paths['/v2/property/commercial/branch'].get
  description: Record the pagination contract.
  update:
    x-pagination:
      style: page-number
      params: [page, size]
- target: $.components.schemas.ProblemDetail
  description: Record the error-format posture captured in errors/rightmove-problem-types.yml.
  update:
    x-error-format: rfc7807-shaped
    x-media-type-served: application/json
    x-media-type-note: >-
      Served as application/json rather than application/problem+json, so this is
      RFC 7807-shaped rather than RFC 7807/9457 compliant on the wire.
    x-extensions: [properties.traceId, properties.timestamp, properties.validationError]