Frequently asked questions about Twitter Apps and Projects
Why is my "Create an App" button grayed out on https://developer.twitter.com/en/apps?
If you had worked with the Twitter API prior to 2018, you may review your older apps on https://developer.twitter.com/en/apps. If you plan to create a new App for new credentials, you must have an approved developer account. the "Create an App" button will be grayed out and you will see a warning screen that states:
Please apply for a Twitter developer account
You may continue managing your existing Apps but if you would like to create new Apps, use Twitter premium APIs or Twitter API v2, please apply for a developer account.
As a developer platform, our first responsibility is to our users: to provide a place that supports the health of conversation on Twitter. To continue to prevent misuse of our platform, we have introduced a few new requirements for developers.
What's the difference between standalone Apps and Projects?
Projects allow you to organize your work based on how you intend to use the Twitter API v2, so you can effectively manage your access, and monitor your usage. Each Project contains at least one App. Projects have specified access level such as Essential or Elevated access. Projects with Elevated access can have up to three connected Apps. An App must be connected to a Project in order to use Twitter API v2.
Standalone Apps are Apps that exist outside of the Project structure. These Apps can connect to v1.1, Labs, or Premium endpoints but can’t connect to v2 endpoints without being connected to a Project.
What is the relationship between my developer account, Projects and Apps?
Your developer account allows you to set up and manage you own Projects and Apps. Projects create the permissions for allowing Apps to connect to Twitter API v2 endpoints. Only Apps within Projects can access Twitter API v2. Projects each have a Tweet volume consumption limit for any connected Apps within the Project on a monthly basis. We have a documentation section specifically for Projects, Twitter Apps and the dashboard.
What exactly is a Project?
A Project allows you to organize your work (based on use case) with the Twitter Developer Platform’s APIs, and are required when making requests to the Twitter API v2 endpoints. You are also limited to being able to retrieve a certain number of Tweets per month from specific endpoints at the Project-level.
Can anyone else see my Project name or information other than me?
Your Project name and description will only be visible to you or your team if you have a team account. It is important to note that if you implement third-party authentication (sometimes referenced as “sign in with Twitter”), your App’s description will be displayed publicly. You should review and update your App and Project description before implementing a sign in with Twitter authentication flow. Review our documentation on 'sign in with Twitter' to learn more.
How many Projects can I have?
This depends on what access levels you currently have access to.
You are allowed one Project with either Essential or Elevated access. This means that -- if you have Essential access and are approved for Elevated access, your Project will automatically upgrade to having Elevated access.
If you are approved for Academic Research access, you will be able to have one additional Project, for a total of two.
Can I have more than one App connected to a Project?
This depends on the access levels that you have access to.
Essential access can only have one App per Project.
Elevated access can have up to three Apps per Project.
Academic Research access can only have one App per Project.
Can I add existing Apps to a Project?
Yes, you can add an existing App (also known as standalone Apps) to your Project. When setting up your Project, you should see an option to add a standalone App to that Project.
Is there a way to check my progress towards the monthly Project Tweet cap?
There is a Project-level Tweet cap limiting the number of Tweets you can retrieve from several Twitter API v2 endpoints. This is set based on the access level (Essential, Elevated, etc)
You can check your progress towards the monthly cap from the Project section on the developer portal dashboard.
What are the Tweet caps per access level? Is there a way to get more?
Projects with essential access will have a monthly Tweet cap of 500,000 Tweets. Projects with elevated access will have a monthly Tweet cap of 2,000,000 Tweets. The existing Tweet caps are hard limits. In future releases, we will be launching elevated access options for the Twitter API v2 endpoints. You can sign up for our waitlist to learn more.
Why can't I edit a Project?
If your developer account was set up as a team account, you will not be able to edit a Project unless you are an administrator of the account.
If you have Academic Research access, you will not be able to edit the details of the Project you used to apply for access.
Why can I see an App in a Project, but none of its details?
If you are on a team, you may view the details of, edit, or manage keys for someone else's App in a team account's Project due to privacy reasons. In this case, you will only be able to see the App name and owner’s name so that you can contact them.
How do I transfer ownership of my Twitter App to another account?
You can transfer your Twitter App to another account by selecting 'I need to transfer an API key to another account' when filling out this form. Please note that if Apps are transferred from one account to another, the receiving account must have Elevated access in order to view the App within the developer portal.
Where are my keys and tokens?
You can access your keys and tokens inside of the Projects & Apps section of the developer portal, by clicking on an App. It is important to note that we recently stopped showing your keys and tokens in your Twitter developer App dashboard other than when you first generate or regenerate your credentials. You will need to store your keys and tokens securely. If you lost your keys and/or tokens, or believe that they have been compromised, you should regenerate your keys and tokens via the App dashboard. Note that regenerating your keys and tokens will invalidate any previous keys and tokens and you may need to rewrite and/or redeploy existing code.
Why are my App permissions set to Read-only?
The default permission settings for OAuth1.0 for a new App will be set to Read-only. Your App settings can be updated on the specific App settings from the projects and Apps page in the developer portal. Look for the gear icon to drill down into the specific App settings. You will need to Edit "User authentication settings" in order to use Read & Write or Read, Write & Direct messages permissions. The Keys & Tokens screen will allow you to regenerate your credentials for the new permission setting if you have updated your permissions on the App level. Review our documentation on App permissions.
Note that there are multiple types of Authentication with Twitter API, as listed in our documentation.
- OAuth1.0a (user context, used with v1.1 and v2)
- OAuth2.0 (Bearer token, app only, used with v1.1 and v2)
- OAuth2.0 (Authorization code flow with PKCE, used with v2 only)
How do I regenerate my credentials?
It is possible to regenerate keys and tokens (also known as credentials) from within the developer portal. Credentials should be regenerated if App permissions change so that the credentials are updated for the new permissions setting. For example, if an App permission is changed from "Read-only" to "Read & Write", you will need to re-authenticate your App users. App owner user context Access Token & Secret can be regenerated from the developer portal. There is no way to look up currently active credentials in the developer portal, they must be regenerated.
To regenerate keys and tokens:
- Go to the developer portal
- Click on Projects & Apps on the left navigation
- Find the App name desired and click on it to show the Settings page for the App
- Switch from the "Settings" tab to the "Keys and tokens" tab
- Find the specific authentication needed and click Regenerate to create refreshed credentials
- Save these credentials securely
- The keys and tokens will now reflect the latest generated date, and permissions at the time of generation
I have a Twitter App that is owned by handle A, but I want to make a request on behalf of handle B. How do I do that?
It is true that you can generate an access token and secret within your Twitter App to be used by the owning user. You do not, however, need to have a developer account nor a Twitter App for you to generate an access token for them. Even if the user does have a developer account and Twitter Apps, you would not be able to use any of the access tokens that they generate from their Twitter Apps, because those tokens are meant to be used with their respective Twitter Apps.
To make a request on behalf of another user, you need to generate a new set of user access tokens that are specifically meant to be used by your Twitter App. To generate these access tokens, you must use the 3-legged OAuth flow and have the user authenticate or authorize your Twitter App. The third step in the 3-legged OAuth flow provides you a set of access tokens that you can use along with your consumer key and secret to make a request on behalf of that user with your Twitter App.
You should be able to do all of your development for a single organization with one developer account. If you have a single organization with multiple use cases, please create and use different Twitter Apps for those different use cases.
Why aren’t my Apps showing up in the developer portal?
Your Twitter Apps may have been provisioned through an account other than the one you’re logged in to or set up through automated means. Please submit a platform support request for further assistance.
I've been working with the Twitter API for a very long time, do I need to sign up for a developer account?
All developers will need to have a developer account to be able to utilize the benefits of Twitter API v2, create new Apps and Projects. To do this, you must first sign up for a developer account.If you have existing Apps, you will be able to view and edit them if you are logged into your Twitter account on developer.twitter.com.
I have a use case that requires more than 10 Apps. Why am I limited and how do I apply for an elevation?
We have limited accounts to a maximum of 10 Apps as an important step to combat spam and multi-key abuse. We recognize, however, that there are legitimate reasons for developers to have more than 10 Apps linked to their accounts. We suggest that you review our policy guidance on multiple Apps for the same use case to familiarize yourself with the types of App creation that are not policy-compliant. If, after reading this guide, you believe you may qualify for additional Apps beyond the 10 limit (or your current number of Apps, if it’s greater than 10) please complete the following steps:
If you haven’t already submitted a developer account application, please submit one. Please be as specific and detailed as possible to avoid additional requests for information and ensure a smooth review. You will also need to confirm your email address at the end of the application flow. Please make sure to pay attention to your email in case we need to clarify your use case.
While we review your developer account application, make sure we know the purpose of each of your individual Apps. Using developer.twitter.com, you can add a description of your App's use case(s) where it says “Tell us how this App will be used”.
Once you receive notice that your developer account is approved, you should submit an elevation request for each App that needs elevated App access:
Go to our API Policy Support Form
Open a case under the “I have an API policy question not covered by these points” category. (Be sure that you’re signed in from the @handle tied to the developer account that is requesting additional Apps.)
In the “Details” section of the form please provide the total number of Apps that you require, along with the specific use case for each App. We will not approve Apps that do not include a use case.
Submit the case, and complete instructions in follow up emails as requested.