This API has two different kinds of endpoint URIs, as this method supports a variety of use cases.
TheMetadataURI is used for most interactions, as it accepts the job configuration directly.
TheUploadURI is ONLY for the case when you're sending both a load job configuration and a data stream together. In this case, the Upload URI accepts the job configuration and the data as two distinct multipart MIME parts.
HTTP request
Upload URI, for media upload requests: POST https://bigquery.googleapis.com/upload/bigquery/v2/projects/{projectId}/jobs
Metadata URI, for metadata-only requests: POST https://bigquery.googleapis.com/bigquery/v2/projects/{projectId}/jobs
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-02 UTC."],[[["\u003cp\u003eThis API endpoint initiates a new asynchronous job, offering two distinct URI types: Metadata and Upload.\u003c/p\u003e\n"],["\u003cp\u003eThe Metadata URI handles standard interactions by accepting the job configuration directly, while the Upload URI is specifically for simultaneous transmission of both job configuration and a data stream.\u003c/p\u003e\n"],["\u003cp\u003eThe request utilizes either the Metadata URI (\u003ccode\u003ePOST https://bigquery.googleapis.com/bigquery/v2/projects/{projectId}/jobs\u003c/code\u003e) or the Upload URI (\u003ccode\u003ePOST https://bigquery.googleapis.com/upload/bigquery/v2/projects/{projectId}/jobs\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eBoth the request and response bodies utilize the \u003ccode\u003eJob\u003c/code\u003e resource.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization requires one of several specified OAuth scopes, including \u003ccode\u003ehttps://www.googleapis.com/auth/bigquery\u003c/code\u003e or \u003ccode\u003ehttps://www.googleapis.com/auth/cloud-platform\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Method: jobs.insert\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nStarts a new asynchronous job.\n\nThis API has two different kinds of endpoint URIs, as this method supports a variety of use cases.\n\n- The *Metadata* URI is used for most interactions, as it accepts the job configuration directly.\n- The *Upload* URI is ONLY for the case when you're sending both a load job configuration and a data stream together. In this case, the Upload URI accepts the job configuration and the data as two distinct multipart MIME parts.\n\n### HTTP request\n\n- Upload URI, for media upload requests: \n `POST https://bigquery.googleapis.com/upload/bigquery/v2/projects/{projectId}/jobs`\n- Metadata URI, for metadata-only requests: \n `POST https://bigquery.googleapis.com/bigquery/v2/projects/{projectId}/jobs`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains an instance of [Job](/bigquery/docs/reference/rest/v2/Job).\n\n### Response body\n\nIf successful, the response body contains an instance of [Job](/bigquery/docs/reference/rest/v2/Job).\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/bigquery`\n- `https://www.googleapis.com/auth/cloud-platform`\n- `https://www.googleapis.com/auth/devstorage.full_control`\n- `https://www.googleapis.com/auth/devstorage.read_only`\n- `https://www.googleapis.com/auth/devstorage.read_write`\n\nFor more information, see the [Authentication Overview](/docs/authentication#authorization-gcp)."]]