{ "components": { "securitySchemes": { "accountSid_authToken": { "scheme": "basic", "type": "http" } }, "schemas": { "oauth.v1.authorize": { "type": "object", "properties": { "redirect_to": { "type": "string", "format": "uri", "nullable": true, "description": "The callback URL" } } }, "oauth.v1.token": { "type": "object", "properties": { "access_token": { "type": "string", "nullable": true, "description": "Token which carries the necessary information to access a Twilio resource directly." }, "refresh_token": { "type": "string", "nullable": true, "description": "Token which carries the information necessary to get a new access token." }, "id_token": { "type": "string", "nullable": true, "description": "Token which carries the information necessary of user profile." }, "token_type": { "type": "string", "nullable": true, "description": "Token type" }, "expires_in": { "type": "integer", "format": "int64", "nullable": true } } } } }, "info": { "title": "Twilio - Oauth", "description": "This is the public Twilio REST API.", "termsOfService": "https://www.twilio.com/legal/tos", "contact": { "name": "Twilio Support", "url": "https://support.twilio.com", "email": "support@twilio.com" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "1.0.0" }, "openapi": "3.0.1", "paths": { "/v1/authorize": { "servers": [ { "url": "https://oauth.twilio.com" } ], "description": "", "x-twilio": { "defaultOutputProperties": [ "redirect_to" ], "pathType": "list" }, "get": { "description": "Retrieves authorize uri", "tags": [ "OauthV1Authorize" ], "parameters": [ { "name": "ResponseType", "in": "query", "description": "Response Type", "schema": { "type": "string" }, "examples": { "fetch": { "value": "code" } } }, { "name": "ClientId", "in": "query", "description": "The Client Identifier", "schema": { "type": "string" }, "examples": { "fetch": { "value": "OQ7cda1a615f05a95634e643aaaf7081d7" } } }, { "name": "RedirectUri", "in": "query", "description": "The url to which response will be redirected to", "schema": { "type": "string" }, "examples": { "fetch": { "value": "www.twilio.com" } } }, { "name": "Scope", "in": "query", "description": "The scope of the access request", "schema": { "type": "string" }, "examples": { "fetch": { "value": "offline_access" } } }, { "name": "State", "in": "query", "description": "An opaque value which can be used to maintain state between the request and callback", "schema": { "type": "string" }, "examples": { "fetch": { "value": "xvz" } } } ], "responses": { "302": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/oauth.v1.authorize" }, "examples": { "fetch": { "value": { "redirect_to": "https://www.twilio.com/authorize?response_type=code&client_id=OQ7cda1a615f05a95634e643aaaf7081d7&redirect_uri=www.twilio.com&scope=offline_access&state=xvz" } } } } }, "headers": { "Access-Control-Allow-Origin": { "description": "Specify the origin(s) allowed to access the resource", "schema": { "type": "string" }, "example": "*" }, "Access-Control-Allow-Methods": { "description": "Specify the HTTP methods allowed when accessing the resource", "schema": { "type": "string" }, "example": "POST, OPTIONS" }, "Access-Control-Allow-Headers": { "description": "Specify the headers allowed when accessing the resource", "schema": { "type": "string" }, "example": "Content-Type, Authorization" }, "Access-Control-Allow-Credentials": { "description": "Indicates whether the browser should include credentials", "schema": { "type": "boolean" } }, "Access-Control-Expose-Headers": { "description": "Headers exposed to the client", "schema": { "type": "string", "example": "X-Custom-Header1, X-Custom-Header2" } } }, "description": "Found" } }, "security": [], "operationId": "FetchAuthorize" } }, "/v1/token": { "servers": [ { "url": "https://oauth.twilio.com" } ], "description": "", "x-twilio": { "defaultOutputProperties": [], "pathType": "list" }, "post": { "description": "Issues a new Access token (optionally identity_token & refresh_token) in exchange of Oauth grant", "tags": [ "OauthV1Token" ], "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/oauth.v1.token" }, "examples": { "create": { "value": { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "refresh_token": "ghjbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "id_token": "eyJhbdGciOiIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "expires_in": 1438315200000, "token_type": "bearer" } } } } }, "headers": { "Access-Control-Allow-Origin": { "description": "Specify the origin(s) allowed to access the resource", "schema": { "type": "string" }, "example": "*" }, "Access-Control-Allow-Methods": { "description": "Specify the HTTP methods allowed when accessing the resource", "schema": { "type": "string" }, "example": "POST, OPTIONS" }, "Access-Control-Allow-Headers": { "description": "Specify the headers allowed when accessing the resource", "schema": { "type": "string" }, "example": "Content-Type, Authorization" }, "Access-Control-Allow-Credentials": { "description": "Indicates whether the browser should include credentials", "schema": { "type": "boolean" } }, "Access-Control-Expose-Headers": { "description": "Headers exposed to the client", "schema": { "type": "string", "example": "X-Custom-Header1, X-Custom-Header2" } } }, "description": "Created" } }, "security": [], "operationId": "CreateToken", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", "title": "CreateTokenRequest", "properties": { "GrantType": { "type": "string", "description": "Grant type is a credential representing resource owner's authorization which can be used by client to obtain access token." }, "ClientId": { "type": "string", "description": "A 34 character string that uniquely identifies this OAuth App." }, "ClientSecret": { "type": "string", "description": "The credential for confidential OAuth App." }, "Code": { "type": "string", "description": "JWT token related to the authorization code grant type." }, "RedirectUri": { "type": "string", "description": "The redirect uri" }, "Audience": { "type": "string", "description": "The targeted audience uri" }, "RefreshToken": { "type": "string", "description": "JWT token related to refresh access token." }, "Scope": { "type": "string", "description": "The scope of token" } }, "required": [ "GrantType", "ClientId" ] }, "examples": { "create": { "value": { "ClientId": "OQ7cda1a615f05a95634e643aaaf7081d7", "ClientSecret": "sUWblrQ4wx_aYkdAWjHXNvHinynkYOgBoiRyEQUeEntpgDEG47qnBFD98yoEzsTh", "GrantType": "client_credentials", "RedirectUri": "", "Audience": "", "Code": "", "RefreshToken": "refresh_token", "Scope": "scope" } } } } } } } } }, "servers": [ { "url": "https://oauth.twilio.com" } ], "tags": [ { "name": "OauthV1Authorize" }, { "name": "OauthV1Token" } ], "security": [ { "accountSid_authToken": [] } ] }