New email notifications

When we first started last year we didn't send our users any emails except when they first signed up to our service. But since then we've added a lot of functionality and there are some account events you definitely want to be kept informed about. For example we send you emails if the following occurs:

  1. Your account has a password set or changed
  2. Your email address is changed
  3. Your API Key is changed
  4. Your paid plan ends

And as of a few days ago we now send you an email if you go over your daily query allotment for five consecutive days. But don't worry we limit these emails to one per 30 days as not to be spammy.

If you don't want to receive these emails at all you can of course toggle them off from the dashboard by unticking the Send me important emails related only to my account checkbox.

This is the only email change we have made, we think it will really help our customers because based on our internal statistics about 5% of our daily active users are going over their query limits and as our service is the kind of thing you setup once and forget about they may never realise that some of their queries are being denied by our API.

Already since we added the new notification emails we've seen two customers alter their querying behaviour and a third customer go from a free plan to a paid plan. All of these customers were notified by our software that they had been going over their query allotments for five days in a row.

So the important thing for us was striking the right balance between keeping our customers informed and yet not burdening them with lots of spammy usage emails. We think we've done that but of course you can disable these emails entirely as explained above.

Thanks for reading and have a great day!


proxycheck.io moves to monthly subscriptions

Hello everyone, today we've got some exciting news about the service, we have changed business models slightly, instead of having you purchase an entire years worth of service up front we've changed to offering a monthly subscription.

There are many reasons for this change which we're going to go through in this blog post but before that, check out the new snazzy subscription buttons we've got!

Pretty subscription buttons

Before we get into the why, I just want to assure everyone reading, if you're one of the many people who purchased a years worth of service up front your service is not ending or being cut short in any way. Your entire full years worth of service will continue and once it ends then you can choose to change to one of our new subscription plans or return to the free plan we've always offered.

And to our customers using our free plan, don't worry we're not getting rid of it. The free plan is very important to us and as you know we do not segregate features so those of you using our free plan get every feature our paid customers do without exception.

So why did we do this?

Paying for a year up front is expensive

Firstly asking people to pay for an entire years worth of service up front is a big ask especially for startups and smaller developers. They may not have the funds to pay $100 or $200 dollars for the hundreds of thousands of daily queries their new site or app has. So turning to a subscription allows the cost to be spread out and thus entices more people to pay for a paid plan when they just didn't have the money before.

Hard to try before you buy with a costly 1 year commitment

Another reason is a lot of our potential customers told us, can I just get a monthly plan to try the service? and you may say couldn't they just use the free 1,000 queries to test it? Well yes, but if you're running a huge website that small number of queries will get eaten up in minutes (as we have seen with some customers already). So they would prefer to try the service with as many queries as they need but not break the bank in the process.

We undervalued our service to make the 1 year commitment not feel so expensive

The third reason is that we were significantly undervaluing the API, our low per year cost was to reduce the sticker shock. We believe we were underpricing by 2-3x on the plans we offered. Again making people pay for an entire years service in one go is a difficult proposition. If we leave money on the table that's less money we have to invest in new servers and technologies.

It allows our customers to upgrade sooner and as their needs require it

Since you were locked into a year commitment, if you needed more queries sooner than that you would need to purchase a larger paid plan sooner and that can get very expensive especially if you're seeing explosive growth but not explosive profit margins.

It allows us to offer bigger plans

Due to the high cost in buying plans that you had to pay 12 months up front for we were reluctant to offer very high query allotment paid plans, at-least on the website itself, we have accommodated some customers after they contacted us with larger needs than we presented on the site.

But now that we're charging monthly we can offer larger plans and that is exactly what we have done. Previously 240,000 daily queries was our largest paid plan and it cost $360 for 12 months. We now offer 2.64 Million queries per day for $100 a month. And we also now offer 320,000 queries for just $30 a month which is the same price users paid for only 240,000 queries previously. Spreading the cost certainly makes it much more attractive.

In-fact the first six plans we offer priced from $5 to $30 double the previous plans query allotment. So as your service grows and your needs grow you need only pay an extra $5 per month to get twice as many queries as you were previously.


Now we understand a switch like this may make people disappointed, our most affordable plan has gone from $15 to $60 when extrapolated over a years worth of service and any way you slice it, that is a big increase. The fact the up front cost has gone from $15 to $5 isn't so great when you look at the annual cost, we know this.

But I hope you can understand that we undervalued these plans on purpose because we did not have the resources at the beginning to offer monthly paid subscriptions, setting up reoccurring payments even with stripe is time consuming and we have been building out the entire service over the past year. In-fact we only launched paid plans very late last year, some 7 or 8 months after the site first started.

As you can imagine having to pay $60 up-front for only 10,000 queries wouldn't have been very attractive to anyone. Most of our customers actually purchased our middle tiers around $60-$120 because they needed those high query packages (40,000-80,000). Now customers can get those same plans for only $15 a month which makes them much more attractive up front.

If you have any questions about these changes or anything else related to our service please do email us as many of you have been doing, it is important that we hear your feedback. Thanks


Code refactoring, bug fixes and performance improvements

Over the past week we've been very busy around proxycheck.io not designing new user features but improving the existing code base in several ways.

  1. Refactoring the code so it's more compact, easier to read and edit in the future
  2. Fixing some edge-case bugs that have been discovered
  3. Improving performance of the API to lower latency

We're not completely done with these efforts but we have gotten pretty far. Almost all of the code that runs proxycheck.io has been improved in some way including the API itself, the dashboard, the web interface and more.

Already the API is able to answer queries incredibly quickly even as we're seeing several million queries a day. But during our testing we were able to shave 2 entire seconds off a 500 query lookup through our web interface with our new performance optimised code which when extrapolated over the millions of daily queries we handle results in huge time savings. (If you're curious it was a reduction from 22ms per query to 18ms per query with Proxy and VPN checks enabled.)

To assist us in tracking down potential code optimisations we have built a new tool called ocebot (a play on the words ocelot and bot) which makes automated queries to our API all day every day and supplies a special flag to the API when it does, this triggers the recording of the query at a deep architectural level on the node that handled ocebot's query.

The data about that query is then saved and over time statistics which we can analyse are formed so we can see at a glance what functions in our code are the slowest, what kinds of anomalies are slowing queries down some of the time but not all of the time and also to see what software optimisations we should be looking into for our overall architecture meaning the operating system, web server and databases.

Due to the way that ocebot works only the queries ocebot makes itself will be recorded so that there is no performance impact on the queries made by our customers. But it will be making queries that are similar to the ones made by our customers. Some of its queries will even serve malformed data so that we can see the performance impact of bad queries.

We hope this blog post was interesting. I'm sure we'll have some data to share on the exploits of ocebot in the future.


3rd Party Software and the proxycheck.io API

Since we started the API there have been a few enquiries about our policy on third parties producing software that integrates our API. And specifically do we allow you to then sell that software.

So we thought it would be a great idea to explain our policy on this and our general thinking. Firstly yes we completely allow it, you are free to make any software you want that integrates our API and we are more than happy for you to sell your software with our API integrated into it. You do not need to contact us first and ask permission. Simply make whatever it is you want to make.

Of course we would like you to provide some way for your users to input an API key from proxycheck.io into your software. That way they can manage their proxy/vpn checking from the dashboard on our website.

Our reasoning for allowing others to produce third party software is that it's just good business sense. We cannot possibly author all the software ourselves that would benefit from a good proxy detection API. So encouraging other developers to build our API into their software is in our best interest.

But it's also a good deal for 3rd party developers because you don't need to worry about running a complicated always available API. You can simply build and charge for the client software you make. And we're not doing any split revenue structure so you do not owe us a penny for anything you make which uses our API.

And in-fact to assist you in broadening your softwares audience we are featuring 3rd party software on our example page. So if you've made something that uses our API and you give your users the ability to input a proxycheck.io API key then we are more than happy to feature it on our example page, simply email us with a link to your code example, application, plugin, function or SDK - If it uses our API we'll feature it.

To that end we today added three new 3rd party applications to the examples page that utilise our API. We hope to add many more and perhaps even your application will be featured soon. Thanks for reading!


New proxycheck.io blog!

Over the past year we've been working diligently on the proxycheck.io service adding new features and improving the responsiveness and reliability of the API. We've updated the appearance of the website several times and fleshed out the dashboard.

We feel now is the perfect time to launch our blog so we can better reach out to you and provide greater insight into our new features and future plans. We have a great roadmap ahead, the service is performing well and we're fully committed to proxycheck.io and to you.

Firstly, we want to allay some fears that the service is going to turn paid-only or that we're going to segment features between free and paid tiers. We don't believe that a paid-only model for this kind of service is viable. Instead, we believe that the best way to go is a free model with extra paid options for people that need more queries for commercial usage.

Feature segmentation is also not something we feel necessary at this time. Every user, be them on our free or paid tiers, should have access to TLS/SSL encrypted queries, powerful statistics, query tagging and white/black lists. These features are fundamental to the usage of the API; to only allow paying customers to utilise them would make the service inherently less effective.

Similarly, our free and paying users both enjoy full access to our entire cluster, as we do not differentiate between them. Some competitors' services restrict access to multi-server technology, which means free users are treated as second class, Furthermore, should there be any kind of server issue, they may lose access to the API temporarily, whereas our customers wouldn't.

The final thing I wanted to discuss was our unique technology. Everything we use has been built from the ground up by us. That includes the API technology, the website, our dashboard features, and even the cluster architecture that our servers utilise.

We were looking around for cluster technology we could make use of. However, we found all of them a bit too complicated with a lot of code debt, and many of them are also operating system specific.

With our custom architecture we maintain mirrored databases and files through a constant in process syncing system. If any node in our cluster goes offline, it is instantly kicked from service. It only rejoins once it has re-synced and been tested for coherency by the rest of our cluster members.

At the moment we expose two nodes within our cluster for the API to use but we have a third redundant node in the cluster which is not exposed. As the service grows and we receive more paying customers, we will be expanding the number of nodes in the cluster which will enhance proxycheck.io's availability and performance.

I hope this first blog post was enlightening and interesting. If you would like to discuss anything please feel free to message us on Skype, iMessage or Email via [email protected].

Thanks!


Back