{"templateId":"markdown","versions":[{"version":"v1","label":"v1","link":"/docs/v1/getting-started","default":false,"active":true,"folderId":"a2557b8d"},{"version":"v2","label":"v2","link":"/docs/getting-started","default":true,"active":false,"folderId":"a2557b8d"}],"sharedDataIds":{"sidebar":"sidebar-docs/@v1/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Getting Started with the FloQast API","description":"Learn the core concepts of the FloQast API — authentication, the response envelope, pagination, error handling, and rate limits.","siteUrl":"https://developer.floqast.com","image":"https://developer.floqast.com/og-image.png","keywords":["FloQast API","developer portal","accounting automation","financial close API","reconciliation API"],"llmstxt":{"hide":false,"title":"FloQast Developer Portal","description":"API documentation and developer resources for the FloQast platform — authentication, reconciliations, close module, compliance, and data connectors.","sections":[{"title":"Getting Started","includeFiles":["docs/@v1/getting-started.md","quick-start/**/*"],"excludeFiles":[]},{"title":"Guides","includeFiles":["learn/v1/**/*"],"excludeFiles":[]},{"title":"API Reference","includeFiles":["api-reference/**/*"],"excludeFiles":[]},{"title":"Changelog","includeFiles":["change-log/**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"getting-started-with-the-floqast-api","__idx":0},"children":["Getting Started with the FloQast API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The FloQast API follows consistent patterns across all endpoints. This page covers the concepts you need before making your first request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authentication","__idx":1},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All FloQast API requests require a valid API key passed in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-API-Key"]}," header:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://fq-api.floqast.app/api/users/v1/me\" \\\n  -H \"X-API-Key: <your-api-key>\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Contact your administrator to generate API keys. Each key has scoped permissions — use the minimum required scopes for your integration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"response-envelope","__idx":2},"children":["Response Envelope"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every response — success or error — uses the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ data, errors, metadata }"]}," envelope:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"data\": { ... },\n  \"errors\": [],\n  \"metadata\": {\n    \"flags\": [{ \"name\": \"hasError\", \"value\": false }],\n    \"links\": [{ \"rel\": \"self\", \"href\": \"/api/users/v1/users/abc123\" }]\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The response payload. Object for single resources, array for collections, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," for deletes."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Always empty on success. Contains structured error objects on failure."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contains ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," and HATEOAS ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["links"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"optimistic-concurrency-etag--if-match","__idx":3},"children":["Optimistic Concurrency (ETag / If-Match)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," requests require the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["If-Match"]}," header to prevent lost updates:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," a resource — the response includes an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ETag"]}," header (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"a1b2c3d4\""]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include that value in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["If-Match"]}," on your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the resource changed since your GET, the server returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["412 Precondition Failed"]}," — re-fetch and retry."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["If-Match"]}," is omitted entirely, the server returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["428 Precondition Required"]},"."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Step 1: Fetch\ncurl \"https://fq-api.floqast.app/api/users/v1/users/63ebc28f60431f00109e0642\" \\\n  -H \"X-API-Key: <your-api-key>\"\n# Note the ETag from the response header: ETag: \"a1b2c3d4\"\n\n# Step 2: Update with If-Match\ncurl -X PATCH \"https://fq-api.floqast.app/api/users/v1/users/63ebc28f60431f00109e0642\" \\\n  -H \"X-API-Key: <your-api-key>\" \\\n  -H \"If-Match: \\\"a1b2c3d4\\\"\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"firstName\": \"Alice\"}'\n","lang":"bash"},"children":[]}]},"headings":[{"value":"Getting Started with the FloQast API","id":"getting-started-with-the-floqast-api","depth":1},{"value":"Authentication","id":"authentication","depth":2},{"value":"Response Envelope","id":"response-envelope","depth":2},{"value":"Optimistic Concurrency (ETag / If-Match)","id":"optimistic-concurrency-etag--if-match","depth":2}],"frontmatter":{"title":"Getting Started","slug":"/docs/getting-started","seo":{"description":"Learn the core concepts of the FloQast API — authentication, the response envelope, pagination, error handling, and rate limits.","title":"Getting Started with the FloQast API"}},"lastModified":"2026-06-04T14:44:54.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/getting-started","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}