In May 2023, a new suite of GraphQL APIs replaced our existing REST APIs. All existing integrations with Upwork REST APIs needed to be migrated to our GraphQL APIs by December 15, 2023, for those integrations to continue working. Starting December 15th, 2023 we will begin shutting off access to the REST APIs, with all REST APIs being shut off by January 31st, 2024.
Your API Key
If you have an existing OAuth1 key, you will need to request a new OAuth2 API key. We no longer support OAuth1. If you have an existing OAuth2 API key, you don’t need to request a new OAuth2 key, but it may be simpler and cleaner to request a new OAuth2 key for each distinct integration. To request a new OAuth2 API key:
- Fill out this form
- Read and accept the API Terms, select Submit, and your API key request will be sent for review
How to migrate an existing REST API integration to GraphQL
- If you don’t already have one, you’ll need to request a new API key
- Once approved, you’re ready to get started. For guidance on getting started, including best practices for OAuth2 and permissions setup, visit our API documentation site.
- From there, you’re ready to build, test, and deploy your integration. We have a number of tools and resources to aid you during your development, including libraries, a GraphQL Explorer tool to test query responses, and other features.
We don't currently provide a separate test environment for Upwork APIs for our external clients, but we’ve built tools and resources to aid you during development. Learn more about why we don’t provide testing.
Frequently Asked Questions
For your convenience, all of our API resources are documented here. They are categorized and named based on their functionality.
If you have an existing integration with our REST APIs, your integration will lose access to those REST APIs and will stop working by the end of January 2024.
If you have an existing OAuth1 API Key, you will need to request a new OAuth2 API key because we no longer support OAuth1. If you already have an OAuth2 API key you do not need to request a new one, but it may be simpler and cleaner to request a new OAuth2 Key for each distinct integration. Request a new OAuth2 API key here.
If you’re experiencing problems, please reach out to our support team.