> ## Documentation Index > Fetch the complete documentation index at: https://support.jacquard.com/llms.txt > Use this file to discover all available pages before exploring further. # Update/Submit split test results for a campaign > Updates language variant records with results of testing. Not all campaign fields are updateable by this endpoint. ## OpenAPI ````json PUT /v2/campaigns/{campaignid}/variants { "openapi": "3.0.0", "info": { "title": "Jacquard Connect API", "description": "# Jacquard - Connect API\n\nConnect is an API to give access to Jacquard services. Using connect clients can access basic reference data, submit results, and utilise the continuous optimisation service.\n\n## Glossary\n\n- Account – the holder for a given company\n \n- Project – a collection of Jacquard experiments linked\n \n- Campaign – an individual split test containing generated language variants\n \n- User – users are granted access to a specified list of projects within Jacquard users can access any campaigns that were created within the projects that they have access to\n \n- Access tokens\n \n\n```\nTo access the Connect API you will need a valid bearer token passed in the Authorization header of your requests. There are 2 types of tokens: Access tokens come in 2 types, user and server. User tokens are generated automatically by a user logging into the Jacquard UI. Server access tokens are generated by Jacquard and provided to clients on an ad hoc basis. \nJacquard provides a facility to generate access tokens these tokens are granted permissions to access specified projects within an account when accessing the API. There could either be a single token with access to the entire account EG for a centralised email ops team. Or multiple tokens with access to specific projects for de-centralised email ops teams. \nUser access tokens can be refreshed in the Jacquard UI and will expire after 2 weeks. Server access tokens do not have an expiry setting.\n\n ```\n\nContact Support: \nEmail: [support@jacquard.com](https://mailto:support@jacquard.com)", "version": "1.0.0" }, "servers": [ { "url": "https://connect.phrasee.co" } ], "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "auth" }, { "name": "auth > check" }, { "name": "accounts" }, { "name": "accounts > {accountid}" }, { "name": "accounts > {accountid} > users" }, { "name": "accounts > {accountid} > projects" }, { "name": "users" }, { "name": "users > {userid}" }, { "name": "users > {userid} > projects" }, { "name": "projects" }, { "name": "projects > {projectid}" }, { "name": "projects > {projectid} > campaigns" }, { "name": "campaigns" }, { "name": "campaigns > {campaignid}" }, { "name": "campaigns > {campaignid} > variants" }, { "name": "results" }, { "name": "results > campaigns" }, { "name": "results > campaigns > {campaign_id}" }, { "name": "variants" }, { "name": "variants > {variantid}" }, { "name": "Dynamic optimization" }, { "name": "Dynamic optimization > Dynamic optimization" }, { "name": "Dynamic optimization > Dynamic optimization > campaigns" }, { "name": "Dynamic optimization > Dynamic optimization > campaigns > {campaign_id}" }, { "name": "Dynamic optimization > Dynamic optimization > campaigns > {campaign_id} > batch-trigger" }, { "name": "live" }, { "name": "live > single_variant" } ], "paths": { "/v2/campaigns/{campaignid}/variants": { "put": { "tags": [ "campaigns > {campaignid} > variants" ], "summary": "Update/Submit split test results for a campaign", "description": "Updates language variant records with results of testing. Not all campaign fields are updateable by this endpoint.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "example": [ { "language_variant_id": "5c07e39e477ca9289615b441", "campaign_id": "59807ed854b8891947e04303", "text": "We thought you'd like this... You can check these Batmobiles off your wish list!", "project_id": "59807ed854b8891947e04303", "created_date_time": "2016-03-15T06:08:27.928Z", "last_updated": "2016-03-15T06:08:27.928Z", "variant_sent_time": "2016-03-15T06:08:27.928Z", "results_at": "2016-03-15T06:08:27.928Z", "is_user_language_variant": false, "number_of_recipients": 666, "number_of_unsubs": 452, "unsub_rate": 55, "unique_opens": 56, "unique_open_rate": 8.41, "unique_clicks": 55, "unique_click_rate": 8.26, "is_winning_line": false, "status": "live" }, { "language_variant_id": "5c07e39e477ca9289615b441", "campaign_id": "59807ed854b8891947e04303", "text": "We thought you'd like this... You can check these Batmobiles off your wish list!", "project_id": "59807ed854b8891947e04303", "created_date_time": "2016-03-15T06:08:27.928Z", "last_updated": "2016-03-15T06:08:27.928Z", "variant_sent_time": "2016-03-15T06:08:27.928Z", "results_at": "2016-03-15T06:08:27.928Z", "is_user_language_variant": false, "number_of_recipients": 666, "number_of_unsubs": 452, "unsub_rate": 55, "unique_opens": 56, "unique_open_rate": 8.41, "unique_clicks": 55, "unique_click_rate": 8.26, "is_winning_line": false, "status": "live" } ] } } } }, "parameters": [ { "name": "Content-Type", "in": "header", "schema": { "type": "string" }, "example": "application/json" }, { "name": "auto_approval", "in": "query", "schema": { "type": "boolean" }, "description": "(Required) Should we auto approve the campaign", "example": "true" }, { "name": "campaignid", "in": "path", "schema": { "type": "string" }, "required": true, "description": "(Required) Campaign ID", "example": "ad Ut" } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "string" }, "example": "" } } }, "401": { "description": "Unauthorized", "content": { "text/plain": { "schema": { "type": "string" }, "example": "" } } }, "403": { "description": "Forbidden", "content": { "text/plain": { "schema": { "type": "string" }, "example": "" } } }, "409": { "description": "Conflict", "content": { "text/plain": { "schema": { "type": "string" }, "example": "" } } }, "500": { "description": "Internal Server Error", "content": { "text/plain": { "schema": { "type": "string" }, "example": "" } } } } } } }, "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer" } } } } ````