# File Submission Two `POST` request formats can be used to submit a file: `application/json` or `multipart/form-data`. ## JSON This is the preferred method of file submission. It uses the `source_config` request parameter to provide a direct download URL to the Rev AI server. This method supports the use of pre-signed URLs. Links to videos hosted on platforms like YouTube are not valid because they are not direct download links. To submit a download URL with restricted access, authorization headers can be provided in the `source_config` parameter. More details on the `source_config` parameter can be found on the [submission details page](/api/asynchronous/). Signed URLs usually have an expiration time which is configurable. To ensure the Rev AI server can access the link, make sure the expiration time is set to 2 hours or more. In the event you plan on resending the same file, make sure to generate a new pre-signed URL. ## Form data This method can be used to send a local file to the Rev AI server directly from the host machine as a `multipart/form-data` request. ## Limits The following default limits apply per user, per endpoint for the Asynchronous Speech-to-Text API: - 10,000 transcription requests submitted every 10 minutes. - 500 transcriptions processed every 10 minutes. Any submissions over this will be accepted but put into a queue and not started until the next interval. - Maximum audio duration of 17 hours. - File uploads submitted as `multipart/form-data` requests to the `/jobs` endpoint have a concurrency limit of 5 and a file size limit of 2 GB per request. - File uploads via the Rev AI dashboard or using the `source_config` job parameter have a file size limit of 5 TB.