Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your API Key by clicking your name in the main site's header and looking under My Info.
AI Agents
Chat
requires authentication
Send a message to an AI agent chat session. If no chat_id is provided, a new session will be created automatically.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/agents/chat'
payload = {
"workspace_id": 1,
"message": "\"Can you help me with this code?\"",
"ai_model": "\"gpt-4\"",
"entities": "\"[{\\\"id\\\":1,\\\"value\\\":\\\"12345\\\",\\\"description\\\":\\\"John Doe\\\"}]\""
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/agents/chat"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"workspace_id": 1,
"message": "\"Can you help me with this code?\"",
"ai_model": "\"gpt-4\"",
"entities": "\"[{\\\"id\\\":1,\\\"value\\\":\\\"12345\\\",\\\"description\\\":\\\"John Doe\\\"}]\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/agents/chat';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'workspace_id' => 1,
'message' => '"Can you help me with this code?"',
'ai_model' => '"gpt-4"',
'entities' => '"[{\\"id\\":1,\\"value\\":\\"12345\\",\\"description\\":\\"John Doe\\"}]"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/agents/chat" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"workspace_id\": 1,
\"message\": \"\\\"Can you help me with this code?\\\"\",
\"ai_model\": \"\\\"gpt-4\\\"\",
\"entities\": \"\\\"[{\\\\\\\"id\\\\\\\":1,\\\\\\\"value\\\\\\\":\\\\\\\"12345\\\\\\\",\\\\\\\"description\\\\\\\":\\\\\\\"John Doe\\\\\\\"}]\\\"\"
}"
Example response (200):
{
"session": {
"id": 123,
"unique_session_id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Project Discussion",
"ai_model": "claude-sonnet-4"
},
"messages": [
{
"id": 456,
"message_uuid": "550e8400-e29b-41d4-a716-446655440001",
"ai_model": "claude-sonnet-4",
"message": "Hello, how can I help?",
"message_original": null,
"branch": 1,
"created_on": "2025-10-31 14:30:00",
"user": {
"userid": 42,
"name": "John Doe"
},
"role": {
"id": 1,
"type": "user"
},
"is_system_message": 0,
"is_hidden": 0,
"token_count": 57
}
],
"tools": [
{
"id": 7,
"tool_name": "get_code",
"mcp_server": "gitlab"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Messages
requires authentication
Retrieve all messages from an existing AI agent chat session. User must have access to the workspace and the chat session. Private chats can only be accessed by their creator.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/agents/chat/messages'
params = {
'chat_id': '',
'workspace_id': '',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/agents/chat/messages"
);
const params = {
"chat_id": "",
"workspace_id": "",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/agents/chat/messages';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'chat_id' => '',
'workspace_id' => '',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/agents/chat/messages?chat_id=&workspace_id=" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"messages": [
{
"id": 456,
"message_uuid": "550e8400-e29b-41d4-a716-446655440001",
"ai_model": "claude-sonnet-4",
"message": "Hello, how can I help?",
"message_original": null,
"branch": 1,
"created_on": "2025-10-31 14:30:00",
"user": {
"userid": 42,
"name": "John Doe"
},
"role": {
"id": 1,
"type": "user"
},
"is_system_message": 0,
"is_hidden": 0,
"token_count": 57
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
AI Chats
Version 1
requires authentication
Creates a model response for the given chat conversation.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/chats/completions'
payload = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"model": "gpt-4o-mini",
"frequency_penalty": 0,
"logprobs": true,
"top_logprobs": 15,
"max_tokens": 4000,
"n": 1,
"presence_penalty": 0,
"seed": 10,
"stream": false,
"temperature": 0,
"top_p": 0,
"system_functions": [
"get_code"
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Connection': 'keep-alive',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/chats/completions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Connection": "keep-alive",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"model": "gpt-4o-mini",
"frequency_penalty": 0,
"logprobs": true,
"top_logprobs": 15,
"max_tokens": 4000,
"n": 1,
"presence_penalty": 0,
"seed": 10,
"stream": false,
"temperature": 0,
"top_p": 0,
"system_functions": [
"get_code"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/chats/completions';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Connection' => 'keep-alive',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'messages' => [
[
'role' => 'user',
'content' => 'Please reply "OK"',
],
],
'model' => 'gpt-4o-mini',
'frequency_penalty' => 0,
'logprobs' => true,
'top_logprobs' => 15,
'max_tokens' => 4000,
'n' => 1,
'presence_penalty' => 0,
'seed' => 10,
'stream' => false,
'temperature' => 0.0,
'top_p' => 0.0,
'system_functions' => [
'get_code',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/chats/completions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Connection: keep-alive" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"messages\": [
{
\"role\": \"user\",
\"content\": \"Please reply \\\"OK\\\"\"
}
],
\"model\": \"gpt-4o-mini\",
\"frequency_penalty\": 0,
\"logprobs\": true,
\"top_logprobs\": 15,
\"max_tokens\": 4000,
\"n\": 1,
\"presence_penalty\": 0,
\"seed\": 10,
\"stream\": false,
\"temperature\": 0,
\"top_p\": 0,
\"system_functions\": [
\"get_code\"
]
}"
Example response (200):
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-3.5-turbo-0125",
"system_fingerprint": "fp_44709d6fcb",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nThis image shows a wooden boardwalk extending through a lush green marshland.",
},
"logprobs": null,
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Version 2
requires authentication
Creates a model response for the given chat conversation by using Prism.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/chats/prism/completions'
payload = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"model": "gpt-4o-mini",
"temperature": 0,
"chatid": 0,
"dj_ai_version": 5,
"tool_ids": [
9
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Connection': 'keep-alive',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/chats/prism/completions"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Connection": "keep-alive",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"model": "gpt-4o-mini",
"temperature": 0,
"chatid": 0,
"dj_ai_version": 5,
"tool_ids": [
9
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/chats/prism/completions';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Connection' => 'keep-alive',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'messages' => [
[
'role' => 'user',
'content' => 'Please reply "OK"',
],
],
'model' => 'gpt-4o-mini',
'temperature' => 0.0,
'chatid' => 0,
'dj_ai_version' => 5,
'tool_ids' => [
9,
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/chats/prism/completions" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Connection: keep-alive" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"messages\": [
{
\"role\": \"user\",
\"content\": \"Please reply \\\"OK\\\"\"
}
],
\"model\": \"gpt-4o-mini\",
\"temperature\": 0,
\"chatid\": 0,
\"dj_ai_version\": 5,
\"tool_ids\": [
9
]
}"
Example response (200):
{
"text": "This is a response from the model.",
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
AI Prompts
Create
requires authentication
Create a new AI prompt with the provided information. All required fields must be present. The prompt must be assigned to at least one workspace where the user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/prompts/create'
payload = {
"name": null,
"description": null,
"prompt": null,
"workspace_ids": null
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/prompts/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": null,
"description": null,
"prompt": null,
"workspace_ids": null
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/prompts/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => null,
'description' => null,
'prompt' => null,
'workspace_ids' => null,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/prompts/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": null,
\"description\": null,
\"prompt\": null,
\"workspace_ids\": null
}"
Example response (201):
{
"create": "success",
"prompt_id": 42
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Read
requires authentication
Will return information about a specific AI prompt. The prompt must be associated with a workspace where the authenticated user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/prompts/get'
params = {
'prompt_id': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/prompts/get"
);
const params = {
"prompt_id": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/prompts/get';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'prompt_id' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/prompts/get?prompt_id=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"id": 1,
"category_id": 5,
"category_name": "CODE",
"name": "Code Review Prompt",
"description": "Reviews code for best practices",
"prompt": "Please review the following code...",
"type_id": 1,
"type": "default",
"active": true,
"workspace_ids": [
1,
2
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Will return a list of AI prompts that are associated with workspaces where the authenticated user is a team member. Only prompts with active categories are returned.
Active/Inactive Filtering:
By default only active prompts are returned. To include inactive prompts,
include the show_inactive query parameter.
Workspace IDs Field:
The workspace_ids field is omitted from the response when filtering by workspace_id,
as the workspace context is already known from your filter. To see all workspace
associations for a prompt, query without the workspace_id filter.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/prompts/list'
params = {
'page': '1',
'workspace_id': '"1,2,3"',
'category_id': '"5,3"',
'type_id': '"1,2"',
'show_inactive': '"true"',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/prompts/list"
);
const params = {
"page": "1",
"workspace_id": ""1,2,3"",
"category_id": ""5,3"",
"type_id": ""1,2"",
"show_inactive": ""true"",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/prompts/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'workspace_id' => '"1,2,3"',
'category_id' => '"5,3"',
'type_id' => '"1,2"',
'show_inactive' => '"true"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/prompts/list?page=1&workspace_id=%221%2C2%2C3%22&category_id=%225%2C3%22&type_id=%221%2C2%22&show_inactive=%22true%22" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_prompts": 45,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_prompts_returned": 45,
"prompts": [
{
"id": 1,
"name": "Code Review Prompt",
"active": true,
"type": {
"id": 1,
"name": "Review"
},
"category": {
"id": 1,
"name": "Development"
},
"workspace_ids": [
1,
2,
3
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update an AI prompt with new information. At least one Body Parameter must be present. The current state of the prompt is automatically archived to the change log before updating.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/prompts/update'
payload = {
"type_id": 1,
"name": "\"Code Review Assistant\"",
"description": "\"Reviews code for best practices and security issues\"",
"workspace_ids": "\"1,2,42\""
}
params = {
'prompt_id': '5',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/prompts/update"
);
const params = {
"prompt_id": "5",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"type_id": 1,
"name": "\"Code Review Assistant\"",
"description": "\"Reviews code for best practices and security issues\"",
"workspace_ids": "\"1,2,42\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/prompts/update';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'prompt_id' => '5',
],
'json' => [
'type_id' => 1,
'name' => '"Code Review Assistant"',
'description' => '"Reviews code for best practices and security issues"',
'workspace_ids' => '"1,2,42"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/prompts/update?prompt_id=5" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"type_id\": 1,
\"name\": \"\\\"Code Review Assistant\\\"\",
\"description\": \"\\\"Reviews code for best practices and security issues\\\"\",
\"workspace_ids\": \"\\\"1,2,42\\\"\"
}"
Example response (200):
{
"update": "success"
}
Example response (400):
{
"error": "Invalid prompt_id"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Permanently deletes an AI prompt that the user created. The prompt data is archived to a table before deletion. Users can only delete prompts they created themselves and must have access to a workspace using the prompt.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/prompts/delete'
params = {
'prompt_id': '',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/prompts/delete"
);
const params = {
"prompt_id": "",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/prompts/delete';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'prompt_id' => '',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/prompts/delete?prompt_id=" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"delete": "success"
}
Example response (400):
{
"error": "Access denied: You can only delete prompts you created"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Documents
Extract Text
requires authentication
Takes a collection of PDF documents (other file types might be added in the future) and converts them into text.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/documents/extract-text'
payload = {
"documents": [
"ullam"
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/documents/extract-text"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"documents": [
"ullam"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/documents/extract-text';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'documents' => [
'ullam',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/documents/extract-text" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"documents\": [
\"ullam\"
]
}"
Example response (200):
{
"documents": [
{
"document_name": "some-file.pdf"
"document_text": "some text from PDF ..."
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Groups
Create
requires authentication
Create a new epic with the provided information. All required fields must be present. The epic must be assigned to a workspace where the user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/groups/create'
payload = {
"name": null,
"workspace_id": null
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/groups/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": null,
"workspace_id": null
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/groups/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => null,
'workspace_id' => null,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/groups/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": null,
\"workspace_id\": null
}"
Example response (201):
{
"create": "success",
"group_id": 42
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Read
requires authentication
Will return information about a specific epic/group. The group must be assigned to a workspace where the authenticated user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/groups/get'
params = {
'group_id': '123',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/groups/get"
);
const params = {
"group_id": "123",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/groups/get';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'group_id' => '123',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/groups/get?group_id=123" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"id": 123,
"active": true,
"name": "Backend Infrastructure",
"description": "Core backend systems and infrastructure improvements",
"start_date": "2025-01-01",
"end_date": "2025-03-31",
"created_by": {
"userid": 46905,
"user": "Brian Smith"
},
"ai_summary": "Focus on API improvements and database optimization",
"ai_summary_lastupdate": "2025-01-15T10:30:00.000000Z",
"workspace_ids": [
1,
2,
5
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Will return a list of goals.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/groups/list'
params = {
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/groups/list"
);
const params = {
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/groups/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/groups/list?page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_groups": 2,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_groups_returned": 2,
"groups": [
{
"id": 123,
"name": "Backend Infrastructure",
"description": "Core backend systems and infrastructure improvements",
"ai_summary": null,
"ai_summary_lastupdate": null
},
{
"id": 124,
"name": "User Interface Redesign",
"description": "Modern UI/UX improvements and responsive design",
"ai_summary": null,
"ai_summary_lastupdate": null
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update an group with new information. At least one Body Parameter must be present.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/groups/update'
params = {
'group_id': '54',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/groups/update"
);
const params = {
"group_id": "54",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/groups/update';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'group_id' => '54',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/groups/update?group_id=54" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
Example response (200):
{
"update": "success"
}
Example response (400):
{
"error": "Invalid group_id"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Permanently deletes a group that the user created. The group data is archived before deletion. Users can only delete groups they created and that have no tasks associated. Groups with tasks should be marked inactive instead.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/groups/delete'
params = {
'group_id': '',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/groups/delete"
);
const params = {
"group_id": "",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/groups/delete';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'group_id' => '',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/groups/delete?group_id=" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"delete": "success"
}
Example response (400):
{
"error": "Access denied: You can only delete groups you created"
}
Example response (400):
{
"error": "Cannot be deleted because the group has tasks. Please update the group to inactive instead."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Project Assistants
List
requires authentication
Retrieve a paginated list of assistant-related project/tasks from the user's workspaces. Returns tasks where gtd_status_id = 19 and projects_categoriesID NOT IN (9, 24).
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/resources/assistants'
params = {
'page': '1',
'workspace_id': '1 or 1,2,3',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/resources/assistants"
);
const params = {
"page": "1",
"workspace_id": "1 or 1,2,3",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/resources/assistants';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'workspace_id' => '1 or 1,2,3',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/resources/assistants?page=1&workspace_id=1+or+1%2C2%2C3" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_tasks": 9,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_tasks_returned": 9,
"tasks": [
{
"task_id": "1-39674",
"id": 41188,
"workspace_id": 1,
"todo_id": 39674,
"title": "Due Diligence Analyst"
},
{
"task_id": "1-39675",
"id": 41189,
"workspace_id": 1,
"todo_id": 39675,
"title": "Content Strategy Assistant"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Project Attachments
Read
requires authentication
Get the file contents of a project/task attachment.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/1-123456/get_file/12345'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/1-123456/get_file/12345"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/1-123456/get_file/12345';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/tasks/1-123456/get_file/12345" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"id": "123456",
"contents": "contents of the file"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create
requires authentication
Creates a single file attachment for a project/task. Only supports text-based files (txt and md extensions).
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/1-123456/attachment/create'
payload = {
"file_name": "\"readme-notes\"",
"file_extension": "\"txt\"",
"file_body": "\"This is the file content.\"",
"ai_summary": "\"This file contains project notes.\"",
"metadata": "\"Created for project documentation.\""
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/1-123456/attachment/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"file_name": "\"readme-notes\"",
"file_extension": "\"txt\"",
"file_body": "\"This is the file content.\"",
"ai_summary": "\"This file contains project notes.\"",
"metadata": "\"Created for project documentation.\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/1-123456/attachment/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'file_name' => '"readme-notes"',
'file_extension' => '"txt"',
'file_body' => '"This is the file content."',
'ai_summary' => '"This file contains project notes."',
'metadata' => '"Created for project documentation."',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/tasks/1-123456/attachment/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"file_name\": \"\\\"readme-notes\\\"\",
\"file_extension\": \"\\\"txt\\\"\",
\"file_body\": \"\\\"This is the file content.\\\"\",
\"ai_summary\": \"\\\"This file contains project notes.\\\"\",
\"metadata\": \"\\\"Created for project documentation.\\\"\"
}"
Example response (200):
{
"message": "upload attachment successful",
"file": {
"id": 12345,
"uploaded_by": 46905,
"uploaded_on": "2025-01-15 10:30:00",
"file_display_name": "readme-notes.txt",
"file_name": "aifile-1-123456-46905-1234567890.txt",
"file_url": "https://s3.amazonaws.com/uploads.devjock.com/aifile-1-123456-46905-1234567890.txt",
"metadata": "Created for project documentation.",
"metadata_lastupdate": "2025-01-15 10:30:00",
"ai_summary": "This file contains project notes.",
"ai_summary_lastupdate": "2025-01-15 10:30:00"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Project Comments
Create
requires authentication
Create a new comment (blog post) and attached to a project/task. At least one Body Parameter must be present.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/blog/create'
payload = {
"blog_post": "This is the body of the post.",
"hours_worked": "2",
"minutes_worked": "15"
}
params = {
'task_id': '1-123456',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/blog/create"
);
const params = {
"task_id": "1-123456",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"blog_post": "This is the body of the post.",
"hours_worked": "2",
"minutes_worked": "15"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/blog/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'task_id' => '1-123456',
],
'json' => [
'blog_post' => 'This is the body of the post.',
'hours_worked' => '2',
'minutes_worked' => '15',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/tasks/blog/create?task_id=1-123456" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"blog_post\": \"This is the body of the post.\",
\"hours_worked\": \"2\",
\"minutes_worked\": \"15\"
}"
Example response (201):
{
"create": "success",
"id": 12345,
"link": "https://www.devjockproto.com/todo/details/?ID=1-12345#12345"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Projects
Create
requires authentication
Create a new project/task with the provided information. At least one Body Parameter must be present.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/create'
payload = {
"title": "\"New Task Title\""
}
params = {
'workspace_id': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/create"
);
const params = {
"workspace_id": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "\"New Task Title\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'workspace_id' => '1',
],
'json' => [
'title' => '"New Task Title"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/tasks/create?workspace_id=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"\\\"New Task Title\\\"\"
}"
Example response (201):
{
"create": "success",
"task_id": "1-123456",
"id": 456789,
"workspace_id": 1,
"todo_id": 123456
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Read
requires authentication
Will return information about a specific project/task. Use the resolves Body Parameter to return specific data, or leave out to return minimal task information.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/single'
payload = {
"resolves": [
"title",
"description",
"workspace",
"lifecycle",
"status",
"assigned_to",
"created_by",
"created_on",
"last_updated",
"technical_spec",
"business_requirements",
"qa_instructions",
"difficulty",
"track_as_bug",
"time_actual",
"time_estimate",
"revision_date",
"revision_number",
"ai_summary",
"ai_summary_lastupdate",
"ai_marketing_summary",
"ai_marketing_summary_lastupdate",
"hours_worked",
"attached_files",
"code_files",
"groups",
"sprints",
"tags",
"parent_task",
"sub_tasks",
"blog_posts",
"change_log",
"website_content",
"qa_assigned_to",
"default_ai_agent_template_id"
]
}
params = {
'task_id': '1-123456',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/single"
);
const params = {
"task_id": "1-123456",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"resolves": [
"title",
"description",
"workspace",
"lifecycle",
"status",
"assigned_to",
"created_by",
"created_on",
"last_updated",
"technical_spec",
"business_requirements",
"qa_instructions",
"difficulty",
"track_as_bug",
"time_actual",
"time_estimate",
"revision_date",
"revision_number",
"ai_summary",
"ai_summary_lastupdate",
"ai_marketing_summary",
"ai_marketing_summary_lastupdate",
"hours_worked",
"attached_files",
"code_files",
"groups",
"sprints",
"tags",
"parent_task",
"sub_tasks",
"blog_posts",
"change_log",
"website_content",
"qa_assigned_to",
"default_ai_agent_template_id"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/single';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'task_id' => '1-123456',
],
'json' => [
'resolves' => [
'title',
'description',
'workspace',
'lifecycle',
'status',
'assigned_to',
'created_by',
'created_on',
'last_updated',
'technical_spec',
'business_requirements',
'qa_instructions',
'difficulty',
'track_as_bug',
'time_actual',
'time_estimate',
'revision_date',
'revision_number',
'ai_summary',
'ai_summary_lastupdate',
'ai_marketing_summary',
'ai_marketing_summary_lastupdate',
'hours_worked',
'attached_files',
'code_files',
'groups',
'sprints',
'tags',
'parent_task',
'sub_tasks',
'blog_posts',
'change_log',
'website_content',
'qa_assigned_to',
'default_ai_agent_template_id',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/tasks/single?task_id=1-123456" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"resolves\": [
\"title\",
\"description\",
\"workspace\",
\"lifecycle\",
\"status\",
\"assigned_to\",
\"created_by\",
\"created_on\",
\"last_updated\",
\"technical_spec\",
\"business_requirements\",
\"qa_instructions\",
\"difficulty\",
\"track_as_bug\",
\"time_actual\",
\"time_estimate\",
\"revision_date\",
\"revision_number\",
\"ai_summary\",
\"ai_summary_lastupdate\",
\"ai_marketing_summary\",
\"ai_marketing_summary_lastupdate\",
\"hours_worked\",
\"attached_files\",
\"code_files\",
\"groups\",
\"sprints\",
\"tags\",
\"parent_task\",
\"sub_tasks\",
\"blog_posts\",
\"change_log\",
\"website_content\",
\"qa_assigned_to\",
\"default_ai_agent_template_id\"
]
}"
Example response (200):
{
"task_id": "1-123456",
"id": 456789,
"workspace_id": 1,
"todo_id": 123456,
"title": "The task title",
"description": "The task description",
"workspace": {
"id": 1,
"name": "name"
},
"lifecycle": {
"id": 36,
"name": "Backlog",
"description": "Tasks with a spec and an estimate which are ready to be worked on."
},
"status": {
"id": 2,
"name": "Next",
"description": "To be worked on after the ''In progress'' pile is complete"
},
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Will return a list of projects/tasks. At least one query parameter other then page must be present. Using show_assistants will ignore any status_id and lifecycle_id filters.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/list'
params = {
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/list"
);
const params = {
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/tasks/list?page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_tasks": 2,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_tasks_returned": 2,
"tasks": [
{
"task_id": "1-123456",
"id": 456789,
"workspace_id": 1,
"todo_id": 123456,
"workspace": {
"id": 1,
"name": "name"
}
},
{
"task_id": "1-789012",
"id": 5698545,
"workspace_id": 1,
"todo_id": 789012,
"workspace": {
"id": 1,
"name": "name"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update a project/task with new information. One of the Body Parameters must be present.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/tasks/update'
payload = {
"title": "\"New Task Title\""
}
params = {
'task_id': '1-123456',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/tasks/update"
);
const params = {
"task_id": "1-123456",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "\"New Task Title\""
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/tasks/update';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'task_id' => '1-123456',
],
'json' => [
'title' => '"New Task Title"',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/tasks/update?task_id=1-123456" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"\\\"New Task Title\\\"\"
}"
Example response (200):
{'update': 'success'}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
RAG
Add Index
requires authentication
Adds specified attachments to the RAG index
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/rag/48-37855/index'
payload = {
"attachment_ids": [
19800
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/rag/48-37855/index"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"attachment_ids": [
19800
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/rag/48-37855/index';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'attachment_ids' => [
19800,
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/rag/48-37855/index" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"attachment_ids\": [
19800
]
}"
Example response (200):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Search
requires authentication
Search in by query
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/rag/search'
params = {
'query': 'NFT Token',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/rag/search"
);
const params = {
"query": "NFT Token",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/rag/search';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'query' => 'NFT Token',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/rag/search?query=NFT+Token" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
RAG Assistant
Assistant Search
requires authentication
Search by query with Pinecone assistant
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/rag/assistant/devjock/search'
payload = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"stream": false
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/rag/assistant/devjock/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"messages": [
{
"role": "user",
"content": "Please reply \"OK\""
}
],
"stream": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/rag/assistant/devjock/search';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'messages' => [
[
'role' => 'user',
'content' => 'Please reply "OK"',
],
],
'stream' => false,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/rag/assistant/devjock/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"messages\": [
{
\"role\": \"user\",
\"content\": \"Please reply \\\"OK\\\"\"
}
],
\"stream\": false
}"
Example response (200):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Add Index
requires authentication
Adds specified attachments to the RAG assistant index
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/rag/assistant/devjock/index'
payload = {
"attachment_ids": [
19800
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/rag/assistant/devjock/index"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"attachment_ids": [
19800
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/rag/assistant/devjock/index';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'attachment_ids' => [
19800,
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/rag/assistant/devjock/index" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"attachment_ids\": [
19800
]
}"
Example response (200):
{}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Scrape
Scrape URL
requires authentication
Scrape a single webpage for it's content.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/scrape/url'
payload = {
"url": "https:\/\/www.example-site.com"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/scrape/url"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/www.example-site.com"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/scrape/url';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'url' => 'https://www.example-site.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/scrape/url" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/www.example-site.com\"
}"
Example response (200):
{
"url": "https://example.com",
"content": "Scraped data",
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Screenshot URL
requires authentication
Create a screenshot of the page by given URL.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/scrape/screenshot'
payload = {
"url": "https:\/\/www.example-site.com"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/scrape/screenshot"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"url": "https:\/\/www.example-site.com"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/scrape/screenshot';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'url' => 'https://www.example-site.com',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/scrape/screenshot" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"url\": \"https:\\/\\/www.example-site.com\"
}"
Example response (200):
{
"screenshot_url": "https://alttmdsdujxrfnakrkyi.supabase.co/storage/screenshot-5833962.png",
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sentry
Get Issue
requires authentication
Show Sentry issue by id.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sentry/issues/12345'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sentry/issues/12345"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sentry/issues/12345';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/sentry/issues/12345" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"issue": [],
"last_error": []
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sprints
Create
requires authentication
Create a new sprint with the provided information. All required fields must be present. The sprint must be assigned to at least one workspace where the user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sprints/create'
payload = {
"name": null,
"workspace_ids": null
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sprints/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": null,
"workspace_ids": null
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sprints/create';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'name' => null,
'workspace_ids' => null,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/sprints/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": null,
\"workspace_ids\": null
}"
Example response (201):
{
"create": "success",
"sprint_id": 347
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Read
requires authentication
Will return information about a specific sprint. The sprint must be assigned to a workspace where the authenticated user is a team member.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sprints/get'
params = {
'sprint_id': '342',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sprints/get"
);
const params = {
"sprint_id": "342",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sprints/get';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sprint_id' => '342',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/sprints/get?sprint_id=342" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"id": 342,
"active": true,
"name": "Sprint Q1 2025",
"description": "First quarter development sprint",
"start_date": "2025-01-01",
"end_date": "2025-03-31",
"created_by": {
"userid": 46905,
"user": "Brian Smith"
},
"ai_summary": "Focus on API improvements and new features",
"ai_summary_lastupdate": "2025-01-15T10:30:00.000000Z",
"workspace_ids": [
1,
2,
5
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List
requires authentication
Will return a list of sprints.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sprints/list'
params = {
'page': '1',
'sprint_id': 'omnis',
'workspace_id': 'quidem',
'show_inactive': '1 or true',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sprints/list"
);
const params = {
"page": "1",
"sprint_id": "omnis",
"workspace_id": "quidem",
"show_inactive": "1 or true",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sprints/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'sprint_id' => 'omnis',
'workspace_id' => 'quidem',
'show_inactive' => '1 or true',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/sprints/list?page=1&sprint_id=omnis&workspace_id=quidem&show_inactive=1+or+true" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_sprints": 2,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_sprints_returned": 2,
"sprints": [
{
"id": 123,
"active": 1,
"name": "Sprint 1",
"description": "First quarter development sprint",
"start_date": null,
"end_date": null,
"created_by": {
"userid": 1001,
"user": "John Smith"
},
"ai_summary": null,
"ai_summary_lastupdate": null
},
{
"id": 124,
"active": 1,
"name": "Sprint 2",
"description": "API improvements and bug fixes",
"start_date": null,
"end_date": null,
"created_by": {
"userid": 1002,
"user": "Jane Doe"
},
"ai_summary": null,
"ai_summary_lastupdate": null
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update
requires authentication
Update a sprint with new information. At least one Body Parameter must be present.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sprints/update'
params = {
'sprint_id': '347',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sprints/update"
);
const params = {
"sprint_id": "347",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sprints/update';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sprint_id' => '347',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/sprints/update?sprint_id=347" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
Example response (200):
{
"update": "success"
}
Example response (400):
{
"error": "Invalid sprint_id"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete
requires authentication
Permanently deletes a sprint that the user created. The sprint data is archived before deletion. Users can only delete sprints they created and that have no tasks associated. Sprints with tasks should be marked inactive instead.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/sprints/delete'
params = {
'sprint_id': '',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/sprints/delete"
);
const params = {
"sprint_id": "",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/sprints/delete';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sprint_id' => '',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/sprints/delete?sprint_id=" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"delete": "success"
}
Example response (400):
{
"error": "Access denied: You can only delete sprints you created"
}
Example response (400):
{
"error": "Cannot be deleted because the sprint has tasks. Please update the sprint to inactive instead."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tags
Create
requires authentication
Create a new tag with the provided information. All required fields must be present. The tag must be assigned to at least one workspace where the user is a team member.
Read
requires authentication
Will return information about a specific tag. The tag must be assigned to a workspace where the authenticated user is a team member.
List
requires authentication
Will return a list of tags from workspaces where the authenticated user is a team member.
Update
requires authentication
Update a tag with new information. At least one Body Parameter must be present.
Delete
requires authentication
Permanently deletes a tag that the user created. The tag data is archived before deletion. Users can only delete tags they created and that have no tasks associated. Tags with tasks should be marked inactive instead.
Transcribe
Transcribe Media
requires authentication
Processes a single media file, converting the speech within it into a textual transcript.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/transcribe/media'
files = {
'media': open('/tmp/phpMBOJfb', 'rb')}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, files=files)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/transcribe/media"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('media', document.querySelector('input[name="media"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/transcribe/media';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'media',
'contents' => fopen('/tmp/phpMBOJfb', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/transcribe/media" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "media=@/tmp/phpMBOJfb" Example response (200):
{
"transcription": "Transcribed text",
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Utilities
Check Health
Check if DevJock API is fully operational. If everything is okay, you'll get a list where all checks are OK.
Otherwise, the request will response with the failed checks.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/health'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/health';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/health" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"finishedAt": 1707929853,
"checkResults": [
{
"name": "DebugMode",
"label": "Debug Mode",
"notificationMessage": "",
"shortSummary": "false",
"status": "ok",
"meta": {
"actual": false,
"expected": false
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Context
requires authentication
Get Devjock context information for the authenticated user.
This includes information about Devjock life_cycles and the user's workspaces and team members.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/resources/list'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/resources/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/resources/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/resources/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"today": "Thu, 12 Sep 2025 14:30:45 GMT",
"generated_at": 1726150245,
"Devjock": {
"life_cycles": [
{
"id": 1,
"name": "Development",
"description": "Development lifecycle for new features"
},
{
"id": 2,
"name": "Bug",
"description": "Bug tracking and resolution lifecycle"
}
],
"statuses": [
{
"id": 1,
"name": "Open",
"description": "Task is open and ready to work"
},
{
"id": 2,
"name": "In Progress",
"description": "Work is actively being done"
}
],
"workspaces": [
{
"id": 1,
"name": "Project Alpha",
"description": "Main development workspace"
},
{
"id": 2,
"name": "Testing Environment",
"description": "QA and testing workspace"
}
],
"sprints": [
{
"id": 123,
"name": "Sprint 1",
"description": "First quarter development sprint",
"workspace_ids": [
1,
2
]
},
{
"id": 124,
"name": "Sprint 2",
"description": "API improvements and bug fixes",
"workspace_ids": [
1
]
}
],
"tags": [
{
"id": 16,
"name": "Operations",
"symbol": "Op",
"description": "Operations related tasks",
"workspace_id": 1
},
{
"id": 17,
"name": "High Priority",
"symbol": "!",
"description": "High priority items",
"workspace_id": 1
}
],
"groups": [
{
"id": 123,
"name": "Backend Infrastructure",
"description": "Core backend systems and infrastructure improvements",
"workspace_id": 1
},
{
"id": 124,
"name": "User Interface Redesign",
"description": "Modern UI/UX improvements and responsive design",
"workspace_id": 2
}
]
},
"me": {
"userid": 1001,
"name": "John Smith",
"team_members": [
{
"userid": 1002,
"name": "Jane Doe",
"workspace_ids": [
1,
2
]
},
{
"userid": 1003,
"name": "Bob Johnson",
"workspace_ids": [
1
]
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Vision
Describe Images
requires authentication
Takes a promt and collection of images then returns a list of answers for each image based on prompt. This is simplified way to ask question about images, other way is to do it over Chat API endpoint.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/vision/describe-images'
payload = {
"prompt": "Please describe image",
"images": [
{
"image": "https:\/\/shorturl.at\/hrov6"
}
]
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/vision/describe-images"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"prompt": "Please describe image",
"images": [
{
"image": "https:\/\/shorturl.at\/hrov6"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/vision/describe-images';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'prompt' => 'Please describe image',
'images' => [
[
'image' => 'https://shorturl.at/hrov6',
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"https://api.devjock.com/v1.0/vision/describe-images" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"prompt\": \"Please describe image\",
\"images\": [
{
\"image\": \"https:\\/\\/shorturl.at\\/hrov6\"
}
]
}"
Example response (200):
{
"text": "Some text ..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Workspaces
List
requires authentication
Will return a list of workspaces where the authenticated user is a team member.
By default only active workspaces are returned.
To include inactive workspaces, include the show_inactive query parameter.
Example request:
import requests
import json
url = 'https://api.devjock.com/v1.0/workspaces/list'
params = {
'page': '1',
'workspace_id': '1,2,3',
'show_inactive': 'true',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey': 'E79GH-UIL999',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()const url = new URL(
"https://api.devjock.com/v1.0/workspaces/list"
);
const params = {
"page": "1",
"workspace_id": "1,2,3",
"show_inactive": "true",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"X-Server-Apikey": "E79GH-UIL999",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());$client = new \GuzzleHttp\Client();
$url = 'https://api.devjock.com/v1.0/workspaces/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'X-Server-Apikey' => 'E79GH-UIL999',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'page' => '1',
'workspace_id' => '1,2,3',
'show_inactive' => 'true',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "https://api.devjock.com/v1.0/workspaces/list?page=1&workspace_id=1%2C2%2C3&show_inactive=true" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "X-Server-Apikey: E79GH-UIL999" \
--header "Content-Type: application/json" \
--header "Accept: application/json"Example response (200):
{
"total_workspaces": 2,
"this_page": 1,
"has_more_pages": false,
"total_pages": 1,
"count_workspaces_returned": 2,
"workspaces": [
{
"id": 123,
"active": 1,
"name": "Project Alpha",
"description": "Main development workspace"
},
{
"id": 124,
"active": 1,
"name": "Testing Environment",
"description": "QA and testing workspace"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.