# ServiceNow Python API
**What:**
PySnc is a python interface for the ServiceNow and the Table API. It is designed to mimic the familiar GlideRecord interface you know with pythonic support where applicable.
**Why:**
Spawned from the desire to interact with ServiceNow data in a familiar and consistent manner
## Install
```
pip install pysnc
```
If you also want to install the asyncio support, you can run:
```
pip install pysnc[asyncio]
```
## Quick Start
```python
from pysnc import ServiceNowClient
client = ServiceNowClient('https://dev0000.service-now.com', ('integration.user', password))
gr = client.GlideRecord('sys_user')
gr.add_query('user_name', 'admin')
gr.query()
for r in gr:
print(r.sys_id)
```
## Documentation
Full documentation currently available at [https://servicenow.github.io/PySNC/](https://servicenow.github.io/PySNC/)
Or build them yourself:
```
cd docs && make html
```
## Development Notes
The following functions are not (yet?) supported:
* `choose_window(first_row, last_row, force_count=True)` TODO
* `get_class_display_value()`
* `get_record_class_name()`
* `is_valid()` TODO
* `is_valid_record()`
* `new_record()`
* `_next()`
* `_query()`
The following will not be implemented:
* `get_attribute(field_name)` Not Applicable
* `get_ED()` Not Applicable
* `get_label()` Not Applicable
* `get_last_error_message()` Not Applicable
* `set_workflow(enable)` Not Possible
* `operation()` Not Applicable
* `set_abort_action()` Not Applicable
* `is_valid_field()` Not Possible
* `is_action_aborted()` Not Applicable
# Feature Wants and TODO
* GlideAggregate support (`/api/now/stats/{tableName}`)
And we want to:
* Improve documentation
Raw data
{
"_id": null,
"home_page": "https://github.com/ServiceNow/PySNC",
"name": "pysnc",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "servicenow, snc",
"author": "Matthew Gill",
"author_email": "matthew.gill@servicenow.com",
"download_url": "https://files.pythonhosted.org/packages/69/b2/481a2eb63d981d209ebb95111595523fad9b72075541a0585dd507b2eec5/pysnc-1.2.0.tar.gz",
"platform": null,
"description": "# ServiceNow Python API\n\n**What:** \nPySnc is a python interface for the ServiceNow and the Table API. It is designed to mimic the familiar GlideRecord interface you know with pythonic support where applicable. \n\n**Why:** \nSpawned from the desire to interact with ServiceNow data in a familiar and consistent manner\n\n## Install\n\n```\npip install pysnc\n```\n\nIf you also want to install the asyncio support, you can run:\n\n```\npip install pysnc[asyncio]\n```\n\n## Quick Start\n\n```python\nfrom pysnc import ServiceNowClient\n\nclient = ServiceNowClient('https://dev0000.service-now.com', ('integration.user', password))\n\ngr = client.GlideRecord('sys_user')\ngr.add_query('user_name', 'admin')\ngr.query()\nfor r in gr:\n\tprint(r.sys_id)\n```\n\n## Documentation\n\nFull documentation currently available at [https://servicenow.github.io/PySNC/](https://servicenow.github.io/PySNC/)\n\nOr build them yourself:\n\n```\ncd docs && make html\n```\n\n## Development Notes\n\nThe following functions are not (yet?) supported:\n\n* `choose_window(first_row, last_row, force_count=True)` TODO\n* `get_class_display_value()`\n* `get_record_class_name()`\n* `is_valid()` TODO\n* `is_valid_record()`\n* `new_record()`\n* `_next()`\n* `_query()`\n\nThe following will not be implemented:\n\n* `get_attribute(field_name)` Not Applicable\n* `get_ED()` Not Applicable\n* `get_label()` Not Applicable\n* `get_last_error_message()` Not Applicable\n* `set_workflow(enable)` Not Possible\n* `operation()` Not Applicable\n* `set_abort_action()` Not Applicable\n* `is_valid_field()` Not Possible\n* `is_action_aborted()` Not Applicable\n\n# Feature Wants and TODO\n\n* GlideAggregate support (`/api/now/stats/{tableName}`)\n\nAnd we want to:\n\n* Improve documentation",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python SNC (REST) API",
"version": "1.2.0",
"project_urls": {
"Documentation": "https://servicenow.github.io/PySNC/",
"Homepage": "https://github.com/ServiceNow/PySNC",
"Repository": "https://github.com/ServiceNow/PySNC"
},
"split_keywords": [
"servicenow",
" snc"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "076879afef1d25891ae5653ca730e780108c8f0e339c6f0b4bff67e9f62410f3",
"md5": "8e6cc9a6c61e1530ef81a6aeee6739e1",
"sha256": "d839b42cbc19584a6dded0be755d21d621135b518e589a06ce55937d62e03701"
},
"downloads": -1,
"filename": "pysnc-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8e6cc9a6c61e1530ef81a6aeee6739e1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 39894,
"upload_time": "2025-09-12T19:20:21",
"upload_time_iso_8601": "2025-09-12T19:20:21.768551Z",
"url": "https://files.pythonhosted.org/packages/07/68/79afef1d25891ae5653ca730e780108c8f0e339c6f0b4bff67e9f62410f3/pysnc-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "69b2481a2eb63d981d209ebb95111595523fad9b72075541a0585dd507b2eec5",
"md5": "540d6cbf5717c28e8a1e0982602a0aa8",
"sha256": "a64f534fda7cfecacb18e019f745ed25f22f7c18647f27dfade0ea3d5f57b8da"
},
"downloads": -1,
"filename": "pysnc-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "540d6cbf5717c28e8a1e0982602a0aa8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 34370,
"upload_time": "2025-09-12T19:20:22",
"upload_time_iso_8601": "2025-09-12T19:20:22.665603Z",
"url": "https://files.pythonhosted.org/packages/69/b2/481a2eb63d981d209ebb95111595523fad9b72075541a0585dd507b2eec5/pysnc-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-12 19:20:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ServiceNow",
"github_project": "PySNC",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pysnc"
}