openapi: 3.0.1 info: title: Twilio - Accounts A2p Credentials API 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.52.0 servers: - url: https://accounts.twilio.com tags: - name: Credentials paths: /v1/Credentials/AWS: servers: - url: https://accounts.twilio.com description: User provided AWS keys x-twilio: defaultOutputProperties: - sid - friendly_name - date_created pathType: list parent: /Credentials get: description: Retrieves a collection of AWS Credentials belonging to the account used to make the request tags: - Credentials parameters: - name: PageSize in: query description: How many resources to return in each list page. The default is 50, and the maximum is 1000. schema: type: integer minimum: 1 maximum: 1000 - name: Page in: query description: The page index. This value is simply for client state. schema: type: integer minimum: 0 - name: PageToken in: query description: The page token. This is provided by the API. schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCredentialAwsResponse' description: OK security: - accountSid_authToken: [] operationId: ListCredentialAws x-maturity: - GA post: description: Create a new AWS Credential tags: - Credentials responses: '201': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_aws' description: Created security: - accountSid_authToken: [] operationId: CreateCredentialAws x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCredentialAwsRequest' /v1/Credentials/AWS/{Sid}: servers: - url: https://accounts.twilio.com description: User provided AWS keys x-twilio: defaultOutputProperties: - sid - friendly_name - date_created pathType: instance parent: /Credentials get: description: Fetch the AWS credentials specified by the provided Credential Sid tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the AWS resource to fetch. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_aws' description: OK security: - accountSid_authToken: [] operationId: FetchCredentialAws x-maturity: - GA post: description: Modify the properties of a given Account tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the AWS resource to update. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_aws' description: OK security: - accountSid_authToken: [] operationId: UpdateCredentialAws x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateCredentialAwsRequest' delete: description: Delete a Credential from your account tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the AWS resource to delete. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '204': description: The resource was deleted successfully. security: - accountSid_authToken: [] operationId: DeleteCredentialAws x-maturity: - GA /v1/Credentials/PublicKeys: servers: - url: https://accounts.twilio.com description: User provided public keys x-twilio: defaultOutputProperties: - sid - friendly_name - date_created pathType: list parent: /Credentials mountName: public_key get: description: Retrieves a collection of Public Key Credentials belonging to the account used to make the request tags: - Credentials parameters: - name: PageSize in: query description: How many resources to return in each list page. The default is 50, and the maximum is 1000. schema: type: integer minimum: 1 maximum: 1000 - name: Page in: query description: The page index. This value is simply for client state. schema: type: integer minimum: 0 - name: PageToken in: query description: The page token. This is provided by the API. schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCredentialPublicKeyResponse' description: OK security: - accountSid_authToken: [] operationId: ListCredentialPublicKey x-maturity: - GA post: description: Create a new Public Key Credential tags: - Credentials responses: '201': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_public_key' description: Created security: - accountSid_authToken: [] operationId: CreateCredentialPublicKey x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCredentialPublicKeyRequest' /v1/Credentials/PublicKeys/{Sid}: servers: - url: https://accounts.twilio.com description: User provided public keys x-twilio: defaultOutputProperties: - sid - friendly_name - date_created pathType: instance parent: /Credentials mountName: public_key get: description: Fetch the public key specified by the provided Credential Sid tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the PublicKey resource to fetch. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_public_key' description: OK security: - accountSid_authToken: [] operationId: FetchCredentialPublicKey x-maturity: - GA post: description: Modify the properties of a given Account tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the PublicKey resource to update. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/accounts.v1.credential.credential_public_key' description: OK security: - accountSid_authToken: [] operationId: UpdateCredentialPublicKey x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateCredentialPublicKeyRequest' delete: description: Delete a Credential from your account tags: - Credentials parameters: - name: Sid in: path description: The Twilio-provided string that uniquely identifies the PublicKey resource to delete. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '204': description: The resource was deleted successfully. security: - accountSid_authToken: [] operationId: DeleteCredentialPublicKey x-maturity: - GA /v1/Credentials: servers: - url: https://conversations.twilio.com description: A Credential resource represents a push notification credential. x-twilio: defaultOutputProperties: - sid - friendly_name - type pathType: list post: description: Add a new push notification credential to your account tags: - Credentials responses: '201': content: application/json: schema: $ref: '#/components/schemas/conversations.v1.credential' description: Created security: - accountSid_authToken: [] operationId: CreateCredential x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCredentialRequest' get: description: Retrieve a list of all push notification credentials on your account tags: - Credentials parameters: - name: PageSize in: query description: How many resources to return in each list page. The default is 50, and the maximum is 1000. schema: type: integer minimum: 1 maximum: 1000 - name: Page in: query description: The page index. This value is simply for client state. schema: type: integer minimum: 0 - name: PageToken in: query description: The page token. This is provided by the API. schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCredentialResponse' description: OK security: - accountSid_authToken: [] operationId: ListCredential x-maturity: - GA /v1/Credentials/{Sid}: servers: - url: https://conversations.twilio.com description: A Credential resource represents a push notification credential. x-twilio: defaultOutputProperties: - sid - friendly_name - type pathType: instance post: description: Update an existing push notification credential on your account tags: - Credentials parameters: - name: Sid in: path description: A 34 character string that uniquely identifies this resource. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/conversations.v1.credential' description: OK security: - accountSid_authToken: [] operationId: UpdateCredential x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateCredentialRequest' delete: description: Remove a push notification credential from your account tags: - Credentials parameters: - name: Sid in: path description: A 34 character string that uniquely identifies this resource. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '204': description: The resource was deleted successfully. security: - accountSid_authToken: [] operationId: DeleteCredential x-maturity: - GA get: description: Fetch a push notification credential from your account tags: - Credentials parameters: - name: Sid in: path description: A 34 character string that uniquely identifies this resource. schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/conversations.v1.credential' description: OK security: - accountSid_authToken: [] operationId: FetchCredential x-maturity: - GA /v2/Credentials: servers: - url: https://ip-messaging.twilio.com description: 'TODO: Resource-level docs' x-twilio: defaultOutputProperties: - sid - friendly_name - type pathType: list get: description: '' tags: - Credentials parameters: - name: PageSize in: query description: How many resources to return in each list page. The default is 50, and the maximum is 1000. schema: type: integer minimum: 1 maximum: 1000 - name: Page in: query description: The page index. This value is simply for client state. schema: type: integer minimum: 0 - name: PageToken in: query description: The page token. This is provided by the API. schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCredentialResponse_2' description: OK security: - accountSid_authToken: [] operationId: ListCredential x-maturity: - GA post: description: '' tags: - Credentials responses: '201': content: application/json: schema: $ref: '#/components/schemas/ip_messaging.v2.credential' description: Created security: - accountSid_authToken: [] operationId: CreateCredential x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCredentialRequest_2' /v2/Credentials/{Sid}: servers: - url: https://ip-messaging.twilio.com description: 'TODO: Resource-level docs' x-twilio: defaultOutputProperties: - sid - friendly_name - type pathType: instance get: description: '' tags: - Credentials parameters: - name: Sid in: path description: '' schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ip_messaging.v2.credential' description: OK security: - accountSid_authToken: [] operationId: FetchCredential x-maturity: - GA post: description: '' tags: - Credentials parameters: - name: Sid in: path description: '' schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ip_messaging.v2.credential' description: OK security: - accountSid_authToken: [] operationId: UpdateCredential x-maturity: - GA requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/UpdateCredentialRequest_2' delete: description: '' tags: - Credentials parameters: - name: Sid in: path description: '' schema: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ required: true responses: '204': description: The resource was deleted successfully. security: - accountSid_authToken: [] operationId: DeleteCredential x-maturity: - GA /Credentials/AWS: get: operationId: listAwsCredentials summary: Twilio List Aws Credentials tags: - Credentials responses: '200': description: List of AWS credentials content: application/json: schema: $ref: '#/components/schemas/AwsCredentialList' post: operationId: createAwsCredential summary: Twilio Create an Aws Credential tags: - Credentials requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - Credentials properties: Credentials: type: string description: AWS access key ID and secret access key FriendlyName: type: string AccountSid: type: string responses: '201': description: AWS credential created /Credentials/PublicKeys: get: operationId: listPublicKeys summary: Twilio List Public Key Credentials tags: - Credentials responses: '200': description: List of public key credentials content: application/json: schema: $ref: '#/components/schemas/PublicKeyList' post: operationId: createPublicKey summary: Twilio Create a Public Key Credential tags: - Credentials requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - PublicKey properties: PublicKey: type: string description: DER-encoded public key FriendlyName: type: string AccountSid: type: string responses: '201': description: Public key created components: schemas: CreateCredentialRequest: type: object required: - Type properties: Type: type: string $ref: '#/components/schemas/credential_enum_push_type' description: 'The type of push-notification service the credential is for. Can be: `fcm`, `gcm`, or `apn`.' FriendlyName: type: string description: A descriptive string that you create to describe the new resource. It can be up to 64 characters long. Certificate: type: string description: "[APN only] The URL encoded representation of the certificate. For example, \n`--BEGIN CERTIFICATE-- MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==\n--END CERTIFICATE--`." PrivateKey: type: string description: '[APN only] The URL encoded representation of the private key. For example, `--BEGIN RSA PRIVATE KEY-- MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG... --END RSA PRIVATE KEY--`.' Sandbox: type: boolean description: '[APN only] Whether to send the credential to sandbox APNs. Can be `true` to send to sandbox APNs or `false` to send to production.' ApiKey: type: string description: '[GCM only] The API key for the project that was obtained from the Google Developer console for your GCM Service application credential.' Secret: type: string description: '[FCM only] The **Server key** of your project from the Firebase console, found under Settings / Cloud messaging.' ListCredentialPublicKeyResponse: type: object properties: credentials: type: array items: $ref: '#/components/schemas/accounts.v1.credential.credential_public_key' meta: type: object properties: first_page_url: type: string format: uri next_page_url: type: string format: uri nullable: true page: type: integer page_size: type: integer previous_page_url: type: string format: uri nullable: true url: type: string format: uri key: type: string conversations.v1.credential: type: object properties: sid: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ nullable: true description: A 34 character string that uniquely identifies this resource. account_sid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ nullable: true description: The unique ID of the [Account](https://www.twilio.com/docs/iam/api/account) responsible for this credential. friendly_name: type: string nullable: true description: The human-readable name of this credential, limited to 64 characters. Optional. x-twilio: pii: handling: standard deleteSla: 30 type: type: string $ref: '#/components/schemas/credential_enum_push_type' nullable: true description: 'The type of push-notification service the credential is for. Can be: `fcm`, `gcm`, or `apn`.' sandbox: type: string nullable: true description: '[APN only] Whether to send the credential to sandbox APNs. Can be `true` to send to sandbox APNs or `false` to send to production.' date_created: type: string format: date-time nullable: true description: The date that this resource was created. date_updated: type: string format: date-time nullable: true description: The date that this resource was last updated. url: type: string format: uri nullable: true description: An absolute API resource URL for this credential. CreateCredentialRequest_2: type: object required: - Type properties: Type: type: string $ref: '#/components/schemas/credential_enum_push_service' description: '' FriendlyName: type: string description: '' Certificate: type: string description: '' PrivateKey: type: string description: '' Sandbox: type: boolean description: '' ApiKey: type: string description: '' Secret: type: string description: '' UpdateCredentialRequest: type: object properties: Type: type: string $ref: '#/components/schemas/credential_enum_push_type' description: 'The type of push-notification service the credential is for. Can be: `fcm`, `gcm`, or `apn`.' FriendlyName: type: string description: A descriptive string that you create to describe the new resource. It can be up to 64 characters long. Certificate: type: string description: "[APN only] The URL encoded representation of the certificate. For example, \n`--BEGIN CERTIFICATE-- MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==\n--END CERTIFICATE--`." PrivateKey: type: string description: '[APN only] The URL encoded representation of the private key. For example, `--BEGIN RSA PRIVATE KEY-- MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG... --END RSA PRIVATE KEY--`.' Sandbox: type: boolean description: '[APN only] Whether to send the credential to sandbox APNs. Can be `true` to send to sandbox APNs or `false` to send to production.' ApiKey: type: string description: '[GCM only] The API key for the project that was obtained from the Google Developer console for your GCM Service application credential.' Secret: type: string description: '[FCM only] The **Server key** of your project from the Firebase console, found under Settings / Cloud messaging.' UpdateCredentialPublicKeyRequest: type: object properties: FriendlyName: type: string description: A descriptive string that you create to describe the resource. It can be up to 64 characters long. UpdateCredentialRequest_2: type: object properties: FriendlyName: type: string description: '' Certificate: type: string description: '' PrivateKey: type: string description: '' Sandbox: type: boolean description: '' ApiKey: type: string description: '' Secret: type: string description: '' accounts.v1.credential.credential_public_key: type: object properties: sid: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ nullable: true description: The unique string that that we created to identify the PublicKey resource. account_sid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ nullable: true description: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Credential that the PublicKey resource belongs to. friendly_name: type: string nullable: true description: The string that you assigned to describe the resource. x-twilio: pii: handling: standard deleteSla: 0 date_created: type: string format: date-time nullable: true description: The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. date_updated: type: string format: date-time nullable: true description: The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. url: type: string format: uri nullable: true description: The URI for this resource, relative to `https://accounts.twilio.com` accounts.v1.credential.credential_aws: type: object properties: sid: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ nullable: true description: The unique string that we created to identify the AWS resource. account_sid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ nullable: true description: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the AWS resource. friendly_name: type: string nullable: true description: The string that you assigned to describe the resource. x-twilio: pii: handling: standard deleteSla: 0 date_created: type: string format: date-time nullable: true description: The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. date_updated: type: string format: date-time nullable: true description: The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. url: type: string format: uri nullable: true description: The URI for this resource, relative to `https://accounts.twilio.com` ListCredentialAwsResponse: type: object properties: credentials: type: array items: $ref: '#/components/schemas/accounts.v1.credential.credential_aws' meta: type: object properties: first_page_url: type: string format: uri next_page_url: type: string format: uri nullable: true page: type: integer page_size: type: integer previous_page_url: type: string format: uri nullable: true url: type: string format: uri key: type: string CreateCredentialAwsRequest: type: object required: - Credentials properties: Credentials: type: string description: A string that contains the AWS access credentials in the format `:`. For example, `AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` FriendlyName: type: string description: A descriptive string that you create to describe the resource. It can be up to 64 characters long. AccountSid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ description: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request. ListCredentialResponse_2: type: object properties: credentials: type: array items: $ref: '#/components/schemas/ip_messaging.v2.credential' meta: type: object properties: first_page_url: type: string format: uri next_page_url: type: string format: uri nullable: true page: type: integer page_size: type: integer previous_page_url: type: string format: uri nullable: true url: type: string format: uri key: type: string UpdateCredentialAwsRequest: type: object properties: FriendlyName: type: string description: A descriptive string that you create to describe the resource. It can be up to 64 characters long. ip_messaging.v2.credential: type: object properties: sid: type: string minLength: 34 maxLength: 34 pattern: ^CR[0-9a-fA-F]{32}$ nullable: true account_sid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ nullable: true friendly_name: type: string nullable: true type: type: string $ref: '#/components/schemas/credential_enum_push_service' nullable: true sandbox: type: string nullable: true date_created: type: string format: date-time nullable: true date_updated: type: string format: date-time nullable: true url: type: string format: uri nullable: true ListCredentialResponse: type: object properties: credentials: type: array items: $ref: '#/components/schemas/conversations.v1.credential' meta: type: object properties: first_page_url: type: string format: uri next_page_url: type: string format: uri nullable: true page: type: integer page_size: type: integer previous_page_url: type: string format: uri nullable: true url: type: string format: uri key: type: string PublicKeyList: type: object properties: credentials: type: array items: type: object properties: sid: type: string pattern: ^CR[0-9a-fA-F]{32}$ friendly_name: type: string date_created: type: string format: date-time date_updated: type: string format: date-time url: type: string format: uri credential_enum_push_service: type: string enum: - gcm - apn - fcm CreateCredentialPublicKeyRequest: type: object required: - PublicKey properties: PublicKey: type: string description: A URL encoded representation of the public key. For example, `--BEGIN PUBLIC KEY--MIIBIjANB.pa9xQIDAQAB--END PUBLIC KEY--` FriendlyName: type: string description: A descriptive string that you create to describe the resource. It can be up to 64 characters long. AccountSid: type: string minLength: 34 maxLength: 34 pattern: ^AC[0-9a-fA-F]{32}$ description: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request AwsCredentialList: type: object properties: credentials: type: array items: type: object properties: sid: type: string pattern: ^CR[0-9a-fA-F]{32}$ friendly_name: type: string date_created: type: string format: date-time date_updated: type: string format: date-time url: type: string format: uri credential_enum_push_type: type: string enum: - apn - gcm - fcm securitySchemes: accountSid_authToken: type: http scheme: basic x-maturity: - name: GA description: This product is Generally Available. - name: Beta description: PLEASE NOTE that this is a Beta product that is subject to change. Use it with caution.