Hacker News new | ask | show | jobs
by CoolAssPuppy 3743 days ago
Hi, I'm Prashant. I run Developer Relations at Twitter. I want to clarify a few things here.

In the past, Twitter had little formality associated with granting elevated access. It was very much, "Hey, I want to do this cool thing!" "Okay, sure, here you go." As Twitter's platform business has matured to include many businesses building billions of dollars worth of social media monitoring and other tools, we've formalized the process to becoming a Twitter Official Partner (partners.twitter.com). Over the last six months, we've started contacting all of those API key holders with elevated access and asked them to clarify what they're doing. In some cases, we know the business and business owner and reach out personally. In other cases, like this one, the business is listed in our systems as "N/A", so we send the template mail.

In the email, we encourage people who believe their app is within the bounds of acceptable use cases on Twitter to contact us directly, and provide a link to do so. The owner of this app elected to blog publicly about the situation before contacting us, which is unfortunate. We have contacted the owner of this app and hope to resolve this situation, as we do with hundreds of other developers on our platform. We do occasionally provide exceptions for apps that are non-commercial (not-for-profit, no ads, etc.)

Note also that in this instance, the notice is NOT about shutting down this app. It merely inquires about why the developer needs elevated access, something that is typically reserved for our business partners.

None of this is related to continuing to use the Twitter API or our commitment to enabling developers to build on our platform (Fabric, Gnip, our Ads platform, and the Twitter API).

25 comments

So, the OP provided the email he recieved.

It did not ask him to clarify what he is doing, it did not say anything about bounds of acceptable use cases or what they might be, it did not encourage him to contact Twitter directly, or provide a link to do so. It did _not_ "inquire about why the developer needs elevated access", there is no such inquiry in the email. It _did_ say elevated access was going away.

It said he could use the free API with rate limits, or the commercial Gnip API.

It kind of half-heartedly suggested he could "reply to this email" if he had "questions". From the email, there was no reason to think elevated access might still be available, it pretty clearly said it would _not_ be, so I'm not surprised he didn't have any questions -- the email was quite clear (at saying something pretty different than you are saying).

So when you describe the email that goes out -- it does not seem to describe the one he received, according to him in the post. Are you talking about a different email? That he did not receive, or that you think he should have received in addition? Or do you actually think that email somehow communicates what you describe above? (It really really does not, which is why I think you must be thinking of a different email he did not receive or post, or you were internally misinformed about what the email was going to say).

With the email he actually pasted into the OP it is not surprising that he simply publicly notified his userbase and other interested parties that the service would be going away -- what else do you do when your upstream provider tells you the service is going away? This is all very standard and professional.

But, if you are saying that you do continue providing free elevated access to certain projects that seem worthwhile and meet some 'boudns of acceptable use', then that is nice, cool, I'm glad Twitter is doing this. (Maybe you should have told him that in the email though! And it would be great to actually advertise that fact, and what the bounds of acceptable use are, and how someone can get in touch with you to request access.)

> which provided no particular encouragement that there might be other terms available

That's not entirely correct. Under option 2 after mentioning it's commercial side, it says:

There are also other solutions that offer varying levels of access as well as historical search.

It's not prominent (likely because they only want it pursued in special cases), and it's easy to miss, but it is there.

That's referring to Gnip still. They offer several levels of access and historical search, in addition to the firehose stream, for money.

> If they want all these special access cases handled through Gnip, whether they are discounted or free, that's their call.

There's nothing in the mail suggesting they "want special access cases handled through Gnip".

So? If they want all these special access cases handled through Gnip, whether they are discounted or free, that's their call. Just because it's through the commercial arm doesn't mean they would be incapable of handling special cases.

In any case, it's all speculation, there was never a dialogue, and the HN title as it current stands is probably inflaming this more than it should be. Their access was not shut down (and the blog post's title and wording does does not say it is shut down, but that they believe they will be shut down). An email was sent, it was poorly worded, and the recipient overreacted (or at least prematurely reacted). The responsible thing to do would have been to contact Twitter or the sender and discuss the needs and goals of the project, and see what they could offer.

Immediately writing a public blog post is not negotiating in good faith.

> Immediately writing a public blog post is not negotiating in good faith.

Yet this seems to have been quite effective, given that the head of Developer Relations at Twitter is replying to this story on HN..

I don't question that. Yet doing things based purely on their effectiveness for your goals without any regard to the consequences for other parties is semi-sociopathic behavior, which is why it's frowned upon. Whether something is effective or not should not be the only metric by which we decide whether it's the action we should take.
Going public is incredibly short sighted and almost never effective. People are people and turning a potentially innocuous situation into "us versus them" just makes them less likely to want to help you.
I think the email goes further than poorly worded. It says pretty clearly that access will be cut off, gives no suggestion that there could be a negotiation.
The email ends with If you have questions, please reply to this email and we will be in touch to discuss.

I think it boils down to this, if the email said "Hey, we noticed you have special access, and we are trying to clean those up. You should either use the regular API with rate limits or our commercial offerings. Let me know if you have any questions." then I think the appropriate first step would be to contact Twitter and explain your situation. Since the actual letter contains that and just more information about possible options, I don't see why it should be viewed any differently.

> Immediately writing a public blog post is not negotiating in good faith.

Did everyone miss this part of the blog post?

> I’ve replied to Twitter asking for an exception, but I honestly don’t expect to receive one—and even if I were to, it wouldn’t help other developers who I believe deserve to get the same level of opportunity as me.

That doesn't really make a difference to my point if it's done prior to getting, or waiting an acceptable time period for, a response.
Not really. That just implies that all the other solutions are through Gnip, not through Twitter Streaming.
> Over the last six months, we've started contacting all of those API key holders with elevated access and asked them to clarify what they're doing. In some cases, we know the business and business owner and reach out personally. In other cases, like this one, the business is listed in our systems as "N/A", so we send the template mail.

> In the email, we encourage people who believe their app is within the bounds of acceptable use cases on Twitter to contact us directly, and provide a link to do so. The owner of this app elected to blog publicly about the situation before contacting us, which is unfortunate. We have contacted the owner of this app and hope to resolve this situation, as we do with hundreds of other developers on our platform. We do occasionally provide exceptions for apps that are non-commercial (not-for-profit, no ads, etc.)

If this was the intent, the template email was kind of poorly drafted, because that's not what it says at all.

It says multiple times, without qualification, that they're going to be cut off — "this type of elevation will no longer be available," "your current elevated rate limits will no longer be available," "we will remove this elevation from your account," and "we encourage you to evaluate alternative options." At no point does it say that keeping the elevated access is an option.

So I mean, can you really blame the owner of this app for reading these absolute statements as being absolute and believing their app was cut off, rather than seeing it as some kind of sideways inquiry as to whether they think their use is acceptable?

The email is perfectly drafted: it discourage comebacks while remaining vague enough for 'developer relations' to engage in damage controls when it struck some noisy player with large visibility.
> In the email, we encourage people who believe their app is within the bounds of acceptable use cases on Twitter to contact us directly, and provide a link to do so.

As many others have pointed out, the e-mail from Twitter in the blog post absolutely does not state this. I add my voice to the chorus of others asking if there is an alternate e-mail, or if you and Twitter truly believe the e-mail in the blog post ever made this statement.

> The owner of this app elected to blog publicly about the situation before contacting us, which is unfortunate.

Again, joining in the chorus of voices, I want to ask why it was unfortunate that the developer made a public statement that his service would be ending? In the correspondence with him it was clearly stated "On Thursday, April 21st we will remove this elevation from your account" (contradicting your claim that you "asked them to clarify what they're doing"). I would argue that the developer has the responsibility to notify their audience that the service is going to be shut down at that time.

Why is a public response anything but appropriate given the content of the e-mail that Twitter sent to him? If the situation you describe here is truthful, then don't push blame onto the external developer when the e-mail didn't come close to communicating what the Twitter team thought it did.

Kudos for caring enough to come here and respond directly. But man, Twitter just seems to have no consideration at all for the people and businesses who build on the platform.

Every 6 months you guys make a new change that kills a bunch of websites who were silly enough to rely on your APIs. Then you give an explanation like the one above: something about needing to grow the platform, and pushing the responsibility for the problem back on the businesses.

When you killed the tweet count a few months ago, the story was exactly the same - something about depreciating it in order to build a more dependable platform, and people shouldn't have relied on it in the first place. It's clear you guys just wanted to take control of your data.

As a social network, I love Twitter. But I would never waste any time building on your platform. At every step you leave a trail of dead businesses in your wake.

We need to open up computer access and intellectual property laws so that the content stream can be combed over by anyone who is interested in doing so, with or without Twitter's permission. Big companies should not have the ability to destroy small businesses just because they changed their mind about something.
If a small business bases it's business on something produced by another company and does so without a contract, I don't have a lot of sympathy. That's the whole point of contracts. Clearly outlining what each party is responsible for and expects.

If a contract isn't feasible, at least make sure it's in the other side's best interest to keep the situation going. Getting free access when it costs the other side (in managing access, serving requests, handling support, etc, no matter how small) is not something I would feel comfortable basing a business off of.

>Getting free access when it costs the other side (in managing access, serving requests, handling support, etc, no matter how small) is not something I would feel comfortable basing a business off of.

The difference is that the person is not getting anything that's not already offered to the general public. It's unfair to use the court system to enforce a company's exclusionary political decision that "everyone can access our website EXCEPT YOU", at least barring any actual contractual terms (not generic Terms of Use). The change I propose would not force anyone to accommodate a certain API change or provide any special functionality. It would simply prevent non-neutral access rules from being enforced via legal vectors.

Twitter would still be able to charge for access to the APIs they charge for now. They'd simply be unable to use the court system to compel someone to stop accessing the data that they have no copyright interest in and which they serve up to the world for free. I'm not sure if Twitter has tried to do this yet, but it's the normal step companies take once a consumer develops the ability to evade their IP blocks.

To be honest, the law already can be interpreted this way. The problem is that it often isn't. Companies have been able to convince non-technical judges that concepts like trespass to chattels are applicable any time someone is talking to their server. We need language in the law that will clarify the matter to prevent big companies from squashing small innovators that they find inconvenient or threatening instead of leaving it up to judge roulette.

It's not even about access, it's about existence (at least my point was). If a company decides they just want to stop offering a feed, or change what it does or does not include, a contract protects you for at least some time before they and force that upon you. It's not always about the company wanting more money. Sometimes old products are obsolete, and providing them costs a non-negligible amount in maintenance and support. Contractual obligations can be the difference between turning it off next week or eight months from now when the last contract is up, and that can make all the difference in having enough time to pivot to a new or different data source.
Yeah, I think we're talking past each other a little bit here. It's understood that a company could stop offering some data that a company is dependent on altogether, but I think it's substantially less likely than a company threatening to terminate access to data that already exists (which is what happened here). I also think that if entrepreneurs know that they're free to gather any freely-available information, changes in the commercial offerings or access rules are less threatening.

Of course it's ideal to have a contract with a company that guarantees access to the data stream for a reasonable chunk of time, but the reality is that unless you're already a big shot, platform vendors like Twitter aren't going to give you the time of day for something like that.

If we take away the ability of companies to selectively allow access to data that's available for free to the general public, it gives these guys a fighting chance. The web is a publication platform. It's equally absurd to say "I'm publishing this novel and everyone except kbenson can read it" as it is to say "I'm publishing this data to the general public and everyone except kbenson can access it". You can try to stop someone from accessing your data, but certainly no court is going to consider it reasonable to assist a company in preventing kbenson from reading a widely published manuscript. Data access is substantially the same thing, and should be treated the same way. Keeping non-disruptive entrepreneurs on the same footing as everyone else makes innovation more secure.

> In the email, we encourage people who believe their app is within the bounds of acceptable use cases on Twitter to contact us directly, and provide a link to do so.

I don't see any encouragement or really any path to recourse in the email. It reads as though the decision is final. Email linked from blog post: https://cdn-images-1.medium.com/max/2000/1*MoLgPNLiQwQ8s-Y1D...

Can you point a place in the email that communicates what you just explained in your comment? I just reread it twice and I don't see that anywhere.

My interpretation of the email is essentially: we used to offer this for free, and we're now offering a commercial alternative. You have three options: use the paid option, use the free API that does not work for your use case, or shut down.

If I'm missing something obvious please let me know.

My experience with Twitter:

1. Build a successful product

2. Twitter discontinues dev-friendly policies, product gets shuttered

3. Later, tweet doubts about Twitter's dev "commitment"

4. Tweet gets removed

5. Read yet another horror story about working with Twitter

6. Twitter guys claims that Twitter is "committed"

7. Turns out, previously mentioned horror story tells a different story

8. Rinse, repeat?

You're just making this worse. Do you think people are not going to parse this comment line by line to verify what you imply, point by point. The fact you have a job in Developer Relations and you're trying to deflect the story because it makes you look bad, instead of just owning it is not the knee-jerk reaction you should go for.

As Twitter's platform business has matured to include many businesses building billions of dollars worth of social media monitoring and other tools, we've formalized the process to becoming a Twitter Official Partner (partners.twitter.com).

Simply because you're an even bigger company now that means implicitly that you need to change your processes, perhaps you could explain the reasoning of what was going wrong, previously.

our commitment to enabling developers to build on our platform

I think a lot of developers would question whether or not you guys even have such a commitment at all. Twitter does NOT have a good history in this regard. If anything, you guys need to bend over backwards, sideways, upside down, and any other way you can think of, to treat developers well and woo them. I mean, somebody needs to go full Ballmer and start screaming "Developers, developers, developers!!!". [1]

Seriously, you guys are so behind the curve in terms of developer perception that "good enough" isn't even close to good enough. You should probably be reaching out to developers, offering to fly them to Twitter HQ, and treating them to steak and lobster, etc. And that's just to get back in the good graces of the development community.

Developers do not compete with Twitter, developers make the Twitter ecosystem larger and stronger and better. Twitter needs to embrace that mindset and go all in on becoming a desirable platform to develop for.

As for myself, our app offers limited Twitter integration, but we're damn sure not going to spend a lot of time and energy on Twitter given the history and what-not.

My advice? Kill Gnip, make it trivially easy to access the firehose, commit to adhering to open standards[2][3][4][5] across the board, and put developers front and center. If you want to charge for firehose access, fine, but kill any notion of some complicated application / approval process. Make it as simple as using the API now plus checking a checkbox and plugging in a credit card number, whatever. It's 2016 for crying out loud, there's no reason I should need to fill out a form and have a sales representative call me for something like that.

[1]: https://www.youtube.com/watch?v=Vhh_GeBPOhs

[2]: http://activitystrea.ms/

[3]: http://www.foaf-project.org/

[4]: https://www.w3.org/2008/09/msnws/papers/W3C_FOSN_Position_Pa...

[5]: https://www.w3.org/community/ostatus/

>It's 2016 for crying out loud, there's no reason I should need to fill out a form and have a sales representative call me for something like that.

Sure there is. The reason is that they want to guess how much money you'll be willing to pay and have your sales rep charge you that.

Oh sure, I know why they want to do it that way. But the sad thing is, they could do price differentiation even in a purely self-service model. It's not a perfect analogy, but look at something like AWS - no sales-person there, but customers price themselves into different segments based on what they sign up for and use. I can't help but think Twitter could accomplish their pricing goals without needing a human in the loop on their end.
Is this a joke? That email clearly states that such an access will not be available. Not what you claim here. Am I missing something?
Am I missing something?

Not really. This follows the coloring book pretty well:

Step 1. Inflexable corporate rhetoric and/or positions expressed privately.

Step 2. Other party blogs about a scenario that puts egg on their face.

Step 3. "Nah man, we're flexable! Why didn't you just talk to us first?!"

Meanwhile, their stock is tanking. But they seem too busy patting themselves on the back to even notice.
It's 'unfortunate' because it reflects poorly on your company. The developer didn't do anything wrong.

The rest of your explanation is just specious, as pointed out by other people, and also reflects poorly on your company.

It's nice to see somebody from Twitter actually posting here on HN and all. But when the reply is, as you say, somewhat specious, it doesn't really do anything to enhance Twitter's credibility. And they are kinda "swimming upstream" in this regard already.
It's just poorly done damage control. I would expect someone in charge of developer relations at Twitter to come up with an actually concrete plan, if they actually cared about the developer community, and not just talk about how "flexible" Twitter is in private or how "disappointing" it is to get this private matter get exposed. The rest of us developers need to see things like this to properly decide technology product direction, and at least for me, it speaks for how much I will continue to push for removing reliance on Twitter as a platform in favor of something more open, transparent, and predictable.
> In the email, we encourage people who believe their app is within the bounds of acceptable use cases on Twitter to contact us directly, and provide a link to do so.

Really? Where in the email does it ask anything of that sort? The only "unfortunate" part that I see is that this person exposed the false rhetoric and lack of flexibility that Twitter has shown time and time again. Apologize and fix it, stop trying to whitewash this.

Simply put - your "template mail" is terrible.

If what you just said is what it the email meant to communicate then it fails at every level. Please don't try to shift the blame for Twitters poor communication to the recipient because they "elected to blog publicly about the situation".

The "situation" is entirely created by Twitter.

Twitter has a (recent) history of terrible communication with developers and it would not surprise anyone if what seemed to be the case WAS the case. If it is NOT the case, as you say, then you really need to improve your company communication.

It's clear from both the clear contradictions between your statements here and the letter posted _and_ from your lack of any followup here to people that have pointed out these contradictions that you are, unfortunately, stuck with the sucky part of being developer relations for a company that often has to directly piss off developers. I feel for you!
None of this is related to continuing to use the Twitter API or our commitment to enabling developers to build on our platform

It is directly related.

Twitter desperately needs to decide whether you are a platform or a closed business. If you're a platform your job should be encouraging any and all innovation on there, and have clear pricing tiers which do not result in sudden jumps from free to large charges or access cut off and directly reflect the cost to you of serving the API. You should never be in a situation where you're emailing to cut off access (and yes this notice is shutting it down).

Successful products built on twitter should be celebrated, not forced off the platform.

So I take it you are some sort of pr flack who had nothing to do with sending the email? Why doesn't the person who sent this email come here and explain why they sent it?
Have you READ the email you sent?
Are you serious? He provided the email Twitter sent. There was no indication of a negotiation or clarification there. Maybe you need to work on how you communicate.
Here is a better approach for those N/A apps.

Try the app. Talk to the developer.

Template mail should not exist.

Regarding your nickname, I would like to point out that there is no such thing as an "ass puppy". Juvenile asses are called foals, like the young of other equines.
Having tried to get firehose access for a project (three years ago), my messages were only met with silence. So I'm pretty sure it wasn't as easy you say it was.
So, were you going to engage in any conversation here or is this just a drive-by attempt at redefining the contents of that email?
(Not sure why I am receiving so many downvotes, this is the first time I can talk personally with someone at Twitter about API rates. Also I am receiving downvotes in other threads so I suspect this is an orde)

Hi Prashant,

I want to pay $ 100 per month to extend the rate limit of the free API. Is this possible?

Thanks,

wslh

So, Twitter is allowing their head of Developer Relations to communicate, in what appears to be an official response, under the name `CoolAssPuppy`? Really? That doesn't seem right.
Welcome to the internet? If anything, this feels more like a real response than a canned message from OfficialTwitterAccount.
Considering that was probably his Twitter handle before joining Twitter, this isn't shocking: https://twitter.com/CoolAssPuppy
That's been my handle since AOL. :-)
Good to know my handle won't necessarily hold me back.