Propexo API

Propexo API as documented publicly: 10 operations. Contract generated from the documentation by API Evangelist (2026-10-18); not the provider's own document.

Operations 10

GET /v1/events GET /v1/events #
GET /v1/leads GET /v1/leads #
GET /v1/leads/mri GET /v1/leads/mri #
POST /v1/leads/mri Create a lead in MRI. #
GET /v1/leads/mri/lead_id GET /v1/leads/mri/lead_id #
PUT /v1/leads/mri/{leadId} Update Lead: MRI #
GET /v1/leases GET /v1/leases #
GET /v1/owners GET /v1/owners #
GET /v1/owners/ Get all owners #
GET /v1/units GET /v1/units #

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/propexo:propexo-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 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 Specification

propexo-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Propexo API
  version: '2026-10-18'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-18: 10 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Propexo has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 7
    documentation: 3
    pages-with-code: 7
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-18'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.propexo.com/api-reference/mri/leads/get-all-leads.md
  - https://docs.propexo.com/api-reference/mri/units/get-all-units.md
  - https://docs.propexo.com/api-reference/mri/events/get-all-events.md
  - https://docs.propexo.com/api-reference/mri/leads/create-lead-mri.md
  - https://docs.propexo.com/api-reference/mri/leads/update-lead-mri.md
  - https://docs.propexo.com/api-reference/mri/leases/get-all-leases.md
  - https://docs.propexo.com/api-reference/mri/owners/get-all-owners.md
servers:
- url: https://api.propexo.com
paths:
  /v1/events:
    get:
      operationId: get_v1_events
      tags:
      - Events
      summary: GET /v1/events
      x-source: https://docs.propexo.com/api-reference/mri/events/get-all-events.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/events/"
  /v1/leads:
    get:
      operationId: get_v1_leads
      tags:
      - Leads
      summary: GET /v1/leads
      x-source: https://docs.propexo.com/api-reference/mri/leads/get-all-leads.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/leads/"
  /v1/leads/mri:
    get:
      operationId: get_v1_leads_mri
      tags:
      - Leads
      summary: GET /v1/leads/mri
      x-source: https://docs.propexo.com/api-reference/mri/leads/create-lead-mri.md
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1LeadsMriResponse'
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/leads/mri/"
    post:
      operationId: post_v1_leads_mri
      tags:
      - Leads
      summary: Create a lead in MRI.
      x-source: https://docs.propexo.com/api-reference/mri/leads/create-lead-mri.md
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Bearer authentication of the form `Bearer <token>`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1LeadsMriRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1LeadsMriResponse'
      x-evidence:
        kind: documentation
  /v1/leads/mri/lead_id:
    get:
      operationId: get_v1_leads_mri_lead_id
      tags:
      - Leads
      summary: GET /v1/leads/mri/lead_id
      x-source: https://docs.propexo.com/api-reference/mri/leads/update-lead-mri.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/leads/mri/lead_id"
  /v1/leads/mri/{leadId}:
    put:
      operationId: put_v1_leads_mri_leadId
      tags:
      - Leads
      summary: 'Update Lead: MRI'
      x-source: https://docs.propexo.com/api-reference/mri/leads/update-lead-mri.md
      parameters:
      - name: leadId
        in: path
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Bearer authentication of the form `Bearer <token>`
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutV1LeadsMriLeadidRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutV1LeadsMriLeadidResponse'
      x-evidence:
        kind: documentation
  /v1/leases:
    get:
      operationId: get_v1_leases
      tags:
      - Leases
      summary: GET /v1/leases
      x-source: https://docs.propexo.com/api-reference/mri/leases/get-all-leases.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/leases/"
  /v1/owners:
    get:
      operationId: get_v1_owners
      tags:
      - Owners
      summary: GET /v1/owners
      x-source: https://docs.propexo.com/api-reference/mri/owners/get-all-owners.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/owners/"
  /v1/owners/:
    get:
      operationId: get_v1_owners
      tags:
      - Owners
      summary: Get all owners
      x-source: https://docs.propexo.com/api-reference/mri/owners/get-all-owners.md
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Bearer authentication of the form `Bearer <token>` where token is your auth token.
      - name: order-by
        in: query
        required: false
        schema:
          type: string
        description: 'Order the results by a field. Optionally include asc or desc preceded by a colon (default is asc). Example: ?order-by=updated_at:desc'
      - name: updated_at_gte
        in: query
        required: false
        schema:
          type: string
        description: 'Filter to records updated at or after this datetime. Format: ISO 8601.'
      - name: updated_at_lte
        in: query
        required: false
        schema:
          type: string
        description: 'Filter to records updated at or before this datetime. Format: ISO 8601.'
      - name: last_seen_gte
        in: query
        required: false
        schema:
          type: string
        description: 'Filter to records whose last_seen date is on or after this datetime. Format: ISO 8601.'
      - name: last_seen_lte
        in: query
        required: false
        schema:
          type: string
        description: 'Filter to records whose last_seen date is on or before this datetime. Format: ISO 8601.'
      - name: offset
        in: query
        required: false
        schema:
          type: string
        description: Can be used for paginating results
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: A number between 1 and 250 to determine the number of results to return in a single query
      - name: location_id
        in: query
        required: false
        schema:
          type: string
        description: The Propexo unique identifier for the location associated with the property (exclusive to Rent Manager integrations).
      - name: property_id
        in: query
        required: false
        schema:
          type: string
        description: The Propexo unique identifier for the property
      - name: integration_id
        in: query
        required: false
        schema:
          type: string
        description: The Propexo unique identifier for the integration
      - name: integration_vendor
        in: query
        required: false
        schema:
          type: string
        description: The property management system of record
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1OwnersResponse'
      x-evidence:
        kind: documentation
  /v1/units:
    get:
      operationId: get_v1_units
      tags:
      - Units
      summary: GET /v1/units
      x-source: https://docs.propexo.com/api-reference/mri/units/get-all-units.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: ruby
        snippet: URI("https://api.propexo.com/v1/units/"
components:
  schemas:
    GetV1LeadsMriResponse:
      type: object
      properties:
        integration_id:
          type: string
        property_id:
          type: string
        last_name:
          type: string
    PostV1LeadsMriRequest:
      type: object
      properties:
        integration_id:
          type: string
          description: The Propexo unique identifier for the integration
        property_id:
          type: string
          description: The Propexo unique identifier for the property
        last_name:
          type: string
          description: The last name associated with the lead
        address_type_id:
          type: string
          description: The Propexo unique identifier for the address type
        first_name:
          type: string
          description: The first name associated with the lead
        email_1:
          type: string
          description: The primary email address associated with the lead
        address_1:
          type: string
          description: The first address line associated with the lead
        address_2:
          type: string
          description: The second address line associated with the lead
        city:
          type: string
          description: The city associated with the lead
        state:
          type: string
          description: The state associated with the lead
        zip:
          type: string
          description: The zip code associated with the lead
        target_move_in_date:
          type: object
          description: The target move in date associated with the lead
        desired_num_bedrooms:
          type: number
          description: The desired number of bedrooms
        desired_num_bathrooms:
          type: string
          description: The desired number of bathrooms
        desired_lease_term_in_months:
          type: number
          description: The desired lease term in months of the lead
        number_of_occupants:
          type: number
          description: The number of occupants for the lead
        notes:
          type: string
          description: Notes associated with the lead
        phone_1:
          type: string
          description: Primary phone number associated with the lead
        phone_1_type:
          type: string
          description: Type of the primary phone number
        phone_2:
          type: string
          description: Secondary phone number associated with the lead
        phone_2_type:
          type: string
          description: Type of the secondary phone number
        applicant_status:
          type: string
          description: The applicant status of the lead. This is optional and defaults to APPLICANT.
      required:
      - integration_id
      - property_id
      - last_name
    PostV1LeadsMriResponse:
      type: object
      properties:
        '200':
          type: string
          description: Successful response
        '400':
          type: string
          description: Bad Request
    PutV1LeadsMriLeadidRequest:
      type: object
      properties:
        address_type_id:
          type: string
          description: The Propexo unique identifier for the address type. This is required when updating the address
        first_name:
          type: string
          description: The first name associated with the lead
        last_name:
          type: string
          description: The last name associated with the lead
        email_1:
          type: string
          description: The primary email address associated with the lead
        address_1:
          type: string
          description: The first address line associated with the lead
        address_2:
          type: string
          description: The second address line associated with the lead
        city:
          type: string
          description: The city associated with the lead
        state:
          type: string
          description: The state associated with the lead
        zip:
          type: string
          description: The zip code associated with the lead
        target_move_in_date:
          type: object
          description: The target move in date for the lead
        desired_num_bedrooms:
          type: string
          description: The desired number of bedrooms
        desired_num_bathrooms:
          type: string
          description: The desired number of bathrooms
        desired_lease_term_in_months:
          type: string
          description: The desired lease term in months of the lead
        number_of_occupants:
          type: string
          description: The number of occupants for the lead
        notes:
          type: string
          description: Notes associated with the lead
        phone_1:
          type: string
          description: Primary phone number associated with the lead
        phone_1_type:
          type: string
          description: Type of the primary phone number
        phone_2:
          type: string
          description: Secondary phone number associated with the lead
        phone_2_type:
          type: string
          description: Type of the secondary phone number
        applicant_status:
          type: string
          description: The status of the lead. This is optional and defaults to ACTIVE.
    PutV1LeadsMriLeadidResponse:
      type: object
      properties:
        meta:
          type: object
          description: V1LeadsMriLeadIdPutOutputMeta
        result:
          type: object
          description: V1LeadsMriLeadIdPutOutputResult
    GetV1OwnersResponse:
      type: object
      properties:
        '200':
          type: string
          description: Successful response containing meta and results arrays.
        '400':
          type: string
          description: Bad Request Error with error object.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Events
- name: Leads
- name: Leases
- name: Owners
- name: Units