> For the complete documentation index, see [llms.txt](https://docs.specifyapp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.specifyapp.com/reference/specify-sdk/specifyclient.md).

# SpecifyClient

The main Specify client to interact with Specify repositories and the SDTF token tree.

## Properties

### isAuthenticated

A boolean indicating whether the client is authenticated or not.

## Methods

### authenticate

Authenticates the client with a Personal Access Token. Can be generated at [specifyapp.com/user/personal-access-tokens](https://specifyapp.com/user/personal-access-tokens)

```typescript
authenticate(personalAccessToken: string): Promise<void>;
```

### whoAmI

Returns the current user if authenticated.

```typescript
whoAmI(): {
  email: string;
  id: string;
  username: string;
  fullname: string;
  organizations: {
    id: string;
    namespace: string;
    domain: string | null;
  }[];
} | null;
```

### logout

Logs out the current user.

```typescript
logout(): void;
```

### getRepositories

Returns the repositories list of the current organization.

```typescript
getRepositories(): Promise<{
  name: string;
  id: string;
  version: number;
  createdAt: string;
  updatedAt: string;
}[]>;
```

### getSDTFClientByRepositoryName

Returns a SDTFClient instance to work with the SDTF token tree of the repository.

```typescript
getSDTFClientByRepositoryName(repositoryName: string): Promise<SDTFClient>;
```

### transformTokenTreeWithRemoteParsers

Generates Design Tokens from the given token tree and configuration parsers.

```typescript
transformTokenTreeWithRemoteParsers(
  sdtfTree: SpecifyDesignTokenFormat,
  parsers: PipeEngineParserConfiguration
): Promise<{
  fromRule: string;
  output: PipeEngineRuleOutput
}>;
```
