{"id":16482001,"url":"https://github.com/bod/qonto-api-graphql-bridge","last_synced_at":"2025-09-07T06:04:17.676Z","repository":{"id":138161675,"uuid":"266372526","full_name":"BoD/qonto-api-graphql-bridge","owner":"BoD","description":"Qonto API GraphQL Bridge","archived":false,"fork":false,"pushed_at":"2021-01-03T15:01:35.000Z","size":166,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-07T06:03:34.459Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BoD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-23T16:10:37.000Z","updated_at":"2021-05-25T10:29:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"b15e3f5b-49ae-4c6b-90e2-bece00a726b0","html_url":"https://github.com/BoD/qonto-api-graphql-bridge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BoD/qonto-api-graphql-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fqonto-api-graphql-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fqonto-api-graphql-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fqonto-api-graphql-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fqonto-api-graphql-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoD","download_url":"https://codeload.github.com/BoD/qonto-api-graphql-bridge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fqonto-api-graphql-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274001212,"owners_count":25205211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T13:09:19.019Z","updated_at":"2025-09-07T06:04:17.655Z","avatar_url":"https://github.com/BoD.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qonto API GraphQL Bridge\n\nThis is a [GraphQL](https://graphql.org/) bridge to the [Qonto API](https://api-doc.qonto.eu/2.0/welcome/).\n\nWritten in Kotlin, using [Ktor](https://github.com/ktorio/ktor), [GraphQL Java](https://www.graphql-java.com/) and [klibqonto](https://github.com/BoD/klibqonto).\n\n## Why\n- This project was mainly created for me to learn more about GraphQL\n- But this may _actually_ be useful to people as this bridge improves the original REST API (IMHO),\nwith all the benefits brought by GraphQL (strong typing, documentation, discoverability,\ntooling, etc.).\n\n## Schema\nThe schema is available [here](https://raw.githubusercontent.com/BoD/qonto-api-graphql-bridge/master/src/main/resources/schema.graphqls).\n\n## Authentication\nAuthentication is header based, as documented [here](https://api-doc.qonto.eu/2.0/welcome/authentication).\n\nI recommend using the [ModHeader extension](https://bewisse.com/modheader/) to easily play with the API within a browser. \n\n## Demo instance\nAn instance is running [here](https://qonto-api-graphql-bridge.herokuapp.com/) for your convenience. Note that this is hosted on the\nfree tier of Heroku so of course, do not use it for any kind of serious project, it's\nhere for demonstration purposes only.\n\n## Example query\nHere's an example query demonstrating the service:\n\n```graphql\nfragment allPageInfo on PageInfo {\n  pageIndex\n  nextPageIndex\n  previousPageIndex\n}\n\nquery {\n  organization {\n    id\n  }\n\n  bankAccounts {\n    id\n    iban\n    bic\n    currency\n    authorizedBalance {\n      currency\n      amount\n    }\n    balance {\n      currency\n      amount\n    }\n  }\n\n  labels(pageIndex: 1, itemsPerPage: 4) {\n    totalCount\n    nodes {\n      id\n      name\n      parentLabelId\n    }\n    pageInfo {\n      ...allPageInfo\n    }\n  }\n\n  members(pageIndex: 1, itemsPerPage: 4) {\n    totalCount\n    nodes {\n      firstName\n      lastName\n    }\n    pageInfo {\n      ...allPageInfo\n    }\n  }\n\n  transactions(\n    bankAccountId: \"zgluteks-inc-4242-bank-account-1\",\n    pageIndex: 1,\n    itemsPerPage: 4,\n    statusFilter: [PENDING, REVERSED],\n    orderBy: {field: UPDATED_DATE, direction: ASC},\n    updatedDateFrom: \"2020-01-01T00:00:00.000Z\"\n    updatedDateTo: \"2020-01-08T00:00:00.000Z\"\n  ) {\n    totalCount\n    nodes {\n      id\n      status\n      counterparty\n      emittedDate\n      updatedDate\n      status\n      localAmount {\n        amount\n        currency\n      }\n      initiator {\n        firstName\n        lastName\n      }\n      labels {\n        name\n      }\n      attachments {\n        id\n        creationDate\n        fileName\n        size\n        contentType\n        url\n      }\n      vatRate\n      vatAmount {\n        amount\n        currency\n      }\n    }\n    pageInfo {\n      ...allPageInfo\n    }\n  }\n}\n```\n\n## A word on pagination\nIdeally, I would have preferred to implement [Relay cursor based pagination](https://relay.dev/graphql/connections.htm), but unfortunately\nthis is not really practical as the underlying API uses page based pagination.\n\nTherefore, this bridge uses page based pagination as well.\n\n\n## Author and licence\n_Note: this project is not officially related to or endorsed by Qonto or Olinda SAS._\n\nCopyright (C) 2020-present Benoit 'BoD' Lubek (BoD@JRAF.org)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbod%2Fqonto-api-graphql-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbod%2Fqonto-api-graphql-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbod%2Fqonto-api-graphql-bridge/lists"}