{"id":18783935,"url":"https://github.com/sparkpost/sparkpost-cli","last_synced_at":"2025-04-13T12:27:09.053Z","repository":{"id":138516418,"uuid":"51561208","full_name":"SparkPost/sparkpost-cli","owner":"SparkPost","description":"A CLI to perform various tasks using the SparkPost API","archived":false,"fork":false,"pushed_at":"2018-03-27T19:57:50.000Z","size":9168,"stargazers_count":6,"open_issues_count":7,"forks_count":2,"subscribers_count":63,"default_branch":"master","last_synced_at":"2025-04-13T12:27:03.052Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SparkPost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2016-02-12T01:46:18.000Z","updated_at":"2018-04-16T10:37:50.000Z","dependencies_parsed_at":"2023-07-14T04:30:20.864Z","dependency_job_id":null,"html_url":"https://github.com/SparkPost/sparkpost-cli","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkPost%2Fsparkpost-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkPost%2Fsparkpost-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkPost%2Fsparkpost-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SparkPost%2Fsparkpost-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SparkPost","download_url":"https://codeload.github.com/SparkPost/sparkpost-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248713386,"owners_count":21149676,"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","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-11-07T20:41:13.230Z","updated_at":"2025-04-13T12:27:09.046Z","avatar_url":"https://github.com/SparkPost.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ca href=\"https://www.sparkpost.com\"\u003e\u003cimg src=\"https://www.sparkpost.com/sites/default/files/attachments/SparkPost_Logo_2-Color_Gray-Orange_RGB.svg\" width=\"200px\"/\u003e\u003c/a\u003e\n\n[Sign up](https://app.sparkpost.com/sign-up?src=Dev-Website\u0026sfdcid=70160000000pqBb) for a SparkPost account and visit our [Developer Hub](https://developers.sparkpost.com) for even more content.\n\n# SparkPost Command Line Interface\n\n[![Travis CI](https://travis-ci.org/SparkPost/ruby-sparkpost.svg?branch=master)](https://travis-ci.org/SparkPost/sparkpost-cli)  [![Slack Status](http://slack.sparkpost.com/badge.svg)](http://slack.sparkpost.com)\n\nThe official SparkPost CLI for the [SparkPost API](https://www.sparkpost.com/api).\n\n## Running the released version\n\n* Retrieve the latest `sparkpost_cli.zip` from [here](https://github.com/SparkPost/sparkpost-cli/releases)\n* Unzip `sparkpost_cli.zip`\n* Set up your [environment](#environment) (or pass values as command line arguments)\n* run the binary for your platform\n\n## Environment\n\nAll the CLI commands will check environment variables `SPARKPOST_APIKEY` and `SPARKPOST_BASEURL`.\n\n**NOTE:** If you are using `https://api.sparkpost.com` there is no need to set `SPARKPOST_BASEURL` since that is the default value.\n\n### Linux/OSX\n\n* export SPARKPOST_API_KEY=\"VALID API KEY\"\n\t* or use command line argument `--apikey \"VALID API KEY\"`\n* export SPARKPOST_BASEURL=\"http://YOURSERVER.com\"\n\t* or use command line argument `--baseurl \"http://YOURSERVER.com\"`\n\n### Windows\n\nSee [here](https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sysdm_advancd_environmnt_addchange_variable.mspx?mfr=true) for inststructions on setting up environment variable in Windows.\n\n* `C:\\\u003eset SPARKPOST_API_KEY=VALID_API_KEY`\n\t* or use command line argument `--apikey \"VALID_API_KEY\"`\n* `C:\\\u003eset SPARKPOST_BASEURL=\"http://YOURSERVER.com\"`\n\t* or use command line argument `--baseurl \"http://YOURSERVER.com\"`\n\n\n## Contribute\n\nWe welcome your contributions!  See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to help out.\n\n## Change Log\n\n[See ChangeLog here](https://github.com/SparkPost/sparkpost-cli/releases)\n\n\n## Usage Examples\n\n# Momentum/SparkPost CLI Tools\n\n[Source Code](https://github.com/SparkPost/sparkpost-cli)\n\nThe following CLI commands internally use the RESTful API to interact with Momentum and SparkPost.\n\n## Environment\n\nAll the CLI commands will check `SPARKPOST_APIKEY` and `SPARKPOST_BASEURL`.\n\nIf you are using the CLI command against SparkPost.com you do not need to set `SPARKPOST_BASEURL `.\n\n* export SPARKPOST_API_KEY=\"VALID API KEY\"\n\t* or use command line argument `--apikey \"VALID API KEY\"`\n* export SPARKPOST_BASEURL=\"http://YOURSERVER.com\"\n\t* or use command line argument `--baseurl \"http://YOURSERVER.com\"`\n\n### Suppression CLI\n\nThe suppression CLI defaults to listing the current suppression list. Pass `--command \u003cCOMMAND\u003e` to invoke other operations. Here are the possible commands:\n\n\n| Command | Description |\n|---|---|\n| list | (default) Lists the entries in the SparkPost suppression list  |\n| retrieve | Retrieve the suppression status for a specific recipient by specifying the recipient’s email address  |\n| search | Perform a filtered search for entries in your customer-specific exclusion list. |\n| mandrill | Use this to import the blacklist from Mandrill |\n\n#### List Suppression List\n\nThis command is used to dump the current suppression list:\n\n`sp-suppression-list-cli --command list`\n\nThe output will be a comma delimited output with the following format:\n\n`Recipient, Transactional, NonTransactional, Source, Updated, Created`\n\n\n#### Retrieve Entry\n\nRetrieve the suppression status for a specific recipient by specifying the recipient’s email address in `--recipient` parameter.\n\n`sp-suppression-list-cli --command retrieve --recipient name@example.com`\n\nThe result will have the following format:\n\n``Recipient, Transactional, NonTransactional, Source, Updated, Created, Description`\n\nExample output:\n\n`name@example.com, false, true, Manually Added,2016-04-11T20:15:55+00:00, 2016-04-11T20:15:55+00:00, MBL: name@example.com hard-bounce\"smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/answer/`\n\n\n#### Search Suppression List\n\nPerform a filtered search for entries in your customer-specific exclusion list.\n\n`sp-suppression-list-cli --command search -from 2016-04-01T00:00:00 --types non_transactional `\n\n#### Import Mandrill Blacklist\n\nImport Mandrill blacklist that you get from [here](https://mandrill.zendesk.com/hc/en-us/articles/205582997).\n\n`sp-suppression-list-cli --command mandrill --file PATH_TO_MANDRILL_BLACKLIST.csv`\n\nIf the list was successfully imported the CLI will return `OK`.\n\n#### Import SendGrid Suppressions\n\n- Export suppressions from SendGrid.\n- Remove any columns other than **email** and **created** and they're arranged in same order (email, created).\n- Run the following command to import to SparkPost\n\n```\nsp-suppression-list-cli --command sendgrid --file PATH_TO_SENDGRID_EXPORT.csv\n```\nNote: Replace `PATH_TO_SENDGRID_EXPORT.csv` with your CSV file.\n\nCheck [sendgrid-suppressions.md](sendgrid-suppressions.md) for more info.\n\n#### Help\n\n```\nNAME:\n   sp-suppression-list-cli - SparkPost suppression list CLI\n\nUSAGE:\n   sp-suppression-list-cli [global options] command [command options] [arguments...]\n\nCOMMANDS:\n   help, h\tShows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --baseurl, -u \"https://api.sparkpost.com\"\tOptional baseUrl for SparkPost. [$SPARKPOST_BASEURL]\n   --apikey, -k \t\t\t\tRequired SparkPost API key [$SPARKPOST_API_KEY]\n   --verbose \"false\"\t\t\t\tDumps additional information to console\n   --file, -f \t\t\t\t\tMandrill blocklist CSV. See https://mandrill.zendesk.com/hc/en-us/articles/205582997\n   --command \"list\"\t\t\t\tOptional one of list, retrieve, search, delete, mandrill\n   --recipient \t\t\t\t\tRecipient email address. Example rcpt_1@example.com\n   --from \t\t\t\t\tOptional datetime the entries were last updated, in the format of YYYY-MM-DDTHH:mm:ssZ (2015-04-10T00:00:00)\n   --to \t\t\t\t\tOptional datetime the entries were last updated, in the format YYYY-MM-DDTHH:mm:ssZ (2015-04-10T00:00:00)\n   --types \t\t\t\t\tOptional types of entries to include in the search, i.e. entries with \"transactional\" and/or \"non_transactional\" keys set to true\n   --limit \t\t\t\t\tOptional maximum number of results to return. Must be between 1 and 100000. Default value is 100000\n   --help, -h\t\t\t\t\tshow help\n   --version, -v\t\t\t\tprint the version\n\n```\n\n\n### Webhook CLI\n\nThe webhook CLI is a wrapper around [Webhooks API](https://developers.sparkpost.com/api/#/reference/webhooks). It allows you to list, review and query your webhooks.\n\n| Command | Description |\n|---|---|\n| list | List currently extant webhooks |\n| query | Retrieve details about a webhook by specifying its id in the URI path |\n| status | Retrieve status information regarding batches that have been generated for the given webhook by specifying its id in the URI path |\n\n\n\n#### Webhook List\n\n[see](https://developers.sparkpost.com/api/#/reference/webhooks/list/list-all-webhooks)\n\nList currently extant webhooks.\n\n| Compatibility  | Compatible?  |\n|---|:-:|\n|SparkPost| Yes  |\n|SparkPost Elite| Yes  |\n|Momentum| Yes  |\n\n\n* `\u003e ./sp-webhook-cli`\n* `\u003e ./sp-webhook-cli --command list`\n\n**Sample Output**\n\n```\nName: “Delivery WebHook\"\n\thook ID:   5f61f8a0-738c-11e5-9579-0b90e3e7e87c\n\tTarget:    http://webhook.domain.com:8080/xyz123\n\tSuccess:   2016-02-24T22:23:00+00:00\n\tFail:      2016-02-24T21:53:00+00:00\n\tAuthType:  basic\n```\n\n#### Query Webhook\n\n[see](https://developers.sparkpost.com/api/#/reference/webhooks/retrieve/retrieve-webhook-details)\n\nRetrieve details about a webhook by specifying its id in the URI path.\n\n\n* `\u003e ./sp-webhook-cli --command query --id 5f61f8a0-738c-11e5-9579-0b90e3e7e87c`\n\n**Sample Output**\n\n```\nName: \"Yepher WebHook\"\n\thook ID:   5f61f8a0-738c-11e5-9579-0b90e3e7e87c\n\tTarget:    http://webhook.domain.com:8080/xyz123\n\tSuccess:   2016-02-24T22:23:00+00:00\n\tFail:      2016-02-24T21:53:00+00:00\n\tAuthType:  basic\n\tEvents:\n\t\tbounce\n\t\tdelivery\n\t\tinjection\n\t\tspam_complaint\n\t\tout_of_band\n\t\tpolicy_rejection\n\t\tdelay\n\t\tclick\n\t\topen\n\t\tgeneration_failure\n\t\tgeneration_rejection\n\t\tlist_unsubscribe\n\t\tlink_unsubscribe\n\t\trelay_injection\n\t\trelay_rejection\n\t\trelay_delivery\n\t\trelay_tempfail\n\t\trelay_permfail\n```\n\n\n#### Webhook Status\n\nRetrieve details about a webhook by specifying its id in the URI path.\n\n[see](https://developers.sparkpost.com/api/#/reference/webhooks/validate/retrieve-status-information)\n\nRetrieve status information regarding batches that have been generated for the given webhook by specifying its id in the URI path. Status information includes the successes of batches that previously failed to reach the webhook's target URL and batches that are currently in a failed state.\n\n\n* `./sp-webhook-cli --command status --id 5f61f8a0-738c-11e5-9579-0b90e3e7e87c`\n\n**Sample Output**\n\n```\nBatchId: \"24d44870-db40-11e5-b1e3-63a3a57c2125\"\n\tTime:       2016-02-24T22:23:05.000Z\n\tAttempts:   4\n\tRespCode:   200\n```\n\n\n\n#### Webhook CLI Help\n\n\n```\n--baseurl, -u \"https://api.sparkpost.com\"\tOptional baseUrl for SparkPost. [$SPARKPOST_BASEURL]\n--apikey, -k \t\t\t\tRequired SparkPost API key [$SPARKPOST_API_KEY]\n--username \t\t\t\tUsername this is a special case it is more common to use apices\n--password, -p \t\t\tUsername this is a special it is more common to use apices\n--verbose \"false\"\t\tDumps additional information to console\n--command, -c \"list\"\tOptional one of list, query, status. Default is \"list\"\n--timezone, --tz \t\tOptional Standard timezone identification string, defaults to UTC Example: America/New_York.\n--id \t\t\t\t\tOptional UUID identifying a web hook Example: 12affc24-f183-11e3-9234-3c15c2c818c2.\n--limit \t\t\t\tOptional Maximum number of results to return. Defaults to 1000. Example: 1000.\n--help, -h\t\t\t\tshow help\n--version, -v\t\t\tprint the version\n\n```\n\n### Deliverability Metrics\n\nThis CLI is a wrapper around [Deliverability Metrics](https://developers.sparkpost.com/api/#/reference/metrics)\n\nSparkPost and SparkPost (Elite) log copious amounts of statistical, real-time data about message processing, message disposition, and campaign performance. This reporting data is available in the UI or through the Metrics API. The Metrics API provides a variety of endpoints enabling you to retrieve a summary of the data, data grouped by a specific qualifier, or data by event type. Within each endpoint, you can also apply various filters to drill down to the data for your specific reporting needs.\n\n| Compatibility  | Compatible?  |\n|---|:-:|\n|SparkPost| Yes  |\n|SparkPost Elite| Yes  |\n|Momentum| Yes  |\n\n#### Deliverability by Domain\n\nProvides aggregate metrics grouped by domain over the time window specified. Use `--metrics` and `--domains` to control what columns or domains are returned. It is sometimes useful to pipe the output to a CSV file and open with Excel.\n\n* `./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\"`\n* `./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"domain\"`\n\n#### Deliverability Metrics by Binding\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-binding/deliverability-metrics-by-binding)\n\n**Note:** This endpoint is available in SparkPost Elite or Momentum only.\n\nProvides aggregate metrics grouped by binding over the time window specified.\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"binding\"``\n\n\n#### Deliverability Metrics by Binding Group\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-binding)\n\n**Note:** This endpoint is available in SparkPost Elite or Momentum only. Provides aggregate metrics grouped by binding group over the time window specified.\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"binding-group\"``\n\n\n#### Deliverability Metrics by Campaign\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-binding/deliverability-metrics-by-campaign)\n\nProvides aggregate metrics grouped by campaign over the time window specified.\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"campaign\"``\n\n\n#### Deliverability Metrics by Template\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-binding-group/deliverability-metrics-by-template)\n\nProvides aggregate metrics grouped by template over the time window specified.\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"template\"``\n\n#### Deliverability Metrics by Watched Domain\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-campaign/deliverability-metrics-by-watched-domain)\n\nProvides aggregate metrics grouped by watched domain over the time window specified. The difference between domain and watched domain is that watched domains are comprised of the top 99% domains in the world.\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"watched-domain\"``\n\n\n#### Time Series\n\n[see](https://developers.sparkpost.com/api/#/reference/metrics/deliverability-metrics-by-template/time-series-metrics)\n\nProvides deliverability metrics ordered by a precision of time.The following table describes the validation for the precision parameter:\n\n* ``./sp-deliverability-metrics-cli --from \"2014-02-01T00:00\" --command \"watched-domain\"` --precision day`\n\n| Value of  | Valid for time window of  |\n|---|:-:|\n|1min, 5min|\tday|\n|hour\t| month|\n|day, month | any|\n\n#### Deliverability Usage\n\n```\n--baseurl, -u            Optional baseUrl for SparkPost. [$SPARKPOST_BASEURL]\n--apikey, -k \t\t\t Required SparkPost API key [$SPARKPOST_API_KEY]\n--username \t\t\t\t Username this is a special case it is more common to use apikey\n--password, -p \t\t\t Username this is a special it is more common to use apikey\n--verbose \"false\"\t\t Dumps additional information to console\n--command \"domain\"\t\t Optional one of domain, binding, binding-group, campaign, template, watched-domain, time-series\n--from, -f \t\t\t\t Required Datetime in format of YYYY-MM-DDTHH:MM. Example: 2016-02-10T08:00. Default: One hour ago\n--to \t\t\t\t\t Optional Datetime in format of YYYY-MM-DDTHH:MM. Example: 2016-02-10T00:00. Default: now.\n--domains, -d \t\t\t Optional Comma-delimited list of domains to include Example: gmail.com,yahoo.com,hotmail.com.\n--campaigns, -c \t\t Optional Comma-delimited list of campaigns to include. Example: Black Friday\n--metrics, -m            Required Comma-delimited list of metric name for filtering\n--templates \t\t\t Optional comma-delimited list of template IDs to include Example: summer-sale\n--nodes \t\t\t\t Optional comma-delimited list of nodes to include ( Note: SparkPost Elite only ) Example: Email-MSys-1,Email-MSys-2,Email-MSys-3\n--bindings \t\t\t\t Optional comma-delimited list of bindings to include (Note: SparkPost Elite only) Example: Confirmation\n--binding_groups \t\t Optional comma-delimited list of binding groups to include (Note: SparkPost Elite only) Example: Transaction\n--protocols \t\t\t Optional comma-delimited list of protocols for filtering (Note: SparkPost Elite only) Example: smtp\n--timezone \t\t\t\t Standard timezone identification string, defaults to UTC Example: America/New_York.\n--limit \t\t\t\t Optional maximum number of results to return Example: 5\n--order_by \t\t\t\t Optional metric by which to order results Example: count_injected\n--precision              Precision of timeseries data returned Example: day. Possible values:  1min , 5min , 15min , hour , 12hr , day , week , month .\n--help, -h\t\t\t\t show help\n--version, -v\t\t\t print the version\n\n```\n\n| Metric Name |\n|---|\n|`count_injected`|\n|`count_bounce`|\n|`count_rejected`|\n|`count_delivered`|\n|`count_delivered_first`|\n|`count_delivered_subsequent`|\n|`total_delivery_time_first`|\n|`total_delivery_time_subsequent`|\n|`total_msg_volume`|\n|`count_policy_rejection`|\n|`count_generation_rejection`|\n|`count_generation_failed`|\n|`count_inband_bounce`|\n|`count_outofband_bounce`|\n|`count_soft_bounce`|\n|`count_hard_bounce`|\n|`count_block_bounce`|\n|`count_admin_bounce`|\n|`count_undetermined_bounce`|\n|`count_delayed`|\n|`count_delayed_first`|\n|`count_rendered`|\n|`count_unique_rendered`|\n|`count_unique_confirmed_opened`|\n|`count_clicked`|\n|`count_unique_clicked`|\n|`count_targeted`|\n|`count_sent`|\n|`count_accepted`|\n|`count_spam_complaint`|\n\n\n### Message Events\n\n\n| Compatibility | Compatible? |\n|---|:-:|\n|SparkPost| Yes |\n|SparkPost Elite| Yes |\n|Momentum| No |\n\nThe following options are available for the Message Event CLI:\n\n| Option | Default | Descrption|\n|---|:-:|:-:|\n|--baseurl, -u| \"https://api.sparkpost.com\"|\tOptional baseUrl for SparkPost. [$SPARKPOST_BASEURL]|\n|--apikey, -k | |Required SparkPost API key [$SPARKPOST_API_KEY]|\n|--username| |Username it is more common to use apikey|\n|--password, -p| |Username it is more common to use apikey|\n|--verbose| \"false\"|Dumps additional information to console|\n|--bounce_classes, -b| |Optional comma-delimited list of bounce classification codes to search.|\n|--campaign_ids, -i| |Optional comma-delimited list of campaign ID's to search. Example: \"Example Campaign Name\"|\n|--events, -e||Optional comma-delimited list of event types to search. Defaults to all event types.|\n|--friendly_froms|||Optional comma-delimited list of friendly_froms to search|\n|--from, -f||Optional Datetime in format of YYYY-MM-DDTHH:MM. Example: 2016-02-10T08:00. Default: One hour ago|\n|--message_ids||Optional Comma-delimited list of message ID's to search. Example: 0e0d94b7-9085-4e3c-ab30-e3f2cd9c273e.|\n|--page||Optional results page number to return. Used with per_page for paging through result. Example: 25. Default: 1|\n|--per_page||Optional number of results to return per page. Must be between 1 and 10,000 (inclusive). Example: 100. Default: 1000.|\n|--reason||Optional bounce/failure/rejection reason that will be matched using a wildcard (e.g., %%reason%%). Example: bounce.|\n|--recipients||Optional Comma-delimited list of recipients to search. Example: recipient@example.com|\n|--template_ids||Optional Comma-delimited list of template ID's to search. Example: templ-1234.|\n|--timezone||Optional Standard timezone identification string. Example: America/New_York. Default: UTC|\n|--to||Optional Datetime in format of YYYY-MM-DDTHH:MM. Example: 2016-02-10T00:00. Default: now.|\n|--transmission_ids||Optional Comma-delimited list of transmission ID's to search (i.e. id generated during creation of a transmission). Example: 65832150921904138.|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkpost%2Fsparkpost-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsparkpost%2Fsparkpost-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkpost%2Fsparkpost-cli/lists"}