{"openapi":"3.1.0","info":{"title":"Seeki Agency Import API","version":"1.0.0","description":"Paywalled JSON ingest API for agency CRMs to push real-estate listings into Seeki."},"servers":[{"url":"https://ingest.seeki.eu"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"BatchResponse":{"type":"object","properties":{"batch_id":{"type":"string"},"accepted":{"type":"array","items":{"$ref":"#/components/schemas/AcceptedItem"}},"rejected":{"type":"array","items":{"$ref":"#/components/schemas/RejectedItem"}}},"required":["batch_id","accepted","rejected"]},"AcceptedItem":{"type":"object","properties":{"external_id":{"type":"string"},"import_item_id":{"type":"integer"}},"required":["external_id","import_item_id"]},"RejectedItem":{"type":"object","properties":{"external_id":{"type":"string","nullable":true},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"]}}},"required":["external_id","errors"]},"BatchRequest":{"type":"object","properties":{"listings":{"type":"array","items":{"$ref":"#/components/schemas/Listing"},"minItems":1,"maxItems":5000}},"required":["listings"]},"Listing":{"type":"object","properties":{"external_id":{"type":"string","minLength":1,"example":"PROP-1234","description":"Stable identifier from your CRM. Re-imports with the same external_id update the same listing."},"listing_type":{"type":"string","enum":["SELL","RENT"]},"real_estate_type":{"type":"string","enum":["APARTMENT","HOUSE","LAND","COMMERCIAL","OTHER"]},"name":{"type":"string"},"description":{"type":"string"},"locale":{"type":"string","example":"cs","description":"BCP-47 language code for the listing's source language."},"price":{"$ref":"#/components/schemas/Price"},"address":{"$ref":"#/components/schemas/Address"},"coordinates":{"$ref":"#/components/schemas/Coordinates"},"metrics":{"$ref":"#/components/schemas/ListingMetrics"},"amenities":{"$ref":"#/components/schemas/ListingAmenities"},"flags":{"$ref":"#/components/schemas/ListingFlags"},"charges":{"$ref":"#/components/schemas/ListingCharges"},"lease":{"$ref":"#/components/schemas/ListingLease"},"media":{"$ref":"#/components/schemas/ListingMedia"},"contact":{"$ref":"#/components/schemas/ListingContact"},"provider":{"$ref":"#/components/schemas/ListingProvider"}},"required":["external_id","listing_type","real_estate_type","price"],"additionalProperties":false},"Price":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":250000},"currency":{"type":"string","pattern":"^[A-Z]{3}$","example":"EUR"},"original":{"$ref":"#/components/schemas/Money"}},"required":["amount","currency"],"additionalProperties":false},"Money":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":250000},"currency":{"type":"string","pattern":"^[A-Z]{3}$","example":"EUR"}},"required":["amount","currency"],"description":"Pre-discount price, when applicable."},"Address":{"type":"object","properties":{"street":{"type":"string","minLength":1,"example":"Vinohradská"},"house_number":{"type":"string","example":"12"},"postal_code":{"type":"string","minLength":1,"example":"120 00"},"city":{"type":"string","minLength":1,"example":"Praha"},"country":{"type":"string","pattern":"^[A-Z]{2}$","example":"CZ"}},"required":["street","postal_code","city","country"],"additionalProperties":false},"Coordinates":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90,"example":50.0755},"lng":{"type":"number","minimum":-180,"maximum":180,"example":14.4378}},"required":["lat","lng"],"additionalProperties":false},"ListingMetrics":{"type":"object","properties":{"floorage":{"type":"number","nullable":true,"minimum":0},"land_area":{"type":"number","nullable":true,"minimum":0},"rooms_count":{"type":"integer","nullable":true,"minimum":0},"bedrooms_count":{"type":"integer","nullable":true,"minimum":0},"bathrooms_count":{"type":"integer","nullable":true,"minimum":0},"floor":{"type":"integer","nullable":true},"total_floors":{"type":"integer","nullable":true,"minimum":0},"building_year":{"type":"integer","nullable":true},"building_condition":{"type":"string","nullable":true},"energy_rating":{"type":"string","nullable":true},"ownership":{"type":"string","nullable":true},"disposition":{"type":"string","nullable":true},"heating_type":{"type":"string","nullable":true}},"additionalProperties":false},"ListingAmenities":{"type":"object","properties":{"balcony":{"$ref":"#/components/schemas/Amenity"},"loggia":{"$ref":"#/components/schemas/Amenity"},"terrace":{"$ref":"#/components/schemas/Amenity"},"garden":{"$ref":"#/components/schemas/Amenity"},"garage":{"$ref":"#/components/schemas/Amenity"},"parking":{"$ref":"#/components/schemas/Amenity"},"elevator":{"$ref":"#/components/schemas/Amenity"},"cellar":{"$ref":"#/components/schemas/Amenity"},"air_conditioning":{"$ref":"#/components/schemas/Amenity"}},"additionalProperties":false},"Amenity":{"type":"object","properties":{"present":{"type":"boolean"},"surface_m2":{"type":"number","minimum":0}},"required":["present"],"additionalProperties":false},"ListingFlags":{"type":"object","properties":{"discounted":{"type":"boolean"},"reserved":{"type":"boolean"},"low_energy":{"type":"boolean"},"barrier_free":{"type":"boolean"},"furnished":{"type":"boolean"},"pet_friendly":{"type":"boolean"},"non_smokers_only":{"type":"boolean"}},"additionalProperties":false},"ListingCharges":{"type":"object","properties":{"deposit":{"$ref":"#/components/schemas/Money"},"service_charges":{"$ref":"#/components/schemas/Money"},"utility_charges":{"$ref":"#/components/schemas/Money"}},"additionalProperties":false},"ListingLease":{"type":"object","properties":{"available_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}]},"min_lease_months":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"additionalProperties":false},"ListingMedia":{"type":"object","properties":{"images":{"type":"array","items":{"$ref":"#/components/schemas/Image"},"default":[]},"tour_360_url":{"type":"string","format":"uri"}},"additionalProperties":false},"Image":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"caption":{"type":"string"},"sort_order":{"type":"integer","minimum":0}},"required":["url"],"additionalProperties":false},"ListingContact":{"type":"object","properties":{"name":{"type":"string"},"company":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"type":{"type":"string","enum":["BROKER","OWNER","AGENCY"]}},"additionalProperties":false},"ListingProvider":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"published_at":{"type":"string","format":"date-time"}},"additionalProperties":false},"StatusResponse":{"type":"object","properties":{"import_item_id":{"type":"integer"},"status":{"type":"string","enum":["queued","processing","succeeded","failed"]},"error_code":{"type":"string","nullable":true},"user_message":{"type":"string","nullable":true},"workflow_status":{"type":"string","nullable":true},"workflow_current_step":{"type":"string","nullable":true},"listing_id":{"type":"integer","nullable":true},"retry_count":{"type":"integer"},"updated_at":{"type":"string"}},"required":["import_item_id","status","error_code","user_message","workflow_status","workflow_current_step","listing_id","retry_count","updated_at"]}},"parameters":{}},"paths":{"/v1/listings":{"post":{"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}}},"responses":{"200":{"description":"Per-item accept/reject result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}},"401":{"description":"Missing or invalid API key."},"403":{"description":"Subscription not active."},"413":{"description":"Body too large or item count exceeds 5000."}}}},"/v1/import-items/{id}/retry":{"post":{"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Item re-queued."},"404":{"description":"Item not found or not owned by this agency."}}}},"/v1/import-items/{id}/status":{"get":{"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Live status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"404":{"description":"Item not found or not owned by this agency."}}}}}}