Is there any API for knowing if it's a player's birthday?

Hi, so I might be making a reward system that rewards players on their birthday…is there any easy way I can determine if it’s their birthday or not?? Thanks.

3 Likes

Birthday, meaning their REAL DOB? From their account age, or just their account creation?

I should’ve specified that. Based on the information they input into their account.

1 Like

Fortunately, COPPA exists. Roblox doesn’t have the right to share that information thanks to that protection law. Meaning an API wouldn’t be existent for their DOB inputted into their account settings.

To learn more about COPPA, and what companies are allowed to share, visit this article;

If also interested, Roblox has a page where you can learn about what they are allowed to share publicly and what they specify they wont;

1 Like

Agreeing with what Kensizo, maybe you could use their date when they joined Roblox.

1 Like

Judging by the other replies, I suggest using “anniversary” from the sate joined instead. Even if you can find birthdate, people over 13 can change their birthday, so if you have a prize on their birthday, they can exploit it

1 Like

Anniversary is only on the Roblox Developer Forum, what if the player isn’t on the Developer Forum? Using this method is very inefficient and not useful, as I am pretty sure there is no API for this either, and to add you would have to go on the player’s profile, get request it, and then web scrape it, and that being only if they are on the developer forum.

If anything, better to scrap this idea as a whole, and just make a prompt when they first join asking for their birthdate+month ( not year, not sure if this breaks ToS, so I’d double check if I where you )

Personally, what I’d do is use @node_modules1 idea. It is a lot cleaner, and much much much safer option than going to another road like you are advising.

2 Likes

You shouldn’t be able to read a player’s actual birthday, but you can figure out their anniversary (when they joined) with something like this:

local player = game.Players.Blokav
local months = {
	"Jan", "Feb", "Mar", "Apr",
	"May", "Jun", "Jul", "Aug",
	"Sep", "Oct", "Nov", "Dec"
}
local secondsExisted = player.AccountAge * 86400
local dateObject = os.date("!*t", os.time() - secondsExisted)
print(player.Name.." joined ROBLOX on around "..months[dateObject.month].." "..dateObject.day..", "..dateObject.year)

Tested:
Screenshot (37)

To check if it is the actual day of their anniversary you would compare that to today’s date:

local today = os.date("!*t", os.time())
if (dateObject.month == today.month and dateObject.day == today.day) then
    print("Today is "..player.Name.."'s anniversary!")
end
4 Likes

This has nothing to do with the devforum. An anniversary is just a celebratory event for each year after something. This is easily doable with http requests to the Roblox website and there is a clever way you could do this without any http requests using the player’s account age. You can see if their account age is within a day after a whole number year.

2 Likes

What Kensizo said. Roblox can’t store private data like dates of births and have them publicly on an API. It breaks the Coppa law, even if they did and it was for 13+ can be accesed via the API that will just let people see who is 13 or over, which again will still break COPPA. Therefore Kensizo’s statement about it not existing to be shared is valid.

1 Like