{"id":23699643,"url":"https://github.com/bzdvdn/amocrm-api-wrapper","last_synced_at":"2025-09-03T03:30:42.016Z","repository":{"id":42045635,"uuid":"224668230","full_name":"bzdvdn/amocrm-api-wrapper","owner":"bzdvdn","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-21T21:55:31.000Z","size":133,"stargazers_count":21,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-05T21:16:04.187Z","etag":null,"topics":["amocrm","amocrm-api","client","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bzdvdn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-28T14:15:37.000Z","updated_at":"2025-04-25T12:52:49.000Z","dependencies_parsed_at":"2022-09-13T15:31:22.232Z","dependency_job_id":null,"html_url":"https://github.com/bzdvdn/amocrm-api-wrapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bzdvdn/amocrm-api-wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdvdn%2Famocrm-api-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdvdn%2Famocrm-api-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdvdn%2Famocrm-api-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdvdn%2Famocrm-api-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bzdvdn","download_url":"https://codeload.github.com/bzdvdn/amocrm-api-wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdvdn%2Famocrm-api-wrapper/sbom","scorecard":{"id":260619,"data":{"date":"2025-08-11","repo":{"name":"github.com/bzdvdn/amocrm-api-wrapper","commit":"0b19d5c62a2c9d9410e8e9e4cb6c237c70ee7ff1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Code-Review","score":1,"reason":"Found 4/22 approved changesets -- score normalized to 1","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":"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":"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":"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":"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":"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":"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":"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":"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":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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'"],"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 13 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-17T10:45:12.161Z","repository_id":42045635,"created_at":"2025-08-17T10:45:12.161Z","updated_at":"2025-08-17T10:45:12.161Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273384757,"owners_count":25095959,"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-03T02:00:09.631Z","response_time":76,"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":["amocrm","amocrm-api","client","python"],"created_at":"2024-12-30T08:14:09.676Z","updated_at":"2025-09-03T03:30:41.731Z","avatar_url":"https://github.com/bzdvdn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wrapper for amocrm rest api\n\n## Install\n\nInstall using `pip`...\n\n    pip install amocrm-api-wrapper\n\n## Usage\n\n=======\n\n```python\nfrom amocrm_api import AmoLegacyClient # for login password auth\nfrom amocrm_api import AmoOAuthClient # for oauth\nfrom datetime import datetime\n\nclient = AmoLegacyClient('\u003clogin\u003e', '\u003cpassword\u003e', '\u003ccrm_url\u003e')\nclient = AmoOAuthClient('\u003caccess_token\u003e', '\u003crefresh_token\u003e', '\u003ccrm_url\u003e', '\u003cclient_id\u003e', '\u003cclient_secret\u003e', '\u003credirect_uri\u003e')\ndt = datetime.datetime.today().strftime(\"%a, %d %b %Y %H-%m-%d\")\ndate_time = f\"{dt} UTC\"\n\n# for Legacy client\nheaders = {\n    \"IF-MODIFIED-SINCE\": f\"{date_time}\",\n    \"Content-Type\": \"application/json\",\n}\n\nclient.update_session_params(headers)\n```\n\n### get account info\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/account-info\n- params:\n\n|          name          | type | default value |\n| :--------------------: | :--: | :-----------: |\n|     with_amojo_id      | bool |     False     |\n|   with_amojo_rights    | bool |     False     |\n|   with_users_groups    | bool |     False     |\n|    with_task_types     | bool |     False     |\n|      with_version      | bool |     False     |\n|   with_ventity_names   | bool |     False     |\n| with_datetime_settings | bool |     False     |\n\n```python\naccount_info = client.get_account_info()\n```\n\n### create leads\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads-api#leads-add\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n| objects | list |       -       |\n\n```python\nobjects = [\n    {\n        \"name\": \"Сделка для примера 1\",\n        \"created_by\": 0,\n        \"price\": 20000,\n        \"custom_fields_values\": [\n            {\n                \"field_id\": 294471,\n                \"values\": [\n                    {\n                        \"value\": \"Наш первый клиент\"\n                    }\n                ]\n            }\n        ]\n    },\n    {\n        \"name\": \"Сделка для примера 2\",\n        \"price\": 10000,\n        \"_embedded\": {\n            \"tags\": [\n                {\n                    \"id\": 2719\n                }\n            ]\n        }\n    }\n]\nresult = client.create_leads(objects)\n```\n\n### update leads\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads-api#leads-edit\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n| objects | list |       -       |\n\n```python\nobjects = [\n    {\n        \"id\": 54886,\n        \"pipeline_id\": 47521,\n        \"status_id\": 143,\n        \"date_close\": 1589297221,\n        \"loss_reason_id\": 7323,\n        \"updated_by\": 0\n    },\n    {\n        \"id\": 54884,\n        \"price\": 50000,\n        \"pipeline_id\": 47521,\n        \"status_id\": 525743,\n        \"_embedded\": {\n            \"tags\": None\n        }\n    }\n]\nresult = client.update_leads(objects)\n```\n\n### get lead\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads-api#lead-detail\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n| lead_id | int  |       -       |\n\n```python\nlead = client.get_lead(123)\n```\n\n### get leads\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads-api#leads-list\n- params:\n\n|    name     |      type      | default value |\n| :---------: | :------------: | :-----------: |\n|    limit    |      int       |      250      |\n|    page     |      int       |       1       |\n| with_params | Optional[list] |     None      |\n|   filters   | Optional[dict] |     None      |\n|    order    | Optional[dict] |     None      |\n\n```python\nleads = client.get_leads(limit=10, page=3, filters={'updated_at__from': '\u003ctimestamp\u003e', 'updated_at__to': '\u003ctimestamp\u003e'})\n# for any timestamp fields like created_at, updated_at, closed_at u need to user __ like created_at__from, created_at__to\n```\n\n### get unsorted leads\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-list\n- params:\n\n|         name          |          type          | default value |\n| :-------------------: | :--------------------: | :-----------: |\n|         limit         |          int           |      250      |\n|         page          |          int           |       1       |\n|    filter_by_uids     | Union[str, list, None] |     None      |\n| filter_by_pipeline_id | Union[str, list, None] |     None      |\n|  filter_by_category   | Union[str, list, None] |     None      |\n|       order_by        |     Optional[dict]     |     None      |\n\n```python\nunsorted_leads = client.get_unsorted_leads(limit=10, page=3, filter_by_pipeline_id=[1, 2310, 8751035])\n```\n\n### get unsorted lead by uid\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-detail\n- params:\n\n| name | type | default value |\n| :--: | :--: | :-----------: |\n| uid  | str  |       -       |\n\n```python\nunsorted_lead = client.get_unsorted_by_uid('ufsigkgdjlk13igmd')\n```\n\n### create unsorted lead by sip\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-add-sip\n- params:\n\n|    name     |     type      | default value |\n| :---------: | :-----------: | :-----------: |\n| source_uid  |      str      |       -       |\n| source_name |      str      |       -       |\n|  metadata   |     dict      |       -       |\n|  conctact   |     dict      |       -       |\n|    lead     |     dict      |       -       |\n|  comapany   |     dict      |       -       |\n| pipeline_id | Optional[int] |     None      |\n| created_at  | Optional[int] |     None      |\n| request_id  | Optional[int] |     None      |\n\n```python\nunsorted_lead = {\n        \"request_id\": \"123\",\n        \"source_name\": \"ОАО Коспромсервис\",\n        \"source_uid\": \"a1fee7c0fc436088e64ba2e8822ba2b3\",\n        \"pipeline_id\": 2194576,\n        \"created_at\": 1510261200,\n        \"leads\": {\n                \"name\": \"Тех обслуживание\",\n                \"price\": 5000,\n                \"custom_fields_values\": [\n                    {\n                        \"field_id\": 284785,\n                        \"values\": [\n                            {\n                                \"value\": \"Кастомное поле\"\n                            }\n                        ]\n                    }\n                ],\n                \"_embedded\": {\n                    \"tags\": [\n                        {\n                            \"id\": 263809\n                        }\n                    ]\n                }\n            }\n        ],\n        \"contacts\":\n            {\n                \"name\": \"Контакт для примера\"\n            }\n        \"companies\":\n            {\n                \"name\": \"ОАО Коспромсервис\"\n            }\n        },\n        \"metadata\": {\n            \"is_call_event_needed\": True,\n            \"uniq\": \"a1fe231cc88e64ba2e8822ba2b3ewrw\",\n            \"duration\": 54,\n            \"service_code\": \"CkAvbEwPam6sad\",\n            \"link\": \"https://example.com\",\n            \"phone\": 79998888888,\n            \"called_at\": 1510261200,\n            \"from\": \"onlinePBX\"\n        }\n    }\nresult = client.create_unsorted_by_sip(**unsorted_lead)\n```\n\n### create unsorted lead by form\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-add-form\n- params:\n\n|    name     |     type      | default value |\n| :---------: | :-----------: | :-----------: |\n| source_uid  |      str      |       -       |\n| source_name |      str      |       -       |\n|  metadata   |     dict      |       -       |\n|  conctact   |     dict      |       -       |\n|    lead     |     dict      |       -       |\n|  comapany   |     dict      |       -       |\n| pipeline_id | Optional[int] |     None      |\n| created_at  | Optional[int] |     None      |\n| request_id  | Optional[int] |     None      |\n\n```python\nunsorted_lead = {\n        \"request_id\": \"123\",\n        \"source_name\": \"ОАО Коспромсервис\",\n        \"source_uid\": \"a1fee7c0fc436088e64ba2e8822ba2b3\",\n        \"pipeline_id\": 2194576,\n        \"created_at\": 1590830520,\n        \"leads\": {\n            \"name\": \"Тех обслуживание\",\n            \"visitor_uid\": \"5692210d-58d0-468c-acb2-dce7f93eef87\",\n            \"price\": 5000,\n            \"custom_fields_values\": [\n                {\n                    \"field_id\": 284785,\n                    \"values\": [\n                        {\n                            \"value\": \"Дополнительное поле\"\n                        }\n                    ]\n                }\n            ],\n            \"_embedded\": {\n                \"tags\": [\n                    {\n                        \"name\": \"Тег для примера\"\n                    }\n                ]\n            }\n        },\n        \"contacts\":\n            {\n                \"name\": 234,\n                \"first_name\": \"123213\",\n                \"last_name\": 234,\n                \"custom_fields_values\": [\n                    {\n                        \"field_code\": \"PHONE\",\n                        \"values\": [\n                            {\n                                \"value\": \"+7912321323\"\n                            }\n                        ]\n                    }\n                ]\n            },\n        \"companies\": {\n            \"name\": \"ОАО Коспромсервис\"\n        },\n        \"metadata\": {\n            \"ip\": \"123.222.2.22\",\n            \"form_id\": \"a1fee7c0fc436088e64ba2e8822ba2b3ewrw\",\n            \"form_sent_at\": 1590830520,\n            \"form_name\": \"Форма заявки для полёта в космос\",\n            \"form_page\": \"https://example.com\",\n            \"referer\": \"https://www.google.com/search?\u0026q=elon+musk\"\n        }\n    }\nresult = client.create_unsorted_by_form(**unsorted_lead)\n```\n\n### accept unsorted lead\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-accept\n- params:\n\n|   name    | type | default value |\n| :-------: | :--: | :-----------: |\n|    uid    | str  |       -       |\n|  user_id  | int  |       -       |\n| status_id | int  |       -       |\n\n```python\nresult = client.accept_unsorted('jkjsoijg2321kgkdu2', 2310, 4444)\n```\n\n### decline unsorted lead\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-decline\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n|   uid   | str  |       -       |\n| user_id | int  |       -       |\n\n```python\nresult = client.decline_unsorted('jkjsoijg2321kgkdu2', 2310,)\n```\n\n### link unsorted lead ot another lead\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-link\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n|   uid   | str  |       -       |\n| user_id | int  |       -       |\n|  link   | dict |       -       |\n\n```python\nresult = client.link_unsorted('jkjsoijg2321kgkdu2', 2310, link={\n    \"entity_id\": 93144801,\n    \"entity_type\": \"leads\"\n})\n```\n\n### get summary unsorted leads\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/unsorted-api#unsorted-summary\n- params:\n\n|        name        |          type          | default value |\n| :----------------: | :--------------------: | :-----------: |\n|        uid         | Union[str, list, None] |     None      |\n| created_at\\_\\_from |     Optional[str]      |     None      |\n|  created_at\\_\\_to  |     Optional[str]      |     None      |\n|    pipeline_id     | Union[str, list, None] |     None      |\n\n```python\nsummary_unsorted = client.get_summary_unsorted()\n```\n\n### get pipelines\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#pipelines-list\n\n```python\npipelines = client.get_pipelines()\n```\n\n### craete pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#pipelines-add\n- params:\n\n|      name      |     type      | default value |\n| :------------: | :-----------: | :-----------: |\n|      name      |      str      |       -       |\n|      sort      |      int      |       -       |\n|    is_main     |     bool      |       -       |\n|    statuses    |     list      |       -       |\n| is_unsorted_on |     bool      |     False     |\n|   request_id   | Optional[str] |     None      |\n\n```python\npipeline = {\n    \"name\": \"Воронка доп продаж\",\n    \"is_main\": False,\n    \"is_unsorted_on\": True,\n    \"sort\": 20,\n    \"request_id\": \"123\",\n    \"statuses\": [\n        {\n            \"id\": 142,\n            \"name\": \"Мое название для успешных сделок\"\n        },\n        {\n            \"name\": \"Первичный контакт\",\n            \"sort\": 10,\n            \"color\": \"#fffeb2\"\n        }\n    ]\n}\nresult = client.create_pipeline(**pipeline)\n```\n\n### edit pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#pipelines-add\n- params:\n\n|      name      | type | default value |\n| :------------: | :--: | :-----------: |\n|  pipeline_id   | int  |       -       |\n|      name      | str  |       -       |\n|      sort      | int  |       -       |\n|    is_main     | bool |       -       |\n| is_unsorted_on | bool |     False     |\n\n```python\npipeline = {\n    \"pipeline_id\": 2310,\n    \"name\": \"Новое название для воронки\",\n    \"is_main\": False,\n    \"is_unsorted_on\": False,\n    \"sort\": 100\n}\nresult = client.edit_pipeline(**pipeline)\n```\n\n### delete pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#pipeline-delete\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n\n```python\nresult = client.delete_pipeline(2310)\n```\n\n### get statuses by pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#statuses-list\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n\n```python\npipeline_statuses = client.get_pipeline_statuses(2310)\n```\n\n### get pipeline status\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#status-detail\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n|  status_id  | int  |       -       |\n\n```python\npipeline_status = client.get_pipeline_status(2310, 123)\n```\n\n### add statuses to pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#statuses-add\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n|  statuses   | list |       -       |\n\n```python\nstatuses = [\n    {\n        \"name\": \"Новый этап\",\n        \"sort\": 100,\n        \"color\": \"#fffeb2\"\n    },\n    {\n        \"name\": \"Новый этап 2\",\n        \"sort\": 200,\n        \"color\": \"#fffeb2\"\n    }\n]\nresult = client.add_statuses_to_pipeline(2310, statuses)\n```\n\n### edit pipeline status\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#statuses-add\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n|  status_id  | int  |       -       |\n|    name     | str  |       -       |\n|    sort     | int  |       -       |\n|    color    | str  |       -       |\n\n```python\nresult = client.edit_pipeline_status(2310, 123, 'Новый Этап', sort=500, color=\"#fffeb2\")\n```\n\n### delete status from pipeline\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/leads_pipelines#status-delete\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| pipeline_id | int  |       -       |\n|  status_id  | int  |       -       |\n\n```python\n\nresult = client.delete_status_from_pipeline(2310, 123)\n```\n\n### get contacts\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/contacts-api#contacts-list\n- params:\n\n|    name     |      type      | default value |\n| :---------: | :------------: | :-----------: |\n|    limit    |      int       |      250      |\n|    page     |      int       |       1       |\n| with_params | Optional[list] |     None      |\n|   filters   | Optional[dict] |     None      |\n|    order    | Optional[dict] |     None      |\n\n```python\n\ncontacts = client.get_contacts(limit=10, page=3, filters={'updated_at__from': '\u003ctimestamp\u003e', 'updated_at__to': '\u003ctimestamp\u003e'})\n# for any timestamp fields like created_at, updated_at, closed_at u need to user __ like created_at__from, created_at__to\n```\n\n### get contact\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/contacts-api#contact-detail\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n| contact_id | int  |       -       |\n\n```python\n\ncontact = client.get_contact(123989)\n```\n\n### create contacts\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/contacts-api#contacts-add\n- params:\n\n|   name   | type | default value |\n| :------: | :--: | :-----------: |\n| contacts | list |       -       |\n\n```python\nconctacts = [\n    {\n        \"first_name\": \"Петр\",\n        \"last_name\": \"Смирнов\",\n        \"custom_fields_values\": [\n            {\n                \"field_id\": 271316,\n                \"values\": [\n                    {\n                        \"value\": \"Директор\"\n                    }\n                ]\n            }\n        ]\n    },\n    {\n        \"name\": \"Владимир Смирнов\",\n        \"created_by\": 47272\n    }\n]\nresult = client.create_contacts(contacts)\n```\n\n### update contacts\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/contacts-api#contacts-edit\n- params:\n\n|   name   | type | default value |\n| :------: | :--: | :-----------: |\n| contacts | list |       -       |\n\n```python\nconctacts = [\n    {\n        \"id\": 3,\n        \"first_name\": \"Иван\",\n        \"last_name\": \"Иванов\",\n        \"custom_fields_values\": [\n            {\n                \"field_id\": 66192,\n                \"field_name\": \"Телефон\",\n                \"values\": [\n                    {\n                        \"value\": \"79999999999\",\n                        \"enum_code\": \"WORK\"\n                    }\n                ]\n            }\n       ]\n    }\n]\nresult = client.update_contacts(contacts)\n```\n\n### get companies\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/companies-api#companies-list\n- params:\n\n|    name     |      type      | default value |\n| :---------: | :------------: | :-----------: |\n|    limit    |      int       |      250      |\n|    page     |      int       |       1       |\n| with_params | Optional[list] |     None      |\n|   filters   | Optional[dict] |     None      |\n|    order    | Optional[dict] |     None      |\n\n```python\n\ncompanies = client.get_companies(limit=10, page=3, filters={'updated_at__from': '\u003ctimestamp\u003e', 'updated_at__to': '\u003ctimestamp\u003e'})\n# for any timestamp fields like created_at, updated_at, closed_at u need to user __ like created_at__from, created_at__to\n```\n\n### get company\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/companies-api#company-detail\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n| company_id | int  |       -       |\n\n```python\n\ncompany = client.get_company(9988)\n```\n\n### create companies\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/companies-api#companies-add\n- params:\n\n|   name    | type | default value |\n| :-------: | :--: | :-----------: |\n| companies | list |       -       |\n\n```python\ncompanies = [\n    {\n        \"name\": \"АО Рога и Копыта\",\n        \"custom_fields_values\": [\n            {\n                \"field_code\": \"PHONE\",\n                \"values\": [\n                    {\n                        \"value\": \"+7912322222\",\n                        \"enum_code\": \"WORK\"\n                    }\n                ]\n            }\n        ]\n    }\n]\nresult = client.create_companies(companies)\n```\n\n### update companies\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/companies-api#companies-edit\n- params:\n\n|   name    | type | default value |\n| :-------: | :--: | :-----------: |\n| companies | list |       -       |\n\n```python\ncompanies = [\n    {\n        \"id\": 11090825,\n        \"name\": \"Новое название компании\",\n        \"custom_fields_values\": [\n            {\n                \"field_code\": \"EMAIL\",\n                \"values\": [\n                    {\n                        \"value\": \"test@example.com\",\n                        \"enum_code\": \"WORK\"\n                    }\n                ]\n            }\n       ]\n    }\n]\nresult = client.update_companies(companies)\n```\n\n### get catalogs\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#lists-list\n- params:\n\n| name  | type | default value |\n| :---: | :--: | :-----------: |\n| page  | int  |       1       |\n| limit | int  |      250      |\n\n```python\ncatalogs = client.get_catalogs(page=1, limit=5)\n```\n\n### get catalog\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#list-detail\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n| catalog_id | int  |       1       |\n\n```python\ncatalog = client.get_catalog(12319)\n```\n\n### create catalogs\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#lists-add\n- params:\n\n|   name   | type | default value |\n| :------: | :--: | :-----------: |\n| catalogs | list |       -       |\n\n```python\ncatalogs = [\n    {\n        \"name\": \"Тестовый список\",\n        \"can_add_elements\": True,\n        \"can_link_multiple\": False,\n        \"request_id\": \"123\"\n    }\n]}\n]\nresult = client.create_catalogs(catalogs)\n```\n\n### update catalogs\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#lists-edit\n- params:\n\n|   name   | type | default value |\n| :------: | :--: | :-----------: |\n| catalogs | list |       -       |\n\n```python\ncatalogs = [\n    {\n        \"id\": 5787,\n        \"name\": \"Новое имя списка\",\n        \"can_add_elements\": True,\n        \"can_link_multiple\": False\n    }\n]\nresult = client.update_catalogs(catalogs)\n```\n\n### get elements from catalog\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#list-elements-list\n- params:\n\n|    name     |      type      | default value |\n| :---------: | :------------: | :-----------: |\n| catalogs_id |      int       |       -       |\n|    page     |      int       |       1       |\n|    limit    |      int       |      250      |\n|   filters   | Optional[dict] |     None      |\n\n```python\nelements = client.get_catalog_elements(5787, page=3, limit=8)\n```\n\n### get element from catalog\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#list-elements-detail\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| catalogs_id | int  |       -       |\n| element_id  | int  |       -       |\n\n```python\nelement = client.get_catalog_element(5787, 2301)\n```\n\n### add elements to catalog\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#list-elements-add\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| catalogs_id | int  |       -       |\n|  elements   | list |       -       |\n\n```python\nelements = [\n    {\n        \"name\": \"Новый элемент списка\",\n        \"custom_fields_values\": [\n            {\n                \"field_id\": 14263,\n                \"values\": [\n                    {\n                        \"value\": 1000\n                    }\n                ]\n            }\n        ]\n    }\n]\nresult = client.add_elements_to_catalog(5787, elements)\n```\n\n### update elements in catalog\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/catalogs-api#list-elements-edit\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| catalogs_id | int  |       -       |\n|  elements   | list |       -       |\n\n```python\nelements = [\n    {\n        \"id\": 986757,\n        \"name\": \"Новое имя элемента\"\n    },\n    {\n        \"id\": 986753,\n        \"name\": \"Новое имя элемента 2\"\n    }\n]\nresult = client.update_elements_in_catalog(5787, elements)\n```\n\n### get users\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/users-api#users-list\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n|    page    | int  |       1       |\n|   limit    | list |      250      |\n| with_role  | bool |     False     |\n| with_group | bool |     False     |\n\n```python\nusers = client.get_users(page=1, limit=250)\n```\n\n### get user\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/users-api#user-detail\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n|  user_id   | int  |       1       |\n| with_role  | bool |     False     |\n| with_group | bool |     False     |\n\n```python\nuser = client.get_user(2222, with_role=True, with_group=True)\n```\n\n### get webhooks\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/webhooks-api#webhooks-list\n- params:\n\n|    name    |     type      | default value |\n| :--------: | :-----------: | :-----------: |\n| distansion | Optional[str] |     None      |\n\n```python\nwebhooks = client.get_webhooks()\n```\n\n### subscribe webhook\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/webhooks-api#webhook-subscribe\n- params:\n\n|    name    | type | default value |\n| :--------: | :--: | :-----------: |\n| distansion | str  |       -       |\n|  settings  | list |       -       |\n\n```python\nresult = client.subscribe_webhook(destination=\"https://example.test\", settings=[\"add_lead\"])\n```\n\n### get widgets\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/widgets-api#widgets-list\n- params:\n\n| name  | type | default value |\n| :---: | :--: | :-----------: |\n| page  | int  |       1       |\n| limit | int  |      250      |\n\n```python\nwidgets = client.get_widgets(page=3, limit=22)\n```\n\n### get widget\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/widgets-api#widget-detail\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| widget_code | str  |       -       |\n\n```python\nwidget = client.get_widget('\u003cwidget_code\u003e')\n```\n\n### install widget\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/widgets-api#widget-install\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| widget_code | str  |       -       |\n| \\*\\*kwargs  | str  |       -       |\n\n```python\nexample ={\n    \"login\": \"example\",\n    \"password\": \"eXaMp1E\",\n    \"phones\": {\n        504141: \"1039\"\n    },\n    \"script_path\": \"https://example.com/\"\n}\nresult = client.install_widget('\u003cwidget_code\u003e', **example)\n```\n\n### uninstall widget\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/widgets-api#widget-uninstall\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| widget_code | str  |       -       |\n\n```python\nresult = client.uninstall_widget('\u003cwidget_code\u003e')\n```\n\n### get tasks\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tasks-api#tasks-list\n- params:\n\n|  name   |      type      | default value |\n| :-----: | :------------: | :-----------: |\n|  page   |      int       |       1       |\n|  limit  |      int       |      250      |\n| filters | Optional[dict] |     None      |\n|  order  | Optional[dict] |     None      |\n\n```python\ntasks = client.get_tasks(page=1, limit=10, filters={'updated_at__from': '\u003ctimestamp\u003e', 'updated_at__to': '\u003ctimestamp\u003e'})\n# for any timestamp fields like created_at, updated_at, closed_at u need to user __ like created_at__from, created_at__to\n```\n\n### get task\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tasks-api#task-detail\n- params:\n\n|  name   | type | default value |\n| :-----: | :--: | :-----------: |\n| task_id | int  |       -       |\n\n```python\ntask = client.get_task(1288)\n```\n\n### add tasks\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tasks-api#tasks-add\n- params:\n\n| name  | type | default value |\n| :---: | :--: | :-----------: |\n| tasks | list |       -       |\n\n```python\ntasks = [\n    {\n        \"task_type_id\": 1,\n        \"text\": \"Встретиться с клиентом Иван Иванов\",\n        \"complete_till\": 1588885140,\n        \"entity_id\": 9785993,\n        \"entity_type\": \"leads\",\n        \"request_id\": \"example\"\n    }\n]\nresult = client.add_tasks(tasks=tasks)\n```\n\n### update tasks\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tasks-api#tasks-edit\n- params:\n\n| name  | type | default value |\n| :---: | :--: | :-----------: |\n| tasks | list |       -       |\n\n```python\ntasks = [\n    {\n        \"id\": 4745251,\n        \"task_type_id\": 2,\n        \"text\": \"Новое название для задачи\",\n        \"complete_till\": 1588885140\n    },\n    {\n        \"id\": 4747929,\n        \"task_type_id\": 1,\n        \"text\": \"Новое название для задачи 2\",\n        \"complete_till\": 1588885140\n    }\n]\nresult = client.update_tasks(tasks=tasks)\n```\n\n### execution task\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tasks-api#tasks-complete\n- params:\n\n|     name     | type | default value |\n| :----------: | :--: | :-----------: |\n|   task_id    | int  |       -       |\n| is_completed | bool |       -       |\n|    result    | str  |       -       |\n\n```python\nresult = client.execution_task(1288, is_completed=True, result=\"Удалось связаться с клиентом\")\n```\n\n### get tasks by entity type (leads|contacts|companies|customers)\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tags-api#tags-list\n- params:\n\n|    name     |      type      | default value |\n| :---------: | :------------: | :-----------: |\n| entity_type |      str       |       -       |\n|    page     |      int       |       1       |\n|    limit    |      int       |      250      |\n|   filters   | Optional[dict] |     None      |\n\n```python\ntags = client.get_tags_by_entity_type('leads', page=1, limit=10)\n```\n\n### add tasks for entity type (leads|contacts|companies|customers)\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/tags-api#tags-add\n- params:\n\n|    name     | type | default value |\n| :---------: | :--: | :-----------: |\n| entity_type | str  |       -       |\n|    tags     | list |       -       |\n\n```python\ntags = [\n    {\n        \"name\": \"Tag 1\"\n    },\n    {\n        \"name\": \"Tag 2\",\n        \"request_id\": \"my_request_id\"\n    },\n    {\n        \"name\": \"Tag 3\"\n    }\n]\ntags = client.add_tags_for_entity_type('leads', tags=tags)\n```\n\n### get custom fields\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/custom-fields#common-info\n\n```python\ncontacts_cf = client.get_contacts_custom_fields()\nleads_cf = client.get_leads_custom_fields()\ncompanies_cf = client.get_companies_custom_fields()\ncustomers_cf = client.get_customers_custom_fields()\ncustomer_segments_cf = client.get_customer_segments_custom_fields()\ncustomer_segments_cf = client.get_customer_segments_custom_fields()\nget_catalog_custom_fields = client.get_customer_segments_custom_fields('\u003ccatalog_id\u003e')\n```\n\n### get custom field\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/custom-fields#custom-field-detail\n\n```python\ncontacts_cf = client.get_contacts_custom_field('\u003cid\u003e')\nleads_cf = client.get_leads_custom_field('\u003cid\u003e')\ncompanies_cf = client.get_companies_custom_field('\u003cid\u003e')\ncustomers_cf = client.get_customers_custom_field('\u003cid\u003e')\ncustomer_segments_cf = client.get_customer_segments_custom_field('\u003cid\u003e')\nget_catalog_custom_fields = client.get_catalog_custom_field('\u003ccatalog_id\u003e', '\u003cid\u003e')\n```\n\n### create custom field\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/custom-fields#custom-fields-add\n\n```python\ncontacts_cf = client.create_contacts_custom_field(['\u003ccf\u003e'])\nleads_cf = client.create_leads_custom_field(['\u003ccf\u003e'])\ncompanies_cf = client.create_companies_custom_field(['\u003ccf\u003e'])\ncustomers_cf = client.create_customers_custom_field(['\u003ccf\u003e'])\ncustomer_segments_cf = client.create_customer_segments_custom_field(['\u003ccf\u003e'])\nget_catalog_custom_fields = client.create_catalog_custom_field('\u003ccatalog_id\u003e', ['\u003ccf\u003e'])\n```\n\n### update custom field\n\n- doc - https://www.amocrm.ru/developers/content/crm_platform/custom-fields#custom-fields-edit\n\n```python\ncontacts_cf = client.update_contacts_custom_field(['\u003ccf\u003e'])\nleads_cf = client.update_leads_custom_field(['\u003ccf\u003e'])\ncompanies_cf = client.update_companies_custom_field(['\u003ccf\u003e'])\ncustomers_cf = client.update_customers_custom_field(['\u003ccf\u003e'])\ncustomer_segments_cf = client.update_customer_segments_custom_field(['\u003ccf\u003e'])\nget_catalog_custom_fields = client.update_catalog_custom_field('\u003ccatalog_id\u003e', ['\u003ccf\u003e'])\n```\n\n### changelog\n\n- 0.0.18 - add filter_ids get_leads and \\_get_entities method\n- 0.0.12 - add entity notes methods, rename updatecustomers_segments_custom_fields -\u003e update_customers_segments_custom_fields\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbzdvdn%2Famocrm-api-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbzdvdn%2Famocrm-api-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbzdvdn%2Famocrm-api-wrapper/lists"}