Twilio - Studio icon

Twilio - Studio

This is the public Twilio REST API

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.1",
  "servers": [
    {
      "url": "https://studio.twilio.com"
    }
  ],
  "info": {
    "contact": {
      "email": "support@twilio.com",
      "name": "Twilio Support",
      "url": "https://support.twilio.com"
    },
    "description": "This is the public Twilio REST API.",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "https://www.twilio.com/legal/tos",
    "title": "Twilio - Studio",
    "version": "1.42.0",
    "x-apisguru-categories": [
      "telecom",
      "messaging"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_static1.twilio.com_marketing_bundles_marketing_img_logos_wordmark-red.svg"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_studio_v2.json",
        "version": "3.0"
      }
    ],
    "x-providerName": "twilio.com",
    "x-serviceName": "twilio_studio_v2"
  },
  "paths": {
    "/v2/Flows": {
      "description": "Studio flows",
      "get": {
        "description": "Retrieve a list of all Flows.",
        "operationId": "ListFlow",
        "parameters": [
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "flows": {
                      "items": {
                        "$ref": "#/components/schemas/studio.v2.flow"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "ListFlowResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "post": {
        "description": "Create a Flow.",
        "operationId": "CreateFlow",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "CommitMessage": {
                    "description": "Description of change made in the revision.",
                    "type": "string"
                  },
                  "Definition": {
                    "description": "JSON representation of flow definition."
                  },
                  "FriendlyName": {
                    "description": "The string that you assigned to describe the Flow.",
                    "type": "string"
                  },
                  "Status": {
                    "$ref": "#/components/schemas/flow_enum_status",
                    "description": "The status of the Flow. Can be: `draft` or `published`.",
                    "type": "string"
                  }
                },
                "required": [
                  "FriendlyName",
                  "Status",
                  "Definition"
                ],
                "title": "CreateFlowRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "status",
          "revision"
        ],
        "pathType": "list"
      }
    },
    "/v2/Flows/Validate": {
      "description": "Flow definition validator",
      "post": {
        "description": "Validate flow JSON definition",
        "operationId": "UpdateFlowValidate",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "CommitMessage": {
                    "description": "Description of change made in the revision.",
                    "type": "string"
                  },
                  "Definition": {
                    "description": "JSON representation of flow definition."
                  },
                  "FriendlyName": {
                    "description": "The string that you assigned to describe the Flow.",
                    "type": "string"
                  },
                  "Status": {
                    "$ref": "#/components/schemas/flow_validate_enum_status",
                    "description": "The status of the Flow. Can be: `draft` or `published`.",
                    "type": "string"
                  }
                },
                "required": [
                  "FriendlyName",
                  "Status",
                  "Definition"
                ],
                "title": "UpdateFlowValidateRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow_validate"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "valid"
        ],
        "mountName": "flow_validate",
        "pathType": "list"
      }
    },
    "/v2/Flows/{FlowSid}/Executions": {
      "description": "Executions of Studio flows",
      "get": {
        "description": "Retrieve a list of all Executions for the Flow.",
        "operationId": "ListExecution",
        "parameters": [
          {
            "description": "The SID of the Flow with the Execution resources to read.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "Only show Execution resources starting on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.",
            "in": "query",
            "name": "DateCreatedFrom",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Only show Execution resources starting before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.",
            "in": "query",
            "name": "DateCreatedTo",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "executions": {
                      "items": {
                        "$ref": "#/components/schemas/studio.v2.flow.execution"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "title": "ListExecutionResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "post": {
        "description": "Triggers a new Execution for the Flow",
        "operationId": "CreateExecution",
        "parameters": [
          {
            "description": "The SID of the Excecution's Flow.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "From": {
                    "description": "The Twilio phone number to send messages or initiate calls from during the Flow's Execution. Available as variable `{{flow.channel.address}}`. For SMS, this can also be a Messaging Service SID.",
                    "format": "phone-number",
                    "type": "string"
                  },
                  "Parameters": {
                    "description": "JSON data that will be added to the Flow's context and that can be accessed as variables inside your Flow. For example, if you pass in `Parameters={\"name\":\"Zeke\"}`, a widget in your Flow can reference the variable `{{flow.data.name}}`, which returns \"Zeke\". Note: the JSON value must explicitly be passed as a string, not as a hash object. Depending on your particular HTTP library, you may need to add quotes or URL encode the JSON string."
                  },
                  "To": {
                    "description": "The Contact phone number to start a Studio Flow Execution, available as variable `{{contact.channel.address}}`.",
                    "format": "phone-number",
                    "type": "string"
                  }
                },
                "required": [
                  "To",
                  "From"
                ],
                "title": "CreateExecutionRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution"
                }
              }
            },
            "description": "Created"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "status",
          "date_created"
        ],
        "parent": "/Flows/{Sid}",
        "pathType": "list"
      }
    },
    "/v2/Flows/{FlowSid}/Executions/{ExecutionSid}/Context": {
      "description": "JSON context for executions",
      "get": {
        "description": "Retrieve the most recent context for an Execution.",
        "operationId": "FetchExecutionContext",
        "parameters": [
          {
            "description": "The SID of the Flow with the Execution context to fetch.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution context to fetch.",
            "in": "path",
            "name": "ExecutionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution.execution_context"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "context"
        ],
        "mountName": "execution_context",
        "parent": "/Flows/{FlowSid}/Executions/{Sid}",
        "pathType": "instance"
      }
    },
    "/v2/Flows/{FlowSid}/Executions/{ExecutionSid}/Steps": {
      "description": "Individual steps within an execution",
      "get": {
        "description": "Retrieve a list of all Steps for an Execution.",
        "operationId": "ListExecutionStep",
        "parameters": [
          {
            "description": "The SID of the Flow with the Steps to read.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution with the Steps to read.",
            "in": "path",
            "name": "ExecutionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "steps": {
                      "items": {
                        "$ref": "#/components/schemas/studio.v2.flow.execution.execution_step"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListExecutionStepResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "execution_step",
        "defaultOutputProperties": [
          "sid",
          "name",
          "date_created"
        ],
        "parent": "/Flows/{FlowSid}/Executions/{Sid}",
        "pathType": "list"
      }
    },
    "/v2/Flows/{FlowSid}/Executions/{ExecutionSid}/Steps/{Sid}": {
      "description": "Individual steps within an execution",
      "get": {
        "description": "Retrieve a Step.",
        "operationId": "FetchExecutionStep",
        "parameters": [
          {
            "description": "The SID of the Flow with the Step to fetch.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution resource with the Step to fetch.",
            "in": "path",
            "name": "ExecutionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the ExecutionStep resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FT[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution.execution_step"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "execution_step",
        "defaultOutputProperties": [
          "sid",
          "name",
          "date_created"
        ],
        "parent": "/Flows/{FlowSid}/Executions/{Sid}",
        "pathType": "instance"
      }
    },
    "/v2/Flows/{FlowSid}/Executions/{ExecutionSid}/Steps/{StepSid}/Context": {
      "description": "JSON context for an individual step within an execution",
      "get": {
        "description": "Retrieve the context for an Execution Step.",
        "operationId": "FetchExecutionStepContext",
        "parameters": [
          {
            "description": "The SID of the Flow with the Step to fetch.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution resource with the Step to fetch.",
            "in": "path",
            "name": "ExecutionSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Step to fetch.",
            "in": "path",
            "name": "StepSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FT[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution.execution_step.execution_step_context"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "execution_step_context",
        "defaultOutputProperties": [
          "context"
        ],
        "mountName": "step_context",
        "parent": "/Flows/{FlowSid}/Executions/{ExecutionSid}/Steps/{Sid}",
        "pathType": "instance"
      }
    },
    "/v2/Flows/{FlowSid}/Executions/{Sid}": {
      "delete": {
        "description": "Delete the Execution and all Steps relating to it.",
        "operationId": "DeleteExecution",
        "parameters": [
          {
            "description": "The SID of the Flow with the Execution resources to delete.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "description": "Executions of Studio flows",
      "get": {
        "description": "Retrieve an Execution",
        "operationId": "FetchExecution",
        "parameters": [
          {
            "description": "The SID of the Flow with the Execution resource to fetch",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "post": {
        "description": "Update the status of an Execution to `ended`.",
        "operationId": "UpdateExecution",
        "parameters": [
          {
            "description": "The SID of the Flow with the Execution resources to update.",
            "in": "path",
            "name": "FlowSid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "The SID of the Execution resource to update.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FN[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "Status": {
                    "$ref": "#/components/schemas/execution_enum_status",
                    "description": "The status of the Execution. Can only be `ended`.",
                    "type": "string"
                  }
                },
                "required": [
                  "Status"
                ],
                "title": "UpdateExecutionRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.execution"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "status",
          "date_created"
        ],
        "parent": "/Flows/{Sid}",
        "pathType": "instance"
      }
    },
    "/v2/Flows/{Sid}": {
      "delete": {
        "description": "Delete a specific Flow.",
        "operationId": "DeleteFlow",
        "parameters": [
          {
            "description": "The SID of the Flow resource to delete.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "description": "Studio flows",
      "get": {
        "description": "Retrieve a specific Flow.",
        "operationId": "FetchFlow",
        "parameters": [
          {
            "description": "The SID of the Flow resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "post": {
        "description": "Update a Flow.",
        "operationId": "UpdateFlow",
        "parameters": [
          {
            "description": "The SID of the Flow resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "CommitMessage": {
                    "description": "Description of change made in the revision.",
                    "type": "string"
                  },
                  "Definition": {
                    "description": "JSON representation of flow definition."
                  },
                  "FriendlyName": {
                    "description": "The string that you assigned to describe the Flow.",
                    "type": "string"
                  },
                  "Status": {
                    "$ref": "#/components/schemas/flow_enum_status",
                    "description": "The status of the Flow. Can be: `draft` or `published`.",
                    "type": "string"
                  }
                },
                "required": [
                  "Status"
                ],
                "title": "UpdateFlowRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "status",
          "revision"
        ],
        "pathType": "instance"
      }
    },
    "/v2/Flows/{Sid}/Revisions": {
      "description": "Studio flows revisions",
      "get": {
        "description": "Retrieve a list of all Flows revisions.",
        "operationId": "ListFlowRevision",
        "parameters": [
          {
            "description": "The SID of the Flow resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "How many resources to return in each list page. The default is 50, and the maximum is 1000.",
            "in": "query",
            "name": "PageSize",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "The page index. This value is simply for client state.",
            "in": "query",
            "name": "Page",
            "schema": {
              "minimum": 0,
              "type": "integer"
            }
          },
          {
            "description": "The page token. This is provided by the API.",
            "in": "query",
            "name": "PageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "meta": {
                      "properties": {
                        "first_page_url": {
                          "format": "uri",
                          "type": "string"
                        },
                        "key": {
                          "type": "string"
                        },
                        "next_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "page": {
                          "type": "integer"
                        },
                        "page_size": {
                          "type": "integer"
                        },
                        "previous_page_url": {
                          "format": "uri",
                          "nullable": true,
                          "type": "string"
                        },
                        "url": {
                          "format": "uri",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "revisions": {
                      "items": {
                        "$ref": "#/components/schemas/studio.v2.flow.flow_revision"
                      },
                      "type": "array"
                    }
                  },
                  "title": "ListFlowRevisionResponse",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "flow_revision",
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "status",
          "revision"
        ],
        "parent": "/Flows/{Sid}",
        "pathType": "list"
      }
    },
    "/v2/Flows/{Sid}/Revisions/{Revision}": {
      "description": "Studio flows revisions",
      "get": {
        "description": "Retrieve a specific Flow revision.",
        "operationId": "FetchFlowRevision",
        "parameters": [
          {
            "description": "The SID of the Flow resource to fetch.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          },
          {
            "description": "Specific Revision number or can be `LatestPublished` and `LatestRevision`.",
            "in": "path",
            "name": "Revision",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.flow_revision"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "flow_revision",
        "defaultOutputProperties": [
          "sid",
          "friendly_name",
          "status",
          "revision"
        ],
        "parent": "/Flows/{Sid}",
        "pathType": "instance"
      }
    },
    "/v2/Flows/{Sid}/TestUsers": {
      "description": "Test users of a flow",
      "get": {
        "description": "Fetch flow test users",
        "operationId": "FetchTestUser",
        "parameters": [
          {
            "description": "Unique identifier of the flow.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.test_user"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "post": {
        "description": "Update flow test users",
        "operationId": "UpdateTestUser",
        "parameters": [
          {
            "description": "Unique identifier of the flow.",
            "in": "path",
            "name": "Sid",
            "required": true,
            "schema": {
              "maxLength": 34,
              "minLength": 34,
              "pattern": "^FW[0-9a-fA-F]{32}$",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "TestUsers": {
                    "description": "List of test user identities that can test draft versions of the flow.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "TestUsers"
                ],
                "title": "UpdateTestUserRequest",
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/studio.v2.flow.test_user"
                }
              }
            },
            "description": "OK"
          }
        },
        "security": [
          {
            "accountSid_authToken": []
          }
        ],
        "x-maturity": [
          "GA"
        ]
      },
      "servers": [
        {
          "url": "https://studio.twilio.com"
        }
      ],
      "x-twilio": {
        "className": "flow_test_user",
        "defaultOutputProperties": [
          "test_users"
        ],
        "parent": "/Flows/{Sid}",
        "pathType": "instance"
      }
    }
  },
  "components": {
    "schemas": {
      "execution_enum_status": {
        "enum": [
          "active",
          "ended"
        ],
        "type": "string"
      },
      "flow_enum_status": {
        "enum": [
          "draft",
          "published"
        ],
        "type": "string"
      },
      "flow_revision_enum_status": {
        "enum": [
          "draft",
          "published"
        ],
        "type": "string"
      },
      "flow_validate_enum_status": {
        "enum": [
          "draft",
          "published"
        ],
        "type": "string"
      },
      "studio.v2.flow": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Flow resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "commit_message": {
            "description": "Description of change made in the revision.",
            "nullable": true,
            "type": "string"
          },
          "date_created": {
            "description": "The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "definition": {
            "description": "JSON representation of flow definition.",
            "nullable": true
          },
          "errors": {
            "description": "List of error in the flow definition.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "friendly_name": {
            "description": "The string that you assigned to describe the Flow.",
            "nullable": true,
            "type": "string"
          },
          "links": {
            "description": "The URLs of the Flow's nested resources.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "revision": {
            "description": "The latest revision number of the Flow's definition.",
            "nullable": true,
            "type": "integer"
          },
          "sid": {
            "description": "The unique string that we created to identify the Flow resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/flow_enum_status",
            "description": "The status of the Flow. Can be: `draft` or `published`.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "valid": {
            "description": "Boolean if the flow definition is valid.",
            "nullable": true,
            "type": "boolean"
          },
          "warnings": {
            "description": "List of warnings in the flow definition.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "webhook_url": {
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.execution": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Execution resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "contact_channel_address": {
            "description": "The phone number, SIP address or Client identifier that triggered the Execution. Phone numbers are in E.164 format (e.g. +16175551212). SIP addresses are formatted as `name@company.com`. Client identifiers are formatted `client:name`.",
            "nullable": true,
            "type": "string"
          },
          "context": {
            "description": "The current state of the Flow's Execution. As a flow executes, we save its state in this context. We save data that your widgets can access as variables in configuration fields or in text areas as variable substitution.",
            "nullable": true
          },
          "date_created": {
            "description": "The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "flow_sid": {
            "description": "The SID of the Flow.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "links": {
            "description": "The URLs of nested resources.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "sid": {
            "description": "The unique string that we created to identify the Execution resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/execution_enum_status",
            "description": "The status of the Execution. Can be: `active` or `ended`.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.execution.execution_context": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the ExecutionContext resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "context": {
            "description": "The current state of the Flow's Execution. As a flow executes, we save its state in this context. We save data that your widgets can access as variables in configuration fields or in text areas as variable substitution.",
            "nullable": true
          },
          "execution_sid": {
            "description": "The SID of the context's Execution resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "flow_sid": {
            "description": "The SID of the Flow.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.execution.execution_step": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the ExecutionStep resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "context": {
            "description": "The current state of the Flow's Execution. As a flow executes, we save its state in this context. We save data that your widgets can access as variables in configuration fields or in text areas as variable substitution.",
            "nullable": true
          },
          "date_created": {
            "description": "The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "execution_sid": {
            "description": "The SID of the Step's Execution resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "flow_sid": {
            "description": "The SID of the Flow.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "links": {
            "description": "The URLs of related resources.",
            "format": "uri-map",
            "nullable": true,
            "type": "object"
          },
          "name": {
            "description": "The event that caused the Flow to transition to the Step.",
            "nullable": true,
            "type": "string"
          },
          "sid": {
            "description": "The unique string that we created to identify the ExecutionStep resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FT[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "transitioned_from": {
            "description": "The Widget that preceded the Widget for the Step.",
            "nullable": true,
            "type": "string"
          },
          "transitioned_to": {
            "description": "The Widget that will follow the Widget for the Step.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.execution.execution_step.execution_step_context": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the ExecutionStepContext resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "context": {
            "description": "The current state of the Flow's Execution. As a flow executes, we save its state in this context. We save data that your widgets can access as variables in configuration fields or in text areas as variable substitution.",
            "nullable": true
          },
          "execution_sid": {
            "description": "The SID of the context's Execution resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FN[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "flow_sid": {
            "description": "The SID of the Flow.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "step_sid": {
            "description": "The SID of the Step that the context is associated with.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FT[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.flow_revision": {
        "properties": {
          "account_sid": {
            "description": "The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Flow resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^AC[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "commit_message": {
            "description": "Description of change made in the revision.",
            "nullable": true,
            "type": "string"
          },
          "date_created": {
            "description": "The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_updated": {
            "description": "The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "definition": {
            "description": "JSON representation of flow definition.",
            "nullable": true
          },
          "errors": {
            "description": "List of error in the flow definition.",
            "items": {},
            "nullable": true,
            "type": "array"
          },
          "friendly_name": {
            "description": "The string that you assigned to describe the Flow.",
            "nullable": true,
            "type": "string"
          },
          "revision": {
            "description": "The latest revision number of the Flow's definition.",
            "nullable": true,
            "type": "integer"
          },
          "sid": {
            "description": "The unique string that we created to identify the Flow resource.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/flow_revision_enum_status",
            "description": "The status of the Flow. Can be: `draft` or `published`.",
            "nullable": true,
            "type": "string"
          },
          "url": {
            "description": "The absolute URL of the resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          },
          "valid": {
            "description": "Boolean if the flow definition is valid.",
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "studio.v2.flow.test_user": {
        "properties": {
          "sid": {
            "description": "Unique identifier of the flow.",
            "maxLength": 34,
            "minLength": 34,
            "nullable": true,
            "pattern": "^FW[0-9a-fA-F]{32}$",
            "type": "string"
          },
          "test_users": {
            "description": "List of test user identities that can test draft versions of the flow.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "url": {
            "description": "The URL of this resource.",
            "format": "uri",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "studio.v2.flow_validate": {
        "properties": {
          "valid": {
            "description": "Boolean if the flow definition is valid.",
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "accountSid_authToken": {
        "scheme": "basic",
        "type": "http"
      }
    }
  },
  "x-maturity": [
    {
      "description": "This product is Generally Available.",
      "name": "GA"
    }
  ]
}