# Unofficial Claude API For Python
The UNOFFICIAL free API for Anthropic's Claude LLM.
## Implemented actions:
The Unofficial Claude API is under active development. The following endpoints are usable in some capacity:
- Getting organizations you're in
- Getting conversations you're in
- Starting a conversation
- Sending a message and receiving a response (can't send files yet)
- Delete a conversation
- Create an attachment from a file
- Send attachments
Note that the api is __**synchronous**__.
## Usage
### Step 1
Install the library using the following:
```
pip install git+git://github.com/github.com/AshwinPathi/claude.git#egg=claude
```
### Step 2
Get a `sessionKey` from the Claude website. You will need this to start the bot. Ideally also have a user agent of the computer you use to access claude.
You can get this information by logging into `https://claude.ai/chats` and doing the following:
1. open inspect element (f12 on chrome)
2. On the top bar, go to the `Application` tab.
3. Under `Storage`, go to `Cookies`.
4. look for a cookie called `https://claude.ai`, click it.
5. click the `sessionKey` field, and copy the session key down. It should begin with `sk-ant-sid01...`
### Step 3
Use the bot. You can see an example at `example.py`.
#### Examples:
##### Create the client and wrapper
```py
client = claude_client.ClaudeClient(SESSION_KEY)
organizations = client.get_organizations()
claude_obj = claude_wrapper.ClaudeWrapper(client, organizations[0]['uuid'])
```
##### Starting a new conversation
```py
conversation_uuid = claude_obj.start_new_conversation("New Conversation", "Hi Claude!")
```
##### Send a message (passing in the client uuid)
```py
conversation_uuid = claude_obj.get_conversations()[0]['uuid']
response = claude_obj.send_message("How are you doing today!", conversation_uuid=conversation_uuid)
```
##### Setting a conversation context and sending a message
```py
conversation_uuid = claude_obj.get_conversations()[0]['uuid']
# This is so you don't have to constantly pass in conversation uuid on every call that requires it.
# anywhere that has an argument conversation_uuid=X can be omitted if you set the conversation context.
claude_obj.set_conversation_context(conversation_uuid)
response = claude_obj.send_message("How are you doing today!")
response = claude_obj.send_message("Who won the league of legends worlds 2022 finals?")
```
##### Sending an attachment
```py
# This generates an attachment in the right format
attachment = claude_obj.get_attachment('example_attachment.txt')
response = claude_obj.send_message("Hi Claude, what does this attachment say?", attachments=[attachment],
conversation_uuid = conversation_uuid)
```
##### Deleting a conversation
```py
deleted = claude_obj.delete_conversation(conversation_uuid)
```
##### Deleting all conversations in an organization
```py
failed_deletions = claude_obj.delete_all_conversations()
assert len(failed_deletions) == 0
```
##### Renaming a conversation
```py
conversation = claude_obj.rename_conversation("New name", conversation_uuid = conversation_uuid)
```
##### Get conversation history
```py
conversation_history = claude_obj.get_conversation_info(conversation_uuid = conversation_uuid)
```
## Disclaimer
This library is UNOFFICIAL and you might get banned for using it. I am not responsible if your account gets banned. If you would like to use the actual API, go to the [anthropic website](https://docs.anthropic.com/claude/docs).
Its also under active development and is extremely unstable, so there are no guarantees it will work for you. If you find a bug or you think it should work in a scenario where it doesn't, file an issue.
Raw data
{
"_id": null,
"home_page": "https://github.com/AshwinPathi/claude",
"name": "rev-claude-api",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "llm,claude,api,gpt",
"author": "",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/c7/32/db4e7bbb615d8265c94fd3c630b36081bc1699f35d4206519c9d016d0c4d/rev_claude_api-0.0.1.tar.gz",
"platform": null,
"description": "# Unofficial Claude API For Python\n\nThe UNOFFICIAL free API for Anthropic's Claude LLM.\n\n## Implemented actions:\nThe Unofficial Claude API is under active development. The following endpoints are usable in some capacity:\n\n- Getting organizations you're in\n- Getting conversations you're in\n- Starting a conversation\n- Sending a message and receiving a response (can't send files yet)\n- Delete a conversation\n- Create an attachment from a file\n- Send attachments\n\nNote that the api is __**synchronous**__.\n\n\n## Usage\n\n### Step 1\nInstall the library using the following:\n```\npip install git+git://github.com/github.com/AshwinPathi/claude.git#egg=claude\n```\n\n### Step 2\nGet a `sessionKey` from the Claude website. You will need this to start the bot. Ideally also have a user agent of the computer you use to access claude.\n\nYou can get this information by logging into `https://claude.ai/chats` and doing the following:\n\n1. open inspect element (f12 on chrome)\n2. On the top bar, go to the `Application` tab.\n3. Under `Storage`, go to `Cookies`.\n4. look for a cookie called `https://claude.ai`, click it.\n5. click the `sessionKey` field, and copy the session key down. It should begin with `sk-ant-sid01...`\n\n\n### Step 3\nUse the bot. You can see an example at `example.py`.\n\n#### Examples:\n\n##### Create the client and wrapper\n```py\nclient = claude_client.ClaudeClient(SESSION_KEY)\norganizations = client.get_organizations()\n\nclaude_obj = claude_wrapper.ClaudeWrapper(client, organizations[0]['uuid'])\n```\n\n##### Starting a new conversation\n```py\nconversation_uuid = claude_obj.start_new_conversation(\"New Conversation\", \"Hi Claude!\")\n```\n\n##### Send a message (passing in the client uuid)\n```py\nconversation_uuid = claude_obj.get_conversations()[0]['uuid']\nresponse = claude_obj.send_message(\"How are you doing today!\", conversation_uuid=conversation_uuid)\n```\n\n##### Setting a conversation context and sending a message\n```py\nconversation_uuid = claude_obj.get_conversations()[0]['uuid']\n# This is so you don't have to constantly pass in conversation uuid on every call that requires it.\n# anywhere that has an argument conversation_uuid=X can be omitted if you set the conversation context.\nclaude_obj.set_conversation_context(conversation_uuid)\n\nresponse = claude_obj.send_message(\"How are you doing today!\")\nresponse = claude_obj.send_message(\"Who won the league of legends worlds 2022 finals?\")\n```\n\n##### Sending an attachment\n```py\n# This generates an attachment in the right format\nattachment = claude_obj.get_attachment('example_attachment.txt')\nresponse = claude_obj.send_message(\"Hi Claude, what does this attachment say?\", attachments=[attachment],\n conversation_uuid = conversation_uuid)\n```\n\n##### Deleting a conversation\n```py\ndeleted = claude_obj.delete_conversation(conversation_uuid)\n```\n\n##### Deleting all conversations in an organization\n```py\nfailed_deletions = claude_obj.delete_all_conversations()\nassert len(failed_deletions) == 0\n```\n\n##### Renaming a conversation\n```py\nconversation = claude_obj.rename_conversation(\"New name\", conversation_uuid = conversation_uuid)\n```\n\n##### Get conversation history\n```py\nconversation_history = claude_obj.get_conversation_info(conversation_uuid = conversation_uuid)\n```\n\n\n## Disclaimer\nThis library is UNOFFICIAL and you might get banned for using it. I am not responsible if your account gets banned. If you would like to use the actual API, go to the [anthropic website](https://docs.anthropic.com/claude/docs).\n\nIts also under active development and is extremely unstable, so there are no guarantees it will work for you. If you find a bug or you think it should work in a scenario where it doesn't, file an issue.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Unofficial Anthropic Claude API for Python3.",
"version": "0.0.1",
"project_urls": {
"Homepage": "https://github.com/AshwinPathi/claude"
},
"split_keywords": [
"llm",
"claude",
"api",
"gpt"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3c6d9d5b836a44b38d0aa3a62b32608e8570e23533ea5b361b8e5751af913e44",
"md5": "47dddff6cb2fb5a26c948d9ac4545e8f",
"sha256": "670abbe76a498b19be613f7d8ed397562514a32ee7b07bc9baa4d19eca453902"
},
"downloads": -1,
"filename": "rev_claude_api-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "47dddff6cb2fb5a26c948d9ac4545e8f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 13133,
"upload_time": "2023-07-20T09:02:44",
"upload_time_iso_8601": "2023-07-20T09:02:44.553183Z",
"url": "https://files.pythonhosted.org/packages/3c/6d/9d5b836a44b38d0aa3a62b32608e8570e23533ea5b361b8e5751af913e44/rev_claude_api-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c732db4e7bbb615d8265c94fd3c630b36081bc1699f35d4206519c9d016d0c4d",
"md5": "10ae1b5e2a93801912eaa08c615e9566",
"sha256": "a033e6a6d80e75903a8fce846429e7f9c5024263d2b06920fb656791aeed9420"
},
"downloads": -1,
"filename": "rev_claude_api-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "10ae1b5e2a93801912eaa08c615e9566",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12532,
"upload_time": "2023-07-20T09:02:45",
"upload_time_iso_8601": "2023-07-20T09:02:45.693521Z",
"url": "https://files.pythonhosted.org/packages/c7/32/db4e7bbb615d8265c94fd3c630b36081bc1699f35d4206519c9d016d0c4d/rev_claude_api-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-20 09:02:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "AshwinPathi",
"github_project": "claude",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "sseclient_py",
"specs": [
[
"==",
"1.7.2"
]
]
}
],
"lcname": "rev-claude-api"
}