How long your Instagram giveaway should last depends on multiple factors, but most giveaways on Instagram should be 48-72 hours.
If your goal is to generate urgency and create a spike in engagement, 24hrs may work better for you. For more extensive collaborations where it takes more time to mobilize audiences, you can use extended giveaway periods. These generally also have more expensive prizes.
But given how the Instagram algorithm works, you'll get significantly less engagement after the first 24 hours unless you spend on paid ads to boost your post, share stories and make additional posts to remind your audience about the giveaway.
Remember to include your giveaway's start and end date and time (including time zone) in your giveaway caption.