Developments API v1.0

Create, update and retrieve development records programmatically.

Introduction

With our Developments API you can create, update and retrieve new homes development records from your own software, CRM or property management system. This API supports write methods for creating and updating records, plus read methods for listing all developments and retrieving a single development by ID.

Please note that this series of end-points are only accessible to authenticated users with a valid API key with new home developer access.

API Authentication

To access the API you'll first need to request an API Key, API username and API password related to either your main advertising account or an individual branch connected to your main account.

Note Customers on a multi-branch management account can manage developments across all of their connected branches using a single set of API credentials.

To get your API Key, username and password, please contact account support.

Authentication headers

Your API requests must include the following headers:

eaf-client-key the unique API key for the account making the request eaf-nonce a unique string for every request. This will also be included in your authorization hash and used to prevent replay attacks. Authorization (basic) contains your authorization hash. See below for how to create and finalise your authorization hash. Content-type determines how you'll be encoding your data.

Your content-type should be specified as (JSON) application/json.

Authorization hash

The authorization hash is a concatenated string of <username>:<password>:<nonce>:<api_key> which must then be hashed to 64 bytes hexadecimal format using SHA-256. The resulting string is then encoded using Base64.

Generating a nonce

Although we have no strict requirement for how you create your unique nonce, it's highly recommended to use V4 UUID.

For example: 66e6955a-e814-4ee0-b5e9-20c3bbebd563

API end-points

Developments API calls are made using POST, PUT and GET requests over a HTTPS connection to the following URL:

API end-point: https://eaf.cloud/agents/developments/v1/

Responses are returned in JSON format.

200 OK The request was successful. 400 Bad Request The request was invalid or the payload malformed. 401 Unauthorised You don't have permission to access the resource. 429 Too Many Requests Rate limiting has kicked in, preventing the request being processed.

When contacting us with an API request issue, please include the eaf-request-id returned in the response header.

/create

To create a new development, call POST /create.

For create requests, omit development.development_id as a unique ID will be returned in the response if the request was successful.

To see all available options, download the schema sendDevelopmentRequestSchema.json.

Response

Responses to the API are served as a JSON string and if successfull will include the development ID reference and branch ID which are used in /update requests.

{ "status": "ok", "timestamp": "2026-10-11 05:43:16", "response_id": "7711B2A8-1905-ED7A-5C85-5BD071162A11", "code": 201, "response": { "development": { "branch_id": "60048", "development_id": "EAF7116855971" } }, "type": "CREATE" }

/update

To update an existing development, call PUT /update.

Important: update requests must include development.development_id. This identifies which development under the specified branch_id to update and should remain stable for all future updates to the same record.

The development ID is returned when /create is first called and the format is validated as EAF[0-9]{5,25}.

This ID must be included in all subsequent update requests to reference the same development.

Response

Responses to the API are served as a JSON string and if successfull will include the development ID reference and branch ID used in request payload.

{ "status": "ok", "timestamp": "2026-10-11 05:43:16", "response_id": "7711B2A8-1905-ED7A-5C85-5BD071162A11", "code": 200, "response": { "development": { "branch_id": "60048", "development_id": "EAF7116855971" } }, "type": "UPDATE" }

/list

To retrieve development records, call GET /list.

This end-point returns a collection of developments available to the authenticated account context.

Below are the required and optional URL parameters you use to complete your request.

branch=[0-9]+ /[0-9]+

[number] [number]

Query parameter - the branch ID to fetch the list from The requested page number [0-9]+ e.g /list/5

Required Optional

Example request fetching page 2 might be /agents/developments/v1/list/2?branch=12345

Response

Responses to the API are served as a JSON string and if successfull will include an array of objects for each development found within a paginated list, 10 per page.

{ "status": "ok", "timestamp": "2026-10-11 05:43:16", "response": { "developments": [ { "branch_id": "12345", "development_id": "EAF12345678910", "development_name": "Riverside Mews", "developer_name": "Southern Homes Developments Ltd", "published": true, "created": "2026-07-02 15:50:02", "updated": "2026-07-02 15:48:59" } ], "count": 1, "pages": 1, "current": 1 } }

/development/{development_id}

To retrieve one development, call GET /development/{development_id}?branch={branch}.

Replace {development_id} with the exact development reference and {branch} with the relevant branch ID.

Response

Responses to the API are served as a JSON string and if successfull will include a mirror image of the /update request payload.

Payload structure summary

The request payload must contain a top-level development object. The key fields are:

development.development_id [string] - required for updates only. development.development_name [string] development.published [boolean] development.min_plot_price [number|null] development.max_plot_price [number|null] development.developer_details [object] development.contact_details [object]

Within developer_details, the schema requires developer name and address fields including postcode. Within contact_details, the schema requires contact email and contact phone.

Help and support

Please email support@estateagentfeeds.com if you require help with our Developments API.

Ok message

Error message