Projects API

Create and manage app projects. Projects are the main container for your app's metadata across both stores.

Get a list of all projects in your account.

GET /projects

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
limitnumberNoMaximum number of projects to return (default: 20)
offsetnumberNoNumber of projects to skip (default: 0)

Response Example

{
"success": true,
"data": {
"projects": [
{
"id": "proj_abc123",
"name": "My Awesome App",
"appStoreAppId": "123456789",
"playStorePackageName": "com.example.app",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}
}

Code Examples

curl https://api.appstorecopilot.com/v1/projects \
-H "Authorization: Bearer $ASC_API_KEY"

Create a new project to manage your app's metadata.

POST /projects

Authentication

Requires API key with Authorization: Bearer <api_key> header

Request Body

NameTypeRequiredDescription
namestringYesDisplay name for the project
appStoreAppIdstringNoApple App Store app ID (numeric)
playStorePackageNamestringNoGoogle Play Store package name

Response Example

{
"success": true,
"data": {
"projectId": "proj_abc123",
"project": {
"id": "proj_abc123",
"name": "My Awesome App",
"appStoreAppId": "123456789",
"playStorePackageName": "com.example.app",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
}
}

Code Examples

curl -X POST https://api.appstorecopilot.com/v1/projects \
-H "Authorization: Bearer $ASC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Awesome App",
"appStoreAppId": "123456789",
"playStorePackageName": "com.example.app"
}'

Get details for a specific project.

GET /projects/:projectId

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Response Example

{
"success": true,
"data": {
"project": {
"id": "proj_abc123",
"name": "My Awesome App",
"appStoreAppId": "123456789",
"playStorePackageName": "com.example.app",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z",
"metadata": {
"locales": ["en-US", "es-ES", "fr-FR"],
"lastSyncedAt": "2024-01-20T14:45:00Z"
}
}
}
}

Code Examples

curl https://api.appstorecopilot.com/v1/projects/proj_abc123 \
-H "Authorization: Bearer $ASC_API_KEY"

Update a project's settings.

PATCH /projects/:projectId

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Request Body

NameTypeRequiredDescription
namestringNoNew display name for the project
appStoreAppIdstringNoApple App Store app ID
playStorePackageNamestringNoGoogle Play Store package name

Response Example

{
"success": true,
"data": {
"project": {
"id": "proj_abc123",
"name": "Updated App Name",
"appStoreAppId": "123456789",
"playStorePackageName": "com.example.app",
"updatedAt": "2024-01-21T09:00:00Z"
}
}
}

Code Examples

curl -X PATCH https://api.appstorecopilot.com/v1/projects/proj_abc123 \
-H "Authorization: Bearer $ASC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated App Name"
}'

Delete a project and all associated metadata. This action cannot be undone.

DELETE /projects/:projectId

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Response Example

{
"success": true,
"data": {
"deleted": true
}
}

Code Examples

curl -X DELETE https://api.appstorecopilot.com/v1/projects/proj_abc123 \
-H "Authorization: Bearer $ASC_API_KEY"

Pull the latest metadata from App Store and/or Play Store.

POST /projects/:projectId/sync

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Request Body

NameTypeRequiredDescription
storestringNoStore to sync from: "appstore", "playstore", or "both" (default: both)

Response Example

{
"success": true,
"data": {
"syncedLocales": ["en-US", "es-ES", "fr-FR"],
"appStore": {
"synced": true,
"locales": 3
},
"playStore": {
"synced": true,
"locales": 3
}
}
}

Code Examples

curl -X POST https://api.appstorecopilot.com/v1/projects/proj_abc123/sync \
-H "Authorization: Bearer $ASC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store": "both"}'

Push metadata changes to App Store and/or Play Store.

POST /projects/:projectId/push

Authentication

Requires API key with Authorization: Bearer <api_key> header

URL Parameters

NameTypeRequiredDescription
projectIdstringYesThe project ID

Request Body

NameTypeRequiredDescription
storestringNoStore to push to: "appstore", "playstore", or "both" (default: both)
localesstring[]NoSpecific locales to push. If omitted, pushes all locales.

Response Example

{
"success": true,
"data": {
"pushedLocales": ["en-US", "es-ES", "fr-FR"],
"appStore": {
"pushed": true,
"locales": 3
},
"playStore": {
"pushed": true,
"locales": 3
}
}
}

Code Examples

curl -X POST https://api.appstorecopilot.com/v1/projects/proj_abc123/push \
-H "Authorization: Bearer $ASC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"store": "both",
"locales": ["en-US", "es-ES"]
}'