back to top

What a Real Estate Photography Contract Should Include (Free Template!)

A- A+

Subscribe Below to Download the Article Immediately

You can also select your interests for free access to our premium training:

Your privacy is safe. I will never share your information.
Related course: Picture Perfect Properties

At the beginning of my career as a professional real estate photographer, I thought that writing a contract was too difficult and unnecessary. Soon I discovered that a word agreement was inadequate to cover every need or circumstance.

Now don’t worry, you don’t need to hire a lawyer. A simple real estate photography contract will do the job most of the time.

A model house beside a real estate photographers contract
Photo by bongkarn thanyakij from Pexels

Disclaimer – I’m a photographer, not a lawyer. Information in this article should be considered photography advice and not legal advice.

Main Terms to Include in Your Contract

The first step is to know the following main terms that you should include:

  1. Information of both parties;
  2. Scope of the agreement;
  3. Payment;
  4. Requirements;
  5. Extra fees;
  6. Delivery;
  7. Rights/Licensing;
  8. Property release;
  9. Signature.

Let’s look at these points in detail.

1. Information of Both Parties

It is an obvious point, but sometimes overlooked.

Can you always be sure that the person you are talking with is legally responsible for the shoot or the property? Do you have all the contact information in case you need them?

This section contains the full names and contact information of the client (the real estate agent or property owner) and the real estate photographer. Contact information should include the phone number, email and physical address.

2. Scope of the Agreement

This is the most important part of the photography contract. It is where you determine your client’s expectations. Describe your service in as much detail as possible to avoid any misunderstanding.

  • The address of the property is needed to state the object of the shoot clearly. Also, include the name or the code of the property if applicable.
  • The scheduled date and duration of the service; it helps the client to prepare for the shoot.
  • The number of images to produce.
  • The extra services included, like drone shooting, twilight shooting, or staging.
  • Any particular requests of the client.

Beautiful interior real estate photography shot

3. Payment Terms

Here’s another crucial part of any basic photography contract.

It is probably the first things that your client will ask. But the final price isn’t the only thing that is important to you. Your client must agree to any terms about the payment that are described in detail in this section.

It is good practice to ask for a deposit on confirmation of the shoot. Many photographers are worried that this could scare the client, but it guarantees that you have a partial refund in case the client changes their idea or doesn’t meet some of your requirements.

One thing you want to avoid is to send the final images and chase the client for the payment.

Some photographers ask for full payment at the end of the shoot. This also can be a risky request if there is not a foundation of trust.

You can resolve this by sending low resolution watermarked images. The client can’t use them but will be reassured to see the final images before payment. You can consider allowing them to make a limited number of requests. Only after the payment is completed should you deliver the full images.

Beautiful exterior real estate photography shot

4. Requirements

The success of the property shoot depends not only on your skills but also on perfect styling. The owner is responsible for the preparation of the property to make it look fresh and appealing. For optimal preparation, the client should follow these basic tips:

  • Make sure that all rooms are clean, and every furniture is in its place;
  • Remove any personal items;
  • Prepare the beds as it would welcome an important guest;
  • Set the table with dishes and glasses or a beautiful vase;
  • Clean up the exterior and cut the lawn. If the property has a luxurious garden it’s best to hire a gardener before the shoot;
  • Clean the swimming pool.

You should be able to start shooting as soon as you arrive on location. If the property still needs a lot of work, you should hold the deposit and reschedule.

When I started my job, it wasn’t unusual to waste a lot of time waiting for the preparation, and that was indeed a cause of stress. But once I wrote this requirement in the contract, every property was well prepared at my arrival, allowing me to make better pictures.

Another requirement is the weather condition. I always allow changing the scheduled date if the weather is not adequate or turns suddenly. It’s the photographer’s responsibility to check the weather in advance and suggest the best option.

Beautiful interior real estate photography shot

5. Extra Fees

The client must be aware of any extra costs that could be involved in the service. These costs are not always necessary, but they can be added to the final price under some circumstances or for specific requests. They can include:

  • Travel expenses, both as a flat fee or as a kilometric refund.
  • Cost for additional photos, in case the client asks for more photos during the shoot.
  • Cost for extra post-production, if requested. For example, sky replacement or advanced object removal.
  • Cost for full size, print quality, images if you usually deliver web size images.

It’s crucial that your client knows that every additional request comes at a cost. It can be an excellent practice to overdeliver the number of photos by a small percentage (5-10% more than agreed). This way, you guarantee a high satisfaction of your clients.

6. Delivery

You must specify all the details about the nature, the time, and the method of delivery.

  • The kind of file (Jpg, Tiff, Png) you deliver and the resolution.
  • How you transfer the files, for example using services as Wetransfer.
  • The expected delivery time after you complete the shoot.
  • If you deliver low-resolution photos for revision before the final delivery.
  • The time within which the client can ask for a revision.

I always send images with a file transfer service. A few times the client was disappointed because they expected some prints. If it is made clear in the contract then you can avoid dispute. You can consider selling full-size images at an extra cost, so it’s important to be precise about file resolution.

A man writing a real estate photography contract on a laptop

7. Rights

One of the most common misinterpretations is that the client thinks that they have full property of the paid images.

Since the photographer provides a digital copy of their work, they remain the only owner of the images, while the client only buys a license to use.

A common copyright infringement is when real estate agents transfer the images to other parties without the photographer’s permission.

Writing an explicit license agreement helps you to avoid seeing your pictures published by someone else or for different purposes.

With a license agreement, the photographer defines the circumstances and the time in which the client can use the images.

It is common to allow all web usages without time limits, while limiting printed advertising and the transfer of rights.

8. Property release

Another overlooked aspect is that the photographer can’t use images of a property without the permission of its owner.

Even if tacit consent is common, if you want to use the images for your portfolio, I still recommend to include a property release form in the contract.

A property release is required if you want to use the images to sell stock photography or publish to a magazine. However, I suggest giving your client a guarantee that you’ll only use them to promote your own business.

9. Signature

The last step of your contract is to finish it with full, legible signatures of you and your client, along with the date. The document will only be legally valid with these.

A close up of a person signing real estate photography terms and conditions

Conclusion

After I started using a real estate photography contract, not only did I gain a higher reputation as a professional, but my work was better protected. And I could easily charge more for any additional request.

If you are serious about your real estate photography business, then you must use a contract.

You can use our free real estate photography template as a starting point. Be sure to read through it and edit it to your needs!

Show Comments (0)
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]