FairePlace Amendment History API
Chronological history of an amendment.
Chronological history of an amendment.
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/faireplace-com:faireplace-com-amendment-history-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: FairePlace Property Management Amendment History API
description: 'Comprehensive API for managing properties, leases, tenants, and all aspects of real estate management.
Built with Rust and Actix-web following hexagonal architecture principles.
## Authentication
This API uses API keys for authentication with tenant-based isolation.
## Base URL
- Production: `https://api.faireplace.com/api`'
version: 1.0.0
contact:
name: FairePlace API Support
email: api-support@faireplace.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://api.faireplace.com/api
description: Production server
security:
- BearerAuth: []
tags:
- name: Amendment History
description: Chronological history of an amendment.
paths:
/leases/{lease_id}/amendments/{amendment_id}/history:
get:
operationId: listAmendmentHistory
summary: List amendment history
description: 'Returns the complete audit trail for an amendment. Entries are automatically
created by the system when changes occur (status changes, content modifications,
validation changes, signature updates, document additions).
**Read-only**: history entries cannot be created, updated, or deleted via API.'
tags:
- Amendment History
security:
- BearerAuth: []
parameters:
- name: lease_id
in: path
required: true
schema:
type: string
format: uuid
- name: amendment_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: List of history entries
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AmendmentHistoryResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/leases/{lease_id}/amendments/{amendment_id}/history/{entry_id}:
get:
operationId: getAmendmentHistoryEntry
summary: Get a specific history entry
tags:
- Amendment History
security:
- BearerAuth: []
parameters:
- name: lease_id
in: path
required: true
schema:
type: string
format: uuid
- name: amendment_id
in: path
required: true
schema:
type: string
format: uuid
- name: entry_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: History entry details
content:
application/json:
schema:
$ref: '#/components/schemas/AmendmentHistoryResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
AmendmentHistoryResponse:
type: object
description: Audit trail entry for an amendment change (read-only)
required:
- id
- amendment_id
- change_type
- change_date
- performed_by
properties:
id:
type: string
format: uuid
amendment_id:
type: string
format: uuid
change_type:
type: string
description: Type of change recorded
enum:
- STATUS_CHANGE
- CONTENT_MODIFICATION
- VALIDATION_CHANGE
- SIGNATURE_UPDATE
- DOCUMENT_ADDITION
example: STATUS_CHANGE
change_date:
type: string
format: date-time
previous_values:
type:
- object
- 'null'
description: Previous state as JSON
new_values:
type:
- object
- 'null'
description: New state as JSON
change_reason:
type:
- string
- 'null'
performed_by:
type: string
format: uuid
description: ID of the user who performed the change
Error:
type: object
description: "The error envelope returned by every authenticated endpoint.\n\nTwo things are worth knowing before you write your error handling:\n\n- **`code` is a symbolic string, not a number.** The numeric HTTP status is\n in `status`. Branch on `code`: it is stable, and show `message`, which\n is written for humans and may be reworded without notice.\n- The public guest-signature endpoints use a **different, flatter shape**\n (`{ \"error_code\": …, \"message\": … }`, no `error` wrapper), because they\n are consumed by a page that has no session. Their responses document it\n inline.\n\nThe `X-Request-Id` response header carries the request identifier: quote it\nwhen reporting a problem. It is a header, not a body field.\n"
required:
- error
properties:
error:
type: object
required:
- code
- message
- status
properties:
code:
type: string
description: Stable symbolic code. Branch on this.
enum:
- NOT_FOUND
- UNAUTHORIZED
- VALIDATION_ERROR
- DATABASE_ERROR
- BUSINESS_ERROR
- STORAGE_ERROR
- CONFIG_ERROR
- FORBIDDEN
- CONFLICT
- PARSE_ERROR
- SERIALIZATION_ERROR
- AUTHENTICATION_ERROR
- AUTHORIZATION_ERROR
- EXTERNAL_SERVICE_ERROR
- RATE_LIMIT_EXCEEDED
- PAYMENT_REQUIRED
- PLAN_LIMIT_REACHED
- GONE
- BAD_REQUEST
- INTERNAL_ERROR
- INTERNAL_SERVER_ERROR
example: NOT_FOUND
message:
type: string
description: 'Human-readable explanation, most often in French. Safe to display,
not safe to parse.
'
example: Lease not found
status:
type: integer
description: The HTTP status code, repeated in the body.
example: 404
details:
type: object
additionalProperties: true
description: 'Extra machine-readable context. Only present on some errors: on
`RATE_LIMIT_EXCEEDED` it carries `retry_after_seconds`.
'
example:
retry_after_seconds: 12
responses:
NotFound:
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: API key with fp_* prefix, passed as Bearer token
WorkerApiKey:
type: apiKey
in: header
name: X-API-Key
WorkerBearer:
type: http
scheme: bearer
bearerFormat: Worker