Create a submission package
curl --request POST \
--url https://api.alpic.ai/v1/submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"environmentId": "<string>"
}
'import requests
url = "https://api.alpic.ai/v1/submissions"
payload = { "environmentId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({environmentId: '<string>'})
};
fetch('https://api.alpic.ai/v1/submissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.alpic.ai/v1/submissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'environmentId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.alpic.ai/v1/submissions"
payload := strings.NewReader("{\n \"environmentId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.alpic.ai/v1/submissions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"environmentId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.alpic.ai/v1/submissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"environmentId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"environmentId": "<string>",
"auditId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"platform": "claudeai",
"formData": {
"serverUrl": "<string>",
"name": "<string>",
"slug": "<string>",
"oneLiner": "<string>",
"description": "<string>",
"categories": [
"Productivity"
],
"iconUrl": "<string>",
"documentation": "<string>",
"support": "<string>",
"privacyPolicy": "<string>",
"screenshots": [
{
"prompt": "<string>",
"url": "<string>"
}
],
"primaryUseCases": "<string>",
"connectionRequirements": "<string>",
"readWriteCapabilities": "read_only",
"companyName": "<string>",
"companyWebsite": "<string>",
"primaryContactName": "<string>",
"primaryContactEmail": "<string>",
"primaryContactRole": "<string>",
"anthropicPointOfContact": "<string>",
"authentication": "oauth_dcr",
"partialAuth": true,
"apiOwnership": "first_party",
"personalHealthData": true,
"sponsoredContent": true,
"testInstructions": "<string>",
"selfTested": true,
"policyAcknowledgements": [
"I have read and understand the MCP Directory developer guidelines."
],
"additionalNotes": "<string>"
},
"urlVerification": {
"verifiedAt": "2023-11-07T05:31:56Z",
"results": [
{
"field": "privacyPolicyUrl",
"url": "<string>",
"outcome": "pass",
"reason": "<string>",
"concerns": [
"<string>"
],
"scrapedWith": "fetch"
}
]
},
"prefillSnapshot": {
"serverUrl": "<string>",
"name": "<string>",
"slug": "<string>",
"oneLiner": "<string>",
"description": "<string>",
"categories": [
"Productivity"
],
"iconUrl": "<string>",
"documentation": "<string>",
"support": "<string>",
"privacyPolicy": "<string>",
"screenshots": [
{
"prompt": "<string>",
"url": "<string>"
}
],
"primaryUseCases": "<string>",
"connectionRequirements": "<string>",
"readWriteCapabilities": "read_only",
"companyName": "<string>",
"companyWebsite": "<string>",
"primaryContactName": "<string>",
"primaryContactEmail": "<string>",
"primaryContactRole": "<string>",
"anthropicPointOfContact": "<string>",
"authentication": "oauth_dcr",
"partialAuth": true,
"apiOwnership": "first_party",
"personalHealthData": true,
"sponsoredContent": true,
"testInstructions": "<string>",
"selfTested": true,
"policyAcknowledgements": [
"I have read and understand the MCP Directory developer guidelines."
],
"additionalNotes": "<string>"
}
}{
"defined": true,
"code": "BAD_REQUEST",
"status": 400,
"message": "Bad Request",
"data": "<unknown>"
}{
"defined": true,
"code": "NOT_FOUND",
"status": 404,
"message": "Not Found",
"data": "<unknown>"
}submissions
Create a submission package
Create a submission package for an environment. Alpic reads the environment’s live MCP server and prefills every field it can infer, so the response already carries the populated package. The environment must have a successful deployment and must not require authentication.
POST
/
v1
/
submissions
Create a submission package
curl --request POST \
--url https://api.alpic.ai/v1/submissions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"environmentId": "<string>"
}
'import requests
url = "https://api.alpic.ai/v1/submissions"
payload = { "environmentId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({environmentId: '<string>'})
};
fetch('https://api.alpic.ai/v1/submissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.alpic.ai/v1/submissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'environmentId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.alpic.ai/v1/submissions"
payload := strings.NewReader("{\n \"environmentId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.alpic.ai/v1/submissions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"environmentId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.alpic.ai/v1/submissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"environmentId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"environmentId": "<string>",
"auditId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"platform": "claudeai",
"formData": {
"serverUrl": "<string>",
"name": "<string>",
"slug": "<string>",
"oneLiner": "<string>",
"description": "<string>",
"categories": [
"Productivity"
],
"iconUrl": "<string>",
"documentation": "<string>",
"support": "<string>",
"privacyPolicy": "<string>",
"screenshots": [
{
"prompt": "<string>",
"url": "<string>"
}
],
"primaryUseCases": "<string>",
"connectionRequirements": "<string>",
"readWriteCapabilities": "read_only",
"companyName": "<string>",
"companyWebsite": "<string>",
"primaryContactName": "<string>",
"primaryContactEmail": "<string>",
"primaryContactRole": "<string>",
"anthropicPointOfContact": "<string>",
"authentication": "oauth_dcr",
"partialAuth": true,
"apiOwnership": "first_party",
"personalHealthData": true,
"sponsoredContent": true,
"testInstructions": "<string>",
"selfTested": true,
"policyAcknowledgements": [
"I have read and understand the MCP Directory developer guidelines."
],
"additionalNotes": "<string>"
},
"urlVerification": {
"verifiedAt": "2023-11-07T05:31:56Z",
"results": [
{
"field": "privacyPolicyUrl",
"url": "<string>",
"outcome": "pass",
"reason": "<string>",
"concerns": [
"<string>"
],
"scrapedWith": "fetch"
}
]
},
"prefillSnapshot": {
"serverUrl": "<string>",
"name": "<string>",
"slug": "<string>",
"oneLiner": "<string>",
"description": "<string>",
"categories": [
"Productivity"
],
"iconUrl": "<string>",
"documentation": "<string>",
"support": "<string>",
"privacyPolicy": "<string>",
"screenshots": [
{
"prompt": "<string>",
"url": "<string>"
}
],
"primaryUseCases": "<string>",
"connectionRequirements": "<string>",
"readWriteCapabilities": "read_only",
"companyName": "<string>",
"companyWebsite": "<string>",
"primaryContactName": "<string>",
"primaryContactEmail": "<string>",
"primaryContactRole": "<string>",
"anthropicPointOfContact": "<string>",
"authentication": "oauth_dcr",
"partialAuth": true,
"apiOwnership": "first_party",
"personalHealthData": true,
"sponsoredContent": true,
"testInstructions": "<string>",
"selfTested": true,
"policyAcknowledgements": [
"I have read and understand the MCP Directory developer guidelines."
],
"additionalNotes": "<string>"
}
}{
"defined": true,
"code": "BAD_REQUEST",
"status": 400,
"message": "Bad Request",
"data": "<unknown>"
}{
"defined": true,
"code": "NOT_FOUND",
"status": 404,
"message": "Not Found",
"data": "<unknown>"
}Authorizations
Bearer token for authentication. Use an API key from the API Keys page in team settings, or an OAuth access token.
Body
application/json
Response
The created submission package, with its prefilled fields
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?