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

# Introduction

> How to read the Folkyn API Reference and download the OpenAPI specification

## Machine-readable spec

Download the contract without an API key:

| Format | URL                                              |
| ------ | ------------------------------------------------ |
| YAML   | `GET https://api.folkyn.com/api/v1/openapi.yaml` |
| JSON   | `GET https://api.folkyn.com/api/v1/openapi.json` |

Import the JSON or YAML URL into **Insomnia**, **Postman**, or your codegen tool to stay in sync with production.

## Navigation

Use the **API Reference** tab for endpoints; the **Guides** tab has quickstart, authentication, errors, and rate limits.

In the sidebar, each section (**Overview**, **Specification**, **Project codes**, **Team tags**, **Teams**, **Missions**, **Freelancers**, **Activity reports**, **Accounting**) is a **top-level group**. Under each resource group, operation titles follow **List → Create → Retrieve → Update** when those verbs apply (for example **List Project Codes**, **Create Project Code**, **Retrieve Project Code**). Exceptions stay explicit (**Download OpenAPI specification**, **Mark Accounting Entry as Paid**, **Update Mission Enterprise Fields**).

## Try requests

Some endpoint pages include Mintlify’s interactive **Try it** / playground (OpenAPI). When you use it:

1. **Base URL** — Send requests to **`https://api.folkyn.com`** unless you intentionally target another environment (for example a local Next.js dev server).
2. **Team API key** — Use **one** auth method only (not both on the same request):
   * **`Authorization: Bearer`** — Paste the **full** key including the **`fk_live_`** prefix. If the UI has a separate *Bearer* or *token* field, put the key there and let the tool add the `Bearer` prefix; avoid ending up with `Bearer Bearer …`.
   * **`X-Api-Key`** — Set this header to the **same full** key value (no `Bearer` prefix).
3. Complete path parameters, query fields, and JSON body as the operation requires, then run the request.

See [Authentication](/authentication) for key handling and **401** behavior. [Rate limits](/rate-limits) apply (**60 requests/minute** per key).

## Related

* [Quickstart](/quickstart) — first successful call
* [Errors](/errors) — `error` object and HTTP alignment
* [Rate limits](/rate-limits) — **60 requests/minute** per key
