# SMS Use Cases

## Overview

To programmatically install an SMS channel, the API expects a reference to a use case in the request. For US 10DLC and North American Toll-Free Numbers, the use case entity is created when registering for these types of numbers. For other types of senders, like international phone numbers or alphanumeric senders, you need to create a generic use case. Use cases can be reused for multiple channels (for different senders) when the use case of the channels is the same.

### List Use Cases

## List use cases for a workspace

> List use cases for a workspace

```json
{"openapi":"3.0.3","info":{"title":"Channels","version":"v1"},"tags":[{"name":"usecase","description":"UseCases provide information on the use case of a channel."}],"servers":[{"url":"https://api.bird.com","description":"Production API"}],"security":[{"accessKey":[]}],"components":{"securitySchemes":{"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"parameters":{"pagination.param.limit_1000":{"description":"Limits the number of results to return.","in":"query","name":"limit","schema":{"default":25,"maximum":1000,"minimum":1,"type":"integer"}},"pagination.param.pageToken":{"description":"The cursor that keeps track of the current position in the results.","in":"query","name":"pageToken","schema":{"type":"string"}},"pagination.param.reverse":{"description":"Reverses the order in which the results are returned.","in":"query","name":"reverse","schema":{"default":false,"type":"boolean"}}},"schemas":{"UseCaseList":{"type":"object","title":"UseCaseList","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/UseCase"}}}},"UseCase":{"type":"object","title":"UseCase","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"name":{"$ref":"#/components/schemas/UseCaseName"},"status":{"$ref":"#/components/schemas/channels.usecases.status"},"use":{"$ref":"#/components/schemas/Use"},"caseType":{"$ref":"#/components/schemas/CaseType"},"definitionVersion":{"$ref":"#/components/schemas/DefinitionVersion"},"description":{"$ref":"#/components/schemas/UseCaseDescription"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"},"integrationState":{"$ref":"#/components/schemas/IntegrationState"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/UseCaseTag"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","use","caseType","description","createdAt"]},"UseCaseName":{"type":"string","title":"UseCaseName"},"channels.usecases.status":{"enum":["created","cancelled","error","deleted","declined","approved"],"type":"string"},"Use":{"type":"string"},"CaseType":{"type":"string","enum":["default","tendlc","tfn-verification"],"default":"default"},"DefinitionVersion":{"type":"string"},"UseCaseDescription":{"type":"string"},"AdditionalFields":{"type":"object","nullable":true,"additionalProperties":true},"IntegrationState":{"type":"object","title":"IntegrationState","additionalProperties":false,"properties":{"externalId":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"}}},"UseCaseTag":{"type":"object","title":"Tag","additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}}},"Pagination":{"type":"object","properties":{"nextPageToken":{"type":"string","description":"The token that can be passed as pageToken in URL to retrieve the next set of results. If missing, no more results to display."}}},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}},"responses":{"requestError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"An error"}}},"paths":{"/workspaces/{workspaceId}/use-cases":{"get":{"summary":"List use cases for a workspace","operationId":"listUseCases","description":"List use cases for a workspace","tags":["usecase"],"parameters":[{"$ref":"#/components/parameters/pagination.param.limit_1000"},{"$ref":"#/components/parameters/pagination.param.pageToken"},{"$ref":"#/components/parameters/pagination.param.reverse"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/UseCaseList"},{"$ref":"#/components/schemas/Pagination"}]}}}},"404":{"$ref":"#/components/responses/requestError"},"422":{"$ref":"#/components/responses/requestError"}}}}}}
```

### Get a Use Case

## Get workspace use case

> Get workspace use case

```json
{"openapi":"3.0.3","info":{"title":"Channels","version":"v1"},"tags":[{"name":"usecase","description":"UseCases provide information on the use case of a channel."}],"servers":[{"url":"https://api.bird.com","description":"Production API"}],"security":[{"accessKey":[]}],"components":{"securitySchemes":{"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"schemas":{"UseCase":{"type":"object","title":"UseCase","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"name":{"$ref":"#/components/schemas/UseCaseName"},"status":{"$ref":"#/components/schemas/channels.usecases.status"},"use":{"$ref":"#/components/schemas/Use"},"caseType":{"$ref":"#/components/schemas/CaseType"},"definitionVersion":{"$ref":"#/components/schemas/DefinitionVersion"},"description":{"$ref":"#/components/schemas/UseCaseDescription"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"},"integrationState":{"$ref":"#/components/schemas/IntegrationState"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/UseCaseTag"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","use","caseType","description","createdAt"]},"UseCaseName":{"type":"string","title":"UseCaseName"},"channels.usecases.status":{"enum":["created","cancelled","error","deleted","declined","approved"],"type":"string"},"Use":{"type":"string"},"CaseType":{"type":"string","enum":["default","tendlc","tfn-verification"],"default":"default"},"DefinitionVersion":{"type":"string"},"UseCaseDescription":{"type":"string"},"AdditionalFields":{"type":"object","nullable":true,"additionalProperties":true},"IntegrationState":{"type":"object","title":"IntegrationState","additionalProperties":false,"properties":{"externalId":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"}}},"UseCaseTag":{"type":"object","title":"Tag","additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}}},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}},"responses":{"requestError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"An error"}}},"paths":{"/workspaces/{workspaceId}/use-cases/{useCaseId}":{"get":{"summary":"Get workspace use case","operationId":"getUseCase","description":"Get workspace use case","tags":["usecase"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseCase"}}}},"404":{"$ref":"#/components/responses/requestError"},"422":{"$ref":"#/components/responses/requestError"}}}}}}
```

### Create a Use Case

## Creates a new use case for a workspace

> Creates a new use case for a workspace

```json
{"openapi":"3.0.3","info":{"title":"Channels","version":"v1"},"tags":[{"name":"usecase","description":"UseCases provide information on the use case of a channel."}],"servers":[{"url":"https://api.bird.com","description":"Production API"}],"security":[{"accessKey":[]}],"components":{"securitySchemes":{"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"schemas":{"CreateUseCase":{"type":"object","title":"UseCaseCreate","additionalProperties":false,"properties":{"name":{"$ref":"#/components/schemas/UseCaseName"},"use":{"$ref":"#/components/schemas/Use"},"caseType":{"$ref":"#/components/schemas/CaseType"},"definitionVersion":{"$ref":"#/components/schemas/DefinitionVersion"},"description":{"$ref":"#/components/schemas/UseCaseDescription"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"}},"required":["name","use","caseType","description"]},"UseCaseName":{"type":"string","title":"UseCaseName"},"Use":{"type":"string"},"CaseType":{"type":"string","enum":["default","tendlc","tfn-verification"],"default":"default"},"DefinitionVersion":{"type":"string"},"UseCaseDescription":{"type":"string"},"AdditionalFields":{"type":"object","nullable":true,"additionalProperties":true},"UseCase":{"type":"object","title":"UseCase","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"name":{"$ref":"#/components/schemas/UseCaseName"},"status":{"$ref":"#/components/schemas/channels.usecases.status"},"use":{"$ref":"#/components/schemas/Use"},"caseType":{"$ref":"#/components/schemas/CaseType"},"definitionVersion":{"$ref":"#/components/schemas/DefinitionVersion"},"description":{"$ref":"#/components/schemas/UseCaseDescription"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"},"integrationState":{"$ref":"#/components/schemas/IntegrationState"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/UseCaseTag"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","use","caseType","description","createdAt"]},"channels.usecases.status":{"enum":["created","cancelled","error","deleted","declined","approved"],"type":"string"},"IntegrationState":{"type":"object","title":"IntegrationState","additionalProperties":false,"properties":{"externalId":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"additionalFields":{"$ref":"#/components/schemas/AdditionalFields"}}},"UseCaseTag":{"type":"object","title":"Tag","additionalProperties":false,"properties":{"key":{"type":"string"},"value":{"type":"string"}}},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}},"responses":{"requestError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"An error"}}},"paths":{"/workspaces/{workspaceId}/use-cases":{"post":{"summary":"Creates a new use case for a workspace","operationId":"createUseCase","description":"Creates a new use case for a workspace","tags":["usecase"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUseCase"}}}},"responses":{"202":{"description":"Use Case was created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseCase"}}}},"400":{"$ref":"#/components/responses/requestError"},"422":{"$ref":"#/components/responses/requestError"}}}}}}
```

#### Example request

{% tabs fullWidth="true" %}
{% tab title="Request" %}
{% code overflow="wrap" fullWidth="true" %}

```bash
curl --location 'https://api.bird.com/workspaces/<your-workspace-id>/use-cases' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: AccessKey <your-access-key>' \
--data '{
    "name": "Multi-factor authentication",
    "description": "MFA messages via SMS",
    "use": "2FA",
    "caseType": "default",
    "additionalFields": {
        "sample_messages": [
            "Your login code is 123456."
        ]
    }
}'
```

{% endcode %}
{% endtab %}

{% tab title="Parameter description" %}

<table data-full-width="true"><thead><tr><th width="181.36979166666663">Property</th><th width="96.203125">Type</th><th width="116.328125">Required</th><th>Description</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>Yes</td><td>The name of your use case, e.g. My transactional use case.</td></tr><tr><td>use</td><td>string</td><td>Yes</td><td>Type of use case. Choose one of the following: <code>2FA</code>, <code>ACCOUNT_NOTIFICATION</code>, <code>CUSTOMER_CARE</code>, <code>DELIVERY_NOTIFICATION</code>, <code>FRAUD_ALERT</code>, <code>HIGHER_EDUCATION</code>, <code>MARKETING</code>, <code>POLLING_VOTING</code>, <code>PUBLIC_SERVICE_ANNOUNCEMENT</code>, <code>SECURITY_ALERT</code></td></tr><tr><td>caseType</td><td>string</td><td>Yes</td><td>Type of use case.  Use always <code>default</code> for non-10DLC or TFN use cases.</td></tr><tr><td>description</td><td>string</td><td>Yes</td><td>Description of your use case.</td></tr><tr><td>additionalFields.sample_messages</td><td>array of strings</td><td>Yes</td><td>Message samples (minimal 1), for the use case. Can be used to request content approval at carriers.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

The ID returned in the request result can be used as `useCaseId`  value when [linking the use case to the number](/api/numbers-api/api-reference/manage-endpoint-compliance-requirements/update-workspace-compliance-requirements.md), and in the request to [create an SMS channel](/api/channels-api/supported-channels/programmable-sms/installing-an-sms-channel.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bird.com/api/channels-api/supported-channels/programmable-sms/installing-an-sms-channel/sms-use-cases.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
