# Refresh access token Use the refresh token to generate another access token for the same set of scopes. Using a refresh token, your app can create up to ten access tokens in a span of ten minutes. If the limit is reached, the access token creation will be blocked for the rest of the ten minutes. For more information, refer to [Token limits](https://www.zoho.com/accounts/protocol/oauth/token-limits.html). ## Query parameters | Parameter | Description | |---|---| | `client_id` | required

The unique ID of your application. You can find this in the [API console](https://api-console.zoho.com/). | | `client_secret` | required

The unique secret for your app which is known only to your app and Zoho. You can find this in the [API console](https://api-console.zoho.com/). | | `grant_type` | required

Should be sent with the value `refresh_token`. | | `refresh_token` | required

The refresh token you received after you made the [polling request](https://www.zoho.com/accounts/protocol/oauth/devices/polling-request.html). | ## Response parameters | Parameter | Description | |---|---| | `access_token` | A token that your app needs to access the resources (as defined by the requested scopes). This token is valid for 1 hour. | | `api_domain` | The domain to which your app needs to make API requests, for accessing the protected resources. | | `token_type` | Indicates the type of access token that is generated. The access tokens issued by Zoho are [Bearer](https://datatracker.ietf.org/doc/html/rfc6750) tokens. When your app makes API requests to access the protected resources, access tokens need to be sent using the "Authorization" header.

Syntax:
`Authorization: Zoho-oauthtoken {access token}` | | `expires_in` | Indicates the time (in seconds) in which the access token expires. The lifetime of an access token is **1 hour** (3600 seconds). | ## Error codes | Error | Reasons | |---|---| | `invalid_client` | - The accounts-server URL is invalid. Check if the URL is corresponding to the user's datacenter location. [See all URLs](https://accounts.zoho.com/oauth/serverinfo)
- The parameter `client_id` is missing or its value is invalid.
- The value of the parameter `grant_type` is invalid. It must be `refresh_token`. | | `invalid_client_secret` | - The parameter `client_secret` is missing or its value is invalid. | | `invalid_code` | - The parameter `refresh_token` is missing or its value is invalid.
- The value of the parameter `grant_type` is incorrect. It must be `refresh_token`.
- The refresh token used is already revoked. Learn more | | `400 Bad Request` | - The HTTP method used is incorrect. It must be POST.
- The parameter `grant_type` is missing. | ## Endpoint ``` POST {accounts-server-url}/oauth/v2/token ``` **Note**: The [accounts-server-url](https://accounts.zoho.com/oauth/serverinfo) is specific to the location (i.e., datacenter) where the user is present. ## Request example ```curl https://accounts.zoho.com/oauth/v2/token ?grant_type=refresh_token &client_id=1000.GMB0YULZHJK411284S8I5GZ4CHUEX0 &client_secret=122c324d3496d5d7eeebc129470715fbb856b7 &refresh_token=1000.86a03ca5dbfccb7445889b8215efb0.cad1ae4989a1196fe05aa729fcb4e1 ``` ## Response example ```json { "access_token": "1004.ce70fccd3edf901d37859fe5124ae975.f61ca1a9d7979387cc02fb3f279", "api_domain": "https://www.zohoapis.com", "token_type": "Bearer", "expires_in": 3600 } ```