openapi: 3.1.0 info: title: AlterEstate Agents Developments API version: v1 description: 'Public REST API for AlterEstate, the leading real-estate CRM SaaS for agents across Latin America. Exposes property listings, project developments (buildings and units), agents, geographic locations, and inbound lead submission. Read endpoints authenticate with a public API token (aetoken header); lead creation uses an account API key (Authorization: Token).' contact: name: AlterEstate Engineering email: engineering@alterestate.com url: https://dev.alterestate.com/ termsOfService: https://alterestate.com/terminos-condiciones servers: - url: https://secure.alterestate.com/api/v1 description: Production tags: - name: Developments description: Real-estate projects, their buildings and units paths: /projects/buildings/{project_slug}/: get: operationId: getBuildings summary: Get buildings description: Retrieve the buildings inside a real-estate project. tags: - Developments parameters: - name: project_slug in: path required: true schema: type: string responses: '200': description: A list of buildings. content: application/json: schema: type: array items: $ref: '#/components/schemas/Building' '404': description: Resource or endpoint not found. '500': description: Server processing failure. /properties/public/units/{project_slug}/: get: operationId: getUnits summary: Get units description: Retrieve the units of a project by requesting their slug. tags: - Developments parameters: - name: project_slug in: path required: true schema: type: string responses: '200': description: A list of units. content: application/json: schema: type: array items: $ref: '#/components/schemas/Unit' '404': description: Resource or endpoint not found. '500': description: Server processing failure. components: schemas: Unit: type: object properties: model: type: string floor: type: integer area: type: number rooms: type: integer bathrooms: type: number parking: type: integer status: type: string sale_price: type: number building: type: integer floor_plan: type: string format: uri Building: type: object properties: id: type: integer uid: type: string name: type: string order: type: integer visible: type: boolean company: type: integer project: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time securitySchemes: aetoken: type: apiKey in: header name: aetoken description: Public API token from the AlterEstate dashboard (Settings > Public API Token, admin access). Used for read endpoints. tokenAuth: type: apiKey in: header name: Authorization description: 'Account API key sent as: Authorization: Token . Used for lead submission.' oauth2: type: oauth2 description: OAuth 2.0 authorization used by the AlterEstate (Brik/alterai) hosted MCP server. flows: authorizationCode: authorizationUrl: https://secure.alterestate.com/oauth/authorize/ tokenUrl: https://secure.alterestate.com/oauth/token/ refreshUrl: https://secure.alterestate.com/oauth/token/ scopes: mcp: Access the AlterEstate hosted MCP server (secure.alterestate.com/api/v1/alterai/mcp/). x-apievangelist-generated: '2026-07-17' x-apievangelist-method: generated x-apievangelist-source: https://dev.alterestate.com/ (AlterEstate Developers Center, per-operation .md docs) x-apievangelist-note: AlterEstate publishes human documentation at dev.alterestate.com but no machine-readable OpenAPI. This description is generated faithfully from the documented operations, paths, methods, auth headers and status codes. Field-level schemas are approximate summaries of the documented response objects, not an authoritative provider contract.