CPA API Documentation (1.0.0)

Download OpenAPI specification:Download

Documentation for CPA APIs available for use by the public.

Sift

Secure Information and File Transfer System API Calls

Retrieve File

Returns a signed URL that can be used to download the requested file. A successful response returns a 307 redirect, which will automatically begin the file download if your application follows redirects.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/sift/v1/sift/public/get-link?file-path=sift%2Fgisss%2FAbilene_MSA-2021Q2.zip" \
  -H "x-api-key: API_KEY"
Authorizations:
None
query Parameters
file-path
required
string
Example: file-path=sift%2Fgisss%2FAbilene_MSA-2021Q2.zip

URL-encoded path of file to retrieve.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json

List Files

Return list of files available for download. The filter-by-quarter query parameter is optional. If excluded, will return all available files.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/sift/v1/sift/public/list-files?filter-by-quarter=2021Q2" \
  -H "x-api-key: API_KEY"
Authorizations:
None
query Parameters
filter-by-quarter
string
Example: filter-by-quarter=2021Q2

Filter for files from a specific quarter, like 2021Q2.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{}

Open Data

Open Data API Calls

Get single row from Open Data table

Retrieve a single row from an Open Data table by table name and article id. Requires both table_id and id as path parameters.

Example usage:

curl -X GET "https://api.prod.ca.cpa.state.tx.us/open-data/v1/tables/exemption/A12345"
path Parameters
table_id
required
string

Table name.

id
required
string

Article id.

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "title": "Study",
  • "done": false,
  • "updated_at": "2016-02-10T15:46:51.778Z",
  • "created_at": "2016-02-10T15:46:51.778Z"
}

Tax Accounts

Tax Account Search

Get sales tax payer by taxpayer ID

Returns a single sales tax payer (STP) by taxpayer ID.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer/12345678901" \
-H "x-api-key: API_KEY"
Authorizations:
None
path Parameters
id
required
string^\d{11}$

The 11 digit taxpayer ID. Must be 11 digits.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Search sales tax payer locations by taxpayer ID

Returns a list of locations for a given sales tax payer (STP) by taxpayer ID with optional filtering.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer/12345678901/locations?page=1&pageSize=10&globalFilter=test" \
-H "x-api-key: API_KEY"
Authorizations:
None
path Parameters
id
required
string^\d{11}$

The 11 digit taxpayer ID. Must be 11 digits.

query Parameters
STATUS
string
Enum: "ACTIVE" "INACTIVE"

The permit status.

globalFilter
string [ 1 .. 50 ] characters

Optional filter string. 1-50 characters.

page
string^\d+$
Default: "1"

Page number for pagination. Must be a positive integer. Defaults to 1.

pageSize
string^\d+$
Default: "10"

Number of results per page. Must be a positive integer. Defaults to 10.

sortBy
string
Default: "LOCATION_NUMBER"
Enum: "TAXPAYER_ID" "LOCATION_NAME" "LOCATION_NUMBER" "STREET" "CITY" "STATE" "ZIPCODE" "PERMIT_START_DT" "PERMIT_END_DT" "STATUS"

Field to sort by. Allowed values: TAXPAYER_ID, LOCATION_NAME, LOCATION_NUMBER, STREET, CITY, STATE, ZIPCODE, PERMIT_START_DT, PERMIT_END_DT, or STATUS. Defaults to LOCATION_NUMBER.

sortOrder
string
Default: "ASC"
Enum: "ASC" "DESC"

Sort order, either ASC (ascending) or DESC (descending). Defaults to ASC.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": [
    ],
  • "count": 1
}

Get franchise account details

Retrieve franchise account and officer details by taxpayer ID.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/franchise-tax/12345678901" \
-H "x-api-key: API_KEY"
Authorizations:
None
path Parameters
id
required
string^\d{11}$

Taxpayer's unique 11-digit ID

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Search FTAS records

Search for FTAS records by taxpayer-id, name, or file-number.

Example usage:

curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/franchise-tax-list?taxpayerId=123456789" \
-H "x-api-key: API_KEY"
Authorizations:
None
query Parameters
taxpayerId
string^\d{9}$|^\d{11}$

Taxpayer Number (9 or 11 digits)

name
string^[^<>]{2,50}$

Entity Name (2-50 chars, no < >)

fileNumber
string^\d{6,10}$

File Number (6-10 digits, left-padded to 10)

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "count": 1,
  • "data": [
    ]
}

Search sales tax payer locations

Returns a list of sales tax payer locations matching the search criteria.

Example usage:

# Search locations by zipcode
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer-location?ZIPCODE=78701" -H "x-api-key: API_KEY"

# Search locations by name
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer-location?LOCATION_NAME=location" -H "x-api-key: API_KEY"
Authorizations:
None
query Parameters
ZIPCODE
string^\d{5}$

The 5-digit zip code. Required if LOCATION_NAME is not provided.

LOCATION_NAME
string [ 2 .. 50 ] characters

The location name. Required if ZIPCODE is not provided.

page
integer >= 1
Default: 1

Page number (default 1).

pageSize
integer [ 1 .. 100 ]
Default: 10

Number of results per page (default 10).

sortBy
string
Default: "LOCATION_NAME"
Enum: "TAXPAYER_ID" "LOCATION_NAME" "LOCATION_NUMBER" "STREET" "CITY" "STATE" "ZIPCODE" "PERMIT_START_DT" "PERMIT_END_DT" "STATUS"

Field to sort by. Allowed values: TAXPAYER_ID, LOCATION_NAME, LOCATION_NUMBER, STREET, CITY, STATE, ZIPCODE, PERMIT_START_DT, PERMIT_END_DT, or STATUS. Defaults to LOCATION_NAME.

sortOrder
string
Default: "ASC"
Enum: "ASC" "DESC"

Sort order, either ASC (ascending) or DESC (descending). Defaults to ASC.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": [
    ],
  • "count": 1
}

Search sales tax payers

Returns a list of sales tax payers matching the search criteria.

Example usage:

# Search by taxpayer ID
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer?searchType=taxpayerId&TAXPAYER_ID=12345678901" -H "x-api-key: API_KEY"

# Search by fei number
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer?searchType=fein&FEI_NUMBER=123456789" -H "x-api-key: API_KEY"

# Search by individual name
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer?searchType=name&FIRST_NAME=john&LAST_NAME=smith" -H "x-api-key: API_KEY"

# Search by business/legal entity name
curl -X GET "https://api.comptroller.texas.gov/public-data/v1/public/sales-tax-payer?searchType=legalName&BUSINESS_NAME=example" -H "x-api-key: API_KEY"
Authorizations:
None
query Parameters
searchType
required
string
Enum: "taxpayerId" "fein" "name" "legalName"

The type of search to perform.

TAXPAYER_ID
string^\d{11}$

The 11-digit taxpayer ID. Required if searchType is 'taxpayerId'.

FEI_NUMBER
string^\d{9}$

The 9-digit FEI number. Required if searchType is 'fein'.

FIRST_NAME
string [ 1 .. 50 ] characters

The first name. Required if searchType is 'name'.

MIDDLE_NAME
string [ 1 .. 50 ] characters

The middle name. Optional if searchType is 'name'.

LAST_NAME
string [ 2 .. 50 ] characters

The last name. Required if searchType is 'name'.

BUSINESS_NAME
string [ 2 .. 50 ] characters

The legal name. Required if searchType is 'legalName'.

STATUS
string
Enum: "ACTIVE" "INACTIVE"

The permit status.

page
integer >= 1
Default: 1

Page number (default 1).

pageSize
integer [ 1 .. 100 ]
Default: 10

Number of results per page (default 10).

sortBy
string
Default: "TAXPAYER_ID"
Enum: "TAXPAYER_ID" "FEI_NUMBER" "BUSINESS_NAME" "INDIVIDUAL_NAME" "LAST_NAME" "STREET" "CITY" "STATE" "ZIPCODE" "STATUS"

Field to sort by. Allowed values: TAXPAYER_ID, FEI_NUMBER, BUSINESS_NAME, INDIVIDUAL_NAME, LAST_NAME, STREET, CITY, STATE, ZIPCODE, or STATUS. Defaults to TAXPAYER_ID.

sortOrder
string
Default: "ASC"
Enum: "ASC" "DESC"

Sort order, either ASC (ascending) or DESC (descending). Defaults to ASC.

header Parameters
x-api-key
required
string

API key for authentication. To obtain an API key, register here.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": [
    ],
  • "count": 1
}