{"id":15697171,"url":"https://github.com/sameerkumar18/pdfgeneratorapi-python","last_synced_at":"2026-03-09T05:32:38.096Z","repository":{"id":57451426,"uuid":"187397060","full_name":"sameerkumar18/pdfgeneratorapi-python","owner":"sameerkumar18","description":"PDFGeneratorAPI Python Wrapper","archived":false,"fork":false,"pushed_at":"2019-12-04T09:32:12.000Z","size":62,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-26T23:53:49.880Z","etag":null,"topics":["package","pdf-document","pdf-files","pdf-generation","pdf-merger","pip","python-library","python3","wrapper-library"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pdfgeneratorapi/","language":"Python","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/sameerkumar18.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-18T19:23:51.000Z","updated_at":"2023-10-10T16:52:05.000Z","dependencies_parsed_at":"2022-09-04T09:22:45.952Z","dependency_job_id":null,"html_url":"https://github.com/sameerkumar18/pdfgeneratorapi-python","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sameerkumar18/pdfgeneratorapi-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameerkumar18%2Fpdfgeneratorapi-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameerkumar18%2Fpdfgeneratorapi-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameerkumar18%2Fpdfgeneratorapi-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameerkumar18%2Fpdfgeneratorapi-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sameerkumar18","download_url":"https://codeload.github.com/sameerkumar18/pdfgeneratorapi-python/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sameerkumar18%2Fpdfgeneratorapi-python/sbom","scorecard":{"id":797372,"data":{"date":"2025-08-11","repo":{"name":"github.com/sameerkumar18/pdfgeneratorapi-python","commit":"d65abd0eccc2d3fe3e7216ae93ee51a6930a79e0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/20 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch 'v0.2'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 9 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T09:23:55.617Z","repository_id":57451426,"created_at":"2025-08-23T09:23:55.617Z","updated_at":"2025-08-23T09:23:55.617Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: 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":["package","pdf-document","pdf-files","pdf-generation","pdf-merger","pip","python-library","python3","wrapper-library"],"created_at":"2024-10-03T19:13:22.057Z","updated_at":"2026-03-09T05:32:38.077Z","avatar_url":"https://github.com/sameerkumar18.png","language":"Python","readme":"[logo]: https://logo.clearbit.com/pdfgeneratorapi.com/ \"PDFGeneratorAPI.com Python Wrapper Logo\"\n\n![alt text][logo] PDFGeneratorAPI.com Python wrapper\n==================================================== \n\n[![PyPI version](https://badge.fury.io/py/pdfgeneratorapi.svg)](https://badge.fury.io/py/pdfgeneratorapi)\n[![Build Status](https://travis-ci.org/sameerkumar18/pdfgeneratorapi-python.svg?branch=master)](https://travis-ci.org/sameerkumar18/pdfgeneratorapi-python)\n[![image](https://img.shields.io/pypi/v/pdfgeneratorapi.svg)](https://pypi.org/project/pdfgeneratorapi/)\n[![image](https://img.shields.io/pypi/l/pdfgeneratorapi.svg)](https://pypi.org/project/pdfgeneratorapi/)\n[![image](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/sameerkumar18)\n[![image](https://img.shields.io/badge/Paypal-Donate-blue.svg)](https://www.paypal.me/sameerkumar18)\n\nWith the PDF Generator API your users can easily create and manage different document templates with an easy-to-use browser based document editor and via API.\n\nAn API and template builder to generate PDF documents from Your software, from Your data.\n\nYou will first need to [register for a PDFGeneratorAPI account](https://pdfgeneratorapi.com/signup) to use this API. It's free to sign up, and use for testing and integration process.\n\n\nInstallation\n------------\n\nSupports Python 3+\nTo install, simply use pip\n```\n$ sudo pip install pdfgeneratorapi\n✨🍰✨\n```\n\nUsage\n-----\n\n```python\n\n\u003e\u003e\u003e from pdfgeneratorapi import PDFGenerator\n\n\u003e\u003e\u003e pdf_client = PDFGenerator(api_key='\u003cPDF_GENERATOR_KEY\u003e', api_secret='\u003cPDF_GENERATOR_SECRET\u003e')\n\u003e\u003e\u003e pdf_client.set_workspace('\u003cPDF_GENERATOR_WORKSPACE\u003e')\n```\n\n\nYou can pass the `api_key`, `api_secret` and `workspace` explicitly. Alternatively, declare these environment variables `PDF_GENERATOR_KEY`, `PDF_GENERATOR_SECRET`.\n\nFor wrapper usage code snippets please check examples.py\n\n#### Features\n\n\n```python\n\n\u003e\u003e\u003e from pdfgeneratorapi import PDFGenerator\n\u003e\u003e\u003e pdf_client = PDFGenerator(api_key='\u003cPDF_GENERATOR_KEY\u003e', api_secret='\u003cPDF_GENERATOR_SECRET\u003e')\n\u003e\u003e\u003e pdf_client.set_workspace('\u003cPDF_GENERATOR_WORKSPACE\u003e')\n```\n\n##### Generate a new Document\n```python\n\u003e\u003e\u003e new_pdf = pdf_client.create_document(template_id=48484, data={\"name\": \"Sameer Kumar\"}, document_format=\"pdf\", response_format=\"url\")\n\u003e\u003e\u003e new_pdf.response\n'https://us1.pdfgeneratorapi.com/share/5434/ce2fc41de8e51fc7db2cbc1700075a92'\n```\n##### Fetch All Templates\n```python\n\u003e\u003e\u003e templates = pdf_client.all_templates(tags=['test_tag'], access=['private'])\n\u003e\u003e\u003e templates[0].id\n1234\n\u003e\u003e\u003e templates[0].name\n'Some name'\n```\n##### Get template by ID\n```python\n\u003e\u003e\u003e template = pdf_client.get_template(template_id=\u003cTEMPLATE_ID\u003e)\n\u003e\u003e\u003e template.layout.format\n'A4'\n```\n##### Create a new template\n```python\n\u003e\u003e\u003e new_template = pdf_client.create_template(name='\u003cTEMPLATE_NAME\u003e')\n\u003e\u003e\u003e new_template.id\n24386\n\u003e\u003e\u003e new_template.name\n'My new template'\n```\n##### Create a copy of a given template\n```python\n\u003e\u003e\u003e copy_template = pdf_client.create_template_copy(template_id=48484, name=\"Copied template\")\n\u003e\u003e\u003e copy_template.layout.format\n'A4'\n```\n##### Get a one-click link to  web editor\n```python\n\u003e\u003e\u003e editor_url = pdf_client.get_editor_url(template_id=48484, data={\"name\": \"Sameer\"})\n'https://us1.pdfgeneratorapi.com/api/v3/templates/19375/editor?key=61e5f04ca1794253ed17e6bb986c1702\u0026workspace=demo.example@actualreports.com\u0026signature=75d7c8fb0c06942da2bf76422f1a79eb72cada6d7ab07f7a7d0eaf8d510897d9\u0026data=https://myawesomeapp.com/data/9129381823.json'\n```\n\n###### Extra Feature\nAll PDFGeneratorResponse objects have two extra attributes:\n1) `to_json`: Returns the API response in raw JSON format.\n2) `to_dict`: Returns the API response in python dict format.\n\nTests\n-----\nSet the following environment variable:\n1. `PDF_GENERATOR_KEY`\n2. `PDF_GENERATOR_SECRET`\n3. `PDF_GENERATOR_WORKSPACE`\n\nRun the test with the following command:\n\n```\n$ python setup.py test\n```\n\n## Default Values\n\nYou can explicitly override certain default assumptions like - \n- Authentication: Signature Authentication. To use Simple Authentication, simple pass `signature_auth=False` in the object init.\n- API URL: `https://\u003cREGION\u003e.pdfgeneratorapi.com/api/\u003cAPI_VERSION\u003e/` . To override - `api_url='\u003cSOME_URL\u003e'`.\n- API Key: `api_key`. Default loads from environment var `PDF_GENERATOR_KEY`\n- API Secret: `api_secret`. Default loads from environment var `PDF_GENERATOR_SECRET`\n- Workspace: `workspace`. Default loads from environment var `PDF_GENERATOR_WORKSPACE`\n- API Region: `api_region`. Default - \"us1\"\n- API Version: `api_version`. Default - \"v3\"\n- Document Format: `document_format`. Default - \"pdf\"\n- Response Format: `response_format`. Default - \"base64\"\n\n## Documentation\n\nPlease see [https://docs.pdfgeneratorapi.com/](https://docs.pdfgeneratorapi.com/) for complete up-to-date documentation.\n\n## About PDFGeneratorAPI.com\n\nPDF Generator API is a RESTful API and a template builder for creating PDF documents from Your software, from Your data. With PDF Generator API you can allow your users to create and manage different document templates with an easy-to-use browser based document editor. And you can merge templates with data from your own software via RESTful API to generate PDF and HTML documents.\n\n## Support\nIf you have any API related query/issue please contact support@pdfgeneratorapi.com\n\nFor any wrapper related query/issue, please raise a GitHub issue.\n## About Author\n[Sameer Kumar](https://www.sameerkumar.website/)\n\nFind me on [Twitter](https://twitter.com/sameer_kumar018)\n","funding_links":["https://www.paypal.me/sameerkumar18"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerkumar18%2Fpdfgeneratorapi-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsameerkumar18%2Fpdfgeneratorapi-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerkumar18%2Fpdfgeneratorapi-python/lists"}