> ## Documentation Index
> Fetch the complete documentation index at: https://docs.argyle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Forms

> Learn about the /forms endpoint.

Learn about the `/forms` endpoint.

<Note>
  The `/forms` endpoint returns user inputs from two scenarios:

  * The user [uploads employment documents](/legacy/guides/argyle-link/flows/document-processing#uploaded-documents) through Argyle Link
  * The user submits an **income source** form after being unable to locate their payroll provider in Argyle Link
</Note>

Even in the second scenario where the user was unable to connect their payroll account, a new [account object](/legacy/api-reference/accounts#account-object) will still be created for the user. Use the account `id` from this account object to [retrieve forms by account](/legacy/api-reference/forms#retrieve-account).

![High level structure of the form object.](https://res.cloudinary.com/argyle-media/image/upload/f_auto/v1674859059/docs-2023/API%20Endpoints/Forms)

## The form object

### Attributes

* `id` (string (uuid), optional): Unique ID of the form.
* `template` (string (uuid), optional): The identifier of the template used.
* `version` (string, optional): The version of the template used.
* `status` (note, optional)
* `metadata` (object, optional)

```json theme={}

{
"id": "017cf26a-3390-a676-97b4-1534f772fe5e",
"template": "067cf269-e1d9-42be-4524-e3dc6b46100a",
"version": "0",
"status": "submitted",
"data": {
"paystubs": [
{
"file_id": "017cf26a-45fe-1de2-3fc2-c2e9ffga120e",
"status": "available",
"url": "www.storage-url.com",
"name": "paystub.pdf",
"size": 442004,
"created_at": "2021-11-05T23:23:43.524Z",
"metadata": null
}
]
}
},
null,
2
  
```

```json theme={}

{
"id": "017cf33a-3390-a676-97b4-1534faa2fe5e",
"template": "017cf269-e1d9-42be-4524-e2cc6b46100a",
"version": "0",
"status": "submitted",
"data": {
"income_source": "Jim's Hardware",
"payroll_provider": "MyXYZ"
},
},
null,
2
  
```

<RefSubLayout.Divider />

## Retrieve forms by account ID

**GET** `/v1/forms`

* Retrieve all forms associated with an account.
* This request returns an object with a results property that contains an array of all the form objects associated with the provided account ID.

### Query parameters

* `account` (string (uuid), required): The identifier of the account associated with the forms to be retrieved.

<Tabs>
  <Tab title="curl">
    ```bash theme={}
    curl --request GET \\
    --url https://api.argyle.com/v1/forms?{account}={uuid} \\
    --header 'accept: application/json' \\
    --header 'content-type: application/json'
      
    ```
  </Tab>

  <Tab title="python">
    ```python theme={}
    import requests
    url = "https://api.argyle.com/v1/forms?{account}={uuid}"
    headers = {
    "accept": "application/json",
    "content-type": "application/json"
    }
    response = requests.get(url, headers=headers)
    ```
  </Tab>
</Tabs>

```json theme={}

{
  "id": "01809380-de04-c6ad-10d9-70ee6958ed83",
  "template": "0180937e-818b-2577-b6f0-81c02117c19c",
  "version": "0",
  "status": "submitted",
  "data": {
"employer_name": "Suzy's Cupcakes",
"payroll_platform": "I don't know"
  },
  "created_at": "2022-05-05T09:15:37.895Z",
  "updated_at": "2022-05-05T09:15:39.422Z"
},
null,
2
  
```

<RefSubLayout.Divider />

## Retrieve forms by ID

**GET** `/v1/forms/{id}`

* Retrieve a form object with the supplied ID.
* This request returns a form object if a valid identifier was provided.

### Path parameters

* `id` (string (uuid), required): The identifier of the form to be retrieved.

<Tabs>
  <Tab title="curl">
    ```bash theme={}
    curl --request GET \\
    --url https://api.argyle.com/v1/forms/{id} \\
    --header 'accept: application/json' \\
    --header 'content-type: application/json'
      
    ```
  </Tab>

  <Tab title="python">
    ```python theme={}
    import requests
    url = "https://api.argyle.com/v1/forms/{id}"
    headers = {
    "accept": "application/json",
    "content-type": "application/json"
    }
    response = requests.get(url, headers=headers)
    ```
  </Tab>
</Tabs>

```json theme={}

{
  "id": "01809380-de04-c6ad-10d9-70ee6958ed83",
  "template": "0180937e-818b-2577-b6f0-81c02117c19c",
  "version": "0",
  "status": "submitted",
  "data": {
"employer_name": "Suzy's Cupcakes",
"payroll_platform": "I don't know"
  },
  "created_at": "2022-05-05T09:15:37.895Z",
  "updated_at": "2022-05-05T09:15:39.422Z"
},
null,
2
  
```
