{"id":37263153,"url":"https://github.com/list-interop/convertkit-client","last_synced_at":"2026-01-15T23:45:48.820Z","repository":{"id":36963126,"uuid":"489022679","full_name":"list-interop/convertkit-client","owner":"list-interop","description":"A PHP API client for ConvertKit","archived":false,"fork":false,"pushed_at":"2025-12-31T14:48:25.000Z","size":621,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"0.5.x","last_synced_at":"2026-01-04T22:57:31.849Z","etag":null,"topics":["convertkit","convertkit-api","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/list-interop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-05T15:14:41.000Z","updated_at":"2025-12-13T05:06:29.000Z","dependencies_parsed_at":"2024-12-30T20:41:31.031Z","dependency_job_id":"cf610f9c-9c5e-4ca9-a2b7-64177f48f31a","html_url":"https://github.com/list-interop/convertkit-client","commit_stats":{"total_commits":75,"total_committers":3,"mean_commits":25.0,"dds":0.56,"last_synced_commit":"7d1a552c836d1553ce0ae85beff0f27140b059b5"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/list-interop/convertkit-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/list-interop%2Fconvertkit-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/list-interop%2Fconvertkit-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/list-interop%2Fconvertkit-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/list-interop%2Fconvertkit-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/list-interop","download_url":"https://codeload.github.com/list-interop/convertkit-client/tar.gz/refs/heads/0.5.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/list-interop%2Fconvertkit-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28419272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["convertkit","convertkit-api","php"],"created_at":"2026-01-15T23:45:48.085Z","updated_at":"2026-01-15T23:45:48.814Z","avatar_url":"https://github.com/list-interop.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConvertKit PHP API Client\n\n[![Build Status](https://github.com/list-interop/convertkit-client/workflows/Continuous%20Integration/badge.svg)](https://github.com/list-interop/convertkit-client/actions?query=workflow%3A\"Continuous+Integration\")\n\n[![codecov](https://codecov.io/gh/list-interop/convertkit-client/branch/main/graph/badge.svg)](https://codecov.io/gh/list-interop/convertkit-client)\n[![Psalm Type Coverage](https://shepherd.dev/github/list-interop/convertkit-client/coverage.svg)](https://shepherd.dev/github/list-interop/convertkit-client)\n\n[![Latest Stable Version](https://poser.pugx.org/list-interop/convertkit-client/v/stable)](https://packagist.org/packages/list-interop/convertkit-client)\n[![Total Downloads](https://poser.pugx.org/list-interop/convertkit-client/downloads)](https://packagist.org/packages/list-interop/convertkit-client)\n\n## Introduction\n\nThis is an API Client for the [ConvertKit](https://convertkit.com) mailing list service for PHP versions 8.0 and up\n\nThere are several clients available on Packagist, but the main motivation here is being agnostic to the HTTP client in use.\n\nThe client uses PSR17 and 18 standards, so you can bring your own preferred libs.\n\n## Implemented Features\n\n- [x] Retrieve form by id\n- [x] Subscribe to a form _(Custom fields are not yet available)_\n- [x] List and find tags\n- [x] Create Tags\n- [ ] List custom fields\n- [ ] Crud for custom fields\n- [ ] Fetch form subscriber\n- [ ] Other Crud operations for subscribers\n- [ ] Tagging subscribers post subscribe.\n- [ ] Stuff regarding webhooks and purchases…\n\n## Roadmap\n\nIt'd be nice to work up the rest of the available features in the API, but it probably won't happen very quickly, I'm more likely to work on different implementations first to firm up the spec there so that stable releases can be made. Shipping a caching client using a psr cache pool would be handy for those aspects of the API that rarely change. It would also be quite trivial to implement.\n\n## Installation\n\nComposer is the only supported installation method…\n\nAs previously mentioned, you'll need a [PSR-18 HTTP Client](https://packagist.org/providers/psr/http-client-implementation) first and also [PSR-7 and PSR-17 implementations](https://packagist.org/providers/psr/http-factory-implementation). For example:\n\n```shell\ncomposer require php-http/curl-client\ncomposer require laminas/laminas-diactoros\n```\n\nYou'll then be able to install this with:\n\n```shell\ncomposer require list-interop/convertkit-client\n```\n\n## Usage\n\nDocs are admittedly thin on the ground.\n\nThe lib ships with a PSR11 factory that you can integrate with your container of choice. It falls back to discovery for whatever PSR-7/17/18 stuff that you have installed.\n\nUltimately, you'll need API Keys to get going, and assuming you can provide the `Client` constructor with its required constructor dependencies, you'll be able to start issuing commands and getting results:\n\n### Add a subscriber…\n\n```php\nuse ListInterop\\ConvertKit\\Client;\nuse ListInterop\\ConvertKit\\Exception\\ApiError;\nuse ListInterop\\ConvertKit\\Exception\\ConvertKitError;\nuse ListInterop\\ConvertKit\\Exception\\RequestFailure;\n\nassert($client instanceof Client);\n\n$formId = 123; // Retrieve this from the dashboard or by inspecting the forms returned by the api.\n\ntry {\n    $client-\u003esubscribeToForm($formId, 'me@example.com', 'Fred', ['tag 1', 'tag 2']);\n} catch (RequestFailure $error) {\n    // Network error - can't reach ConvertKit\n} catch (ApiError $error) {\n    // Something was wrong with the values provided, or your API key was wonky\n    // i.e. The API rejected your request\n} catch (ConvertKitError $error) {\n    // Generic Error, Assertion failed etc.\n    // All exceptions implement this interface, Providing an invalid email address will get you here.\n}\n\n```\n\nYou should find that exceptions are consistent and meaningful, but for now, to find out what those are, you'll need to look at the source.\n\n## Contributions\n\nAre most welcome, but please make sure that pull requests include relevant tests. There's a handy composer script you can run locally:\n\n```shell\ncomposer check\n```\n\n… which will check coding standards, run psalm and phpunit in order.\n\n## License\n\n[MIT Licensed](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flist-interop%2Fconvertkit-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flist-interop%2Fconvertkit-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flist-interop%2Fconvertkit-client/lists"}