> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.middesk.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.middesk.com/_mcp/server.

# Retrieve a registration request

GET https://api.middesk.com/v1/partner/registration_requests/{id}

Reference: https://docs.middesk.com/api-reference/entity-management/registration-requests/get-registration-request

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `id` (string, required) — Registration Request ID

## Response

### 200

registration request found

- `object` (string, required)
- `id` (string, required)
- `state` (enum, required) — US state abbreviation
  - Allowed values: `AL`, `AK`, `AZ`, `AR`, `CA`, `CO`, `CT`, `DE`, `FL`, `GA`, `HI`, `ID`, `IL`, `IN`, `IA`, `KS`, `KY`, `LA`, `ME`, `MD`, `MA`, `MI`, `MN`, `MS`, `MO`, `MT`, `NE`, `NV`, `NH`, `NJ`, `NM`, `NY`, `NC`, `ND`, `OH`, `OK`, `OR`, `PA`, `RI`, `SC`, `SD`, `TN`, `TX`, `UT`, `VT`, `VA`, `WA`, `WV`, `WI`, `WY`
- `status` (string, required) — Request status
- `tax_registration_types` (list of string, required, nullable) — Types of tax registrations requested
- `company_id` (string, required)
- `created_at` (string, required)
- `agencies` (list of map from string to any, required) — Tax agency registrations
- `items` (list of map from string to any, required) — Registration items
- `invite_link` (string, required)
- `external_id` (string, optional, nullable)
- `submitted_at` (string, optional, nullable)
- `tax_registration` (map from string to any, optional, nullable) — Tax registration details

## Errors

### 404 Get Registration Request Request Not Found Error

registration request not found

- `errors` (list of ErrorResponseErrorsItem, required)

## Types

### ErrorResponseErrorsItem

- `message` (string, required)
- `parameter` (string, optional) — Request parameter associated with the error, when applicable

## Examples

### Pending

**Response**

```json
{
  "object": "registration_request",
  "id": "153b6874-992f-4dea-a6ff-12c142fcd865",
  "state": "CO",
  "status": "pending",
  "tax_registration_types": [
    "state_unemployment_insurance",
    "state_tax_withholdings"
  ],
  "company_id": "1432d966-edd3-4245-863a-a114aa6f2140",
  "created_at": "2025-12-26T21:48:24Z",
  "agencies": [
    {
      "key": "value"
    }
  ],
  "items": [
    {
      "key": "value"
    }
  ],
  "invite_link": "https://agent.middesk.com/invitations?guest_token=698095f6434310507d7d4aeb2b559879",
  "external_id": "external"
}
```

**SDK Code**

```python Pending
import requests

url = "https://api.middesk.com/v1/partner/registration_requests/id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Pending
const url = 'https://api.middesk.com/v1/partner/registration_requests/id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Pending
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.middesk.com/v1/partner/registration_requests/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Pending
require 'uri'
require 'net/http'

url = URI("https://api.middesk.com/v1/partner/registration_requests/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Pending
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.middesk.com/v1/partner/registration_requests/id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Pending
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.middesk.com/v1/partner/registration_requests/id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Pending
using RestSharp;

var client = new RestClient("https://api.middesk.com/v1/partner/registration_requests/id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Pending
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.middesk.com/v1/partner/registration_requests/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Completed

**Response**

```json
{
  "object": "registration_request",
  "id": "70799ae8-b29d-432e-9234-6273b82ecf1c",
  "state": "CA",
  "status": "completed",
  "tax_registration_types": [
    "state_unemployment_insurance",
    "state_tax_withholdings"
  ],
  "company_id": "63bd7319-b2cf-460d-bfe6-21e218cd4d73",
  "created_at": "2025-09-24T21:20:12Z",
  "agencies": [
    {
      "blocked_by": {
        "key": "value"
      },
      "blocked_until": {
        "key": "value"
      },
      "items": [
        {
          "key": "ca_sui_rate",
          "label": "SUI Rate",
          "status": "completed",
          "updated_at": "2025-09-24T21:41:52Z",
          "value": "3.4%"
        },
        {
          "key": "ca_ett_rate",
          "label": "Current Employer Training Tax (ETT) Rate",
          "status": "completed",
          "updated_at": "2025-09-24T21:41:52Z",
          "value": "0.1%"
        },
        {
          "key": "ca_edd_number",
          "label": "EDD number",
          "status": "completed",
          "updated_at": "2025-09-24T21:41:52Z",
          "value": "123-1234-5"
        }
      ],
      "key": "ca_employment_development_department",
      "name": "Employment Development Department (EDD)",
      "object": "agent_tax_agency_registration",
      "state": "CA",
      "status": "completed",
      "tax_account": {}
    }
  ],
  "items": [
    {
      "key": "value"
    }
  ],
  "invite_link": "invite_link",
  "external_id": "external-123",
  "submitted_at": "2025-09-24T21:23:06Z",
  "tax_registration": {
    "accounting_basis": "CASH",
    "addresses": [
      {
        "address_line1": "123 Easy St",
        "address_line2": "Floor 10",
        "city": "San Francisco",
        "full_address": "123 Easy St, Floor 10, San Francisco, CA 94102",
        "id": "f8e13594-85a1-4ab7-a25f-00cf9e981652",
        "object": "address",
        "postal_code": "94102",
        "state": "CA",
        "type": "primary"
      },
      {
        "address_line1": "123 Easy St",
        "address_line2": "Floor 10",
        "city": "San Francisco",
        "full_address": "123 Easy St, Floor 10, San Francisco, CA 94102",
        "id": "3279467f-c77b-41b8-ae0e-f8f9689f14c3",
        "object": "address",
        "postal_code": "94102",
        "state": "CA",
        "type": "mailing"
      }
    ],
    "application_type": "new_registration",
    "company_id": "63bd7319-b2cf-460d-bfe6-21e218cd4d73",
    "completed_at": "2025-09-25T23:22:34.238Z",
    "contact_email": "contact@email.com",
    "contact_name": "Contact Name",
    "contact_phone_number": "2424242424",
    "contact_title": "Chief Executive Officer",
    "created_at": "2025-09-24T21:23:04.558Z",
    "dba_name": "DBA Company",
    "description_of_operations": "This is a test description",
    "document_501c3_url": {
      "key": "value"
    },
    "ein": "123456789",
    "employee_count": 2,
    "entity_type": "corporation",
    "fiscal_year_end": "2025-10-31",
    "formation_date": "2000-10-31",
    "formation_state": "CA",
    "futa_year": 2020,
    "household": false,
    "id": "cb904c03-5e24-4ed3-b2aa-979c6c21eb32",
    "industry": "Sawmills",
    "is_501c3_organization": {
      "key": "value"
    },
    "json_key": "agent_tax_registration",
    "legal_name": "Child Test",
    "llc_structure": {
      "key": "value"
    },
    "naics_code": 321113,
    "non_profit": false,
    "object": "agent_tax_registration",
    "package_type": {
      "key": "value"
    },
    "payroll_frequency": "EVERY_OTHER_WEEK",
    "purpose": "This U.S. industry comprises establishments primarily engaged in sawing dimension lumber, boards, beams, timbers, poles, ties, shingles, shakes, siding, and wood chips from logs or bolts.  Sawmills may plane the rough lumber that they make with a planing machine to achieve smoothness and uniformity of size.Cross-References. Establishments primarily engaged in--",
    "registration_reason": "FIRST_EMPLOYEE",
    "sos_business_name": {
      "key": "value"
    },
    "state": "CA",
    "status": "active",
    "submitted_at": "2025-09-24T21:25:31.633Z",
    "tax_registration_types": {
      "key": "value"
    },
    "taxed_as_entity_type": "c_corporation",
    "transfer": false,
    "updated_at": "2025-10-16T18:38:12.165Z"
  }
}
```

**SDK Code**

```python Completed
import requests

url = "https://api.middesk.com/v1/partner/registration_requests/id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Completed
const url = 'https://api.middesk.com/v1/partner/registration_requests/id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Completed
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.middesk.com/v1/partner/registration_requests/id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Completed
require 'uri'
require 'net/http'

url = URI("https://api.middesk.com/v1/partner/registration_requests/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Completed
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.middesk.com/v1/partner/registration_requests/id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Completed
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.middesk.com/v1/partner/registration_requests/id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Completed
using RestSharp;

var client = new RestClient("https://api.middesk.com/v1/partner/registration_requests/id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Completed
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.middesk.com/v1/partner/registration_requests/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```