---
id: "4a5030cfaedbccec0df8"
url: "https://www.xmcsl.cn/project/ocean-engine-api/%E8%8E%B7%E5%8F%96%E5%85%A8%E5%9F%9F%E6%8A%95%E6%94%BE%E9%A1%B9%E7%9B%AE%E5%88%97%E8%A1%A8-1854926110406984.html"
source_url: "https://open.oceanengine.com/labels/7/docs/1854926110406984"
source_date: null
checked_at: "2026-11-05T04:21:48.909937+00:00"
status: "ready"
check_scope: "structure_only; not a factual or human review"
body_sha256: "2e61a5c7ce058a1859f3c3febc292bd1ae01ace8eaed88e9b6b04f21b792a20b"
---

# 获取全域投放项目列表 — 巨量引擎 API

# 获取全域投放项目列表

 

<table><tr><th>关键信息</th><th>详情</th></tr><tr><th>文档 ID</th><td>1854926110406984</td></tr>&#10;<tr><th>标签 ID</th><td>7</td></tr>&#10;<tr><th>原始文档</th><td>&#91;https://open.oceanengine.com/labels/7/docs/1854926110406984&#93;(https://open.oceanengine.com/labels/7/docs/1854926110406984)</td></tr>&#10;<tr><th>接口标识</th><td>ad.uni&#95;project&#95;list.get</td></tr>&#10;</table>

 

💡获取全域投放项目的列表信息，支持根据多种条件过滤，可配合【获取Access token】、【人群包列表】、【获取行政信息】等接口使用。 获取全域投放项目列表

 

GET https://api.oceanengine.com/open\_api/v3.0/uni\_project\_list/get/ <a href="https://open.oceanengine.com/tools/visual_debug.html?docId=1854926110406984">🔍 可视化调试</a> <a href="https://open.oceanengine.com/labels/7/docs/1773083358100557">📦 SDK下载</a>

 

## 接口说明

 

获取全域投放项目的列表信息，支持根据多种条件过滤，可配合【获取Access token】、【人群包列表】、【获取行政信息】等接口使用。

 

获取全域投放项目列表

 

## 请求地址

 

https://api.oceanengine.com/open\_api/v3.0/uni\_project\_list/get/<a href="https://open.oceanengine.com/tools/visual_debug.html?docId=1854926110406984">可视化调试</a><a href="https://open.oceanengine.com/labels/7/docs/1773083358100557">SDK下载</a>

 

## 请求方法

 

GET

 

## Header

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>Access-Token</code></td>&#10;<td>string</td>&#10;<td>必填</td>&#10;<td>授权access&#95;token，可以通过【<a href="https://open.oceanengine.com/labels/7/docs/1696710505596940">获取Access token</a>】接口获取</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 请求参数

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>advertiser&#95;id</code></td>&#10;<td>number</td>&#10;<td>必填</td>&#10;<td>客户id</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

<code>filtering</code>（object，否） — 过滤器

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`project\_id\` \| number\[\] \| 否 \| 按项目ID过滤，范围为1\-100 \| \| \`name\` \| string \| 否 \| （两个英文字符占1个字，该字段采取模糊查询的方式。）  
项目名称，长度是1\-50个字 \| \| \`status\_first\` \| string \| 否 \| 项目一级状态过滤，允许值：   
\- \`PROJECT\_STATUS\_DELETE\` 已删除  
\- \`PROJECT\_STATUS\_DISABLE\` 未投放  
\- \`PROJECT\_STATUS\_DONE\` 已完成  
\- \`PROJECT\_STATUS\_ENABLE\` 启用中  
\- \`PROJECT\_STATUS\_FROZEN\` 已终止  
不传默认返回不限（不含已删除） \| \| \`status\_second\` \| string \| 否 \| 项目二级状态过滤，允许值：   
\- \`ADVERTISER\_AVATAR\_OFFLINE\` 未投放\-账户头像不可投  
\- \`PROJECT\_STATUS\_OFFLINE\_AUDIT\`未投放\-审核不通过  
\- \`PROJECT\_STATUS\_AUDIT\`未投放\- 新建审核中  
\- \`PROJECT\_STATUS\_REAUDIT\`未投放\-修改审核中  
\- \`PROJECT\_STATUS\_STOP\` 未投放\-手动暂停  
\- \`PROJECT\_STATUS\_ADV\_OFFLINE\_BUDGET\` 未投放\-账户余额不足  
\- \`PROJECT\_STATUS\_OFFLINE\_BUDGET\` 未投放\-账户超预算  
\- \`PROJECT\_STATUS\_BUDGET\_EXCEED\` 未投放\-项目超出预算  
\- \`PROJECT\_STATUS\_NOT\_START\` 未投放\-未达投放时间  
\- \`PROJECT\_STATUS\_REACH\_DAILY\_DELIVERY\` 未投放\-已达投放时长  
\- \`PROJECT\_STATUS\_NO\_SCHEDULE\` 未投放\-不在投放时段  
\- \`PROJECT\_STATUS\_PRODUCT\_OFFLINE\` 未投放\-商品不可投放  
\- \`AWEME\_ACCOUNT\_DISABLED\`未投放\-关联抖音账号不可投放 \|

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>page</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>页码，默认值：1</td>&#10;</tr>&#10;<tr>&#10;<td><code>page&#95;size</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>页面大小，允许值：10, 20, 50, 100，默认值：10</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 请求示例

 

### python

 

```python
# coding=utf-8
import json
import requests

from six import string_types
from six.moves.urllib.parse import urlencode, urlunparse  # noqa

ACCESS_TOKEN = "xxx"
PATH = "/open_api/v3.0/uni_project_list/get/"


def build_url(path, query=""):
    # type: (str, str) -> str
    """
    Build request URL
    :param path: Request path
    :param query: Querystring
    :return: Request URL
    """
    scheme, netloc = "https", "api.oceanengine.com"
    return urlunparse((scheme, netloc, path, "", query, ""))

def get(json_str):
    # type: (str) -> dict
    """
    Send GET request
    :param json_str: Args in JSON format
    :return: Response in JSON format
    """
    args = json.loads(json_str)
    query_string = urlencode({k: v if isinstance(v, string_types) else json.dumps(v) for k, v in args.items()})
    url = build_url(PATH, query_string)
    headers = {
        "Access-Token": ACCESS_TOKEN,
    }
    rsp = requests.get(url, headers=headers)
    return rsp.json()


if __name__ == '__main__':
    advertiser_id = ADVERTISER_ID
    project_id_list = PROJECT_ID
    project_id = json.dumps(project_id_list)
    name = NAME
    status_first = STATUS_FIRST
    status_second = STATUS_SECOND
    page = PAGE
    page_size = PAGE_SIZE

    # Args in JSON format
    my_args = "{\"advertiser_id\": \"%s\", \"filtering\": {\"project_id\": %s, \"name\": \"%s\", \"status_first\": \"%s\", \"status_second\": \"%s\"}, \"page\": \"%s\", \"page_size\": \"%s\"}" % (advertiser_id, project_id, name, status_first, status_second, page, page_size)
    print(get(my_args))
```

 

### java

 

```java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.*;
import org.apache.http.client.utils.URIBuilder;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Demo {
    private static final String ACCESS_TOKEN = "xxx";
    private static final String PATH = "/open_api/v3.0/uni_project_list/get/";
    private static final ObjectMapper mapper = new ObjectMapper();

    /**
     * Build request URL
     *
     * @param path Request path
     * @return Request URL
     */
    private static String buildUrl(String path) throws URISyntaxException {
        URI uri = new URI("https", "api.oceanengine.com", path, "", "");
        return uri.toString();
    }


    /**
     * Send GET request
     *
     * @param jsonStr:Args in JSON format
     * @return Response in JSON format
     */
    private static String get(String jsonStr) throws IOException, URISyntaxException {
        OkHttpClient client = new OkHttpClient().newBuilder().build();
        URIBuilder ub = new URIBuilder(buildUrl(PATH));
        Map< String, Object > map = mapper.readValue(jsonStr, Map.class);
        map.forEach((k, v) -> {
            try {
                ub.addParameter(k, v instanceof String ? (String) v : mapper.writeValueAsString(v));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        });
        URL url = ub.build().toURL();

        Request request = new Request.Builder()
                .url(url)
                .method("GET", null)
                .addHeader("Access-Token", ACCESS_TOKEN)
                .build();
        Response response = client.newCall(request).execute();
        return response.body().string();
    }


    public static void main(String[] args) throws IOException, URISyntaxException {
        Long advertiser_id = ADVERTISER_ID;
        List < Long > project_id_list = PROJECT_ID;
        String project_id = mapper.writeValueAsString(project_id_list);
        String name = NAME;
        String status_first = STATUS_FIRST;
        String status_second = STATUS_SECOND;
        Long page = PAGE;
        Long page_size = PAGE_SIZE;

        // Args in JSON format
        String myArgs = String.format("{\"advertiser_id\": \"%s\", \"filtering\": {\"project_id\": %s, \"name\": \"%s\", \"status_first\": \"%s\", \"status_second\": \"%s\"}, \"page\": \"%s\", \"page_size\": \"%s\"}",advertiser_id, project_id, name, status_first, status_second, page, page_size);
        System.out.println(get(myArgs));
    }
}
```

 

### php

 

```php
$ACCESS_TOKEN = "xxx";
$PATH = "/open_api/v3.0/uni_project_list/get/";

/**
 * Build request URL
 * @param $path : Request path
 * @return string
 */
function build_url($path)
{
    return "https://api.oceanengine.com" . $path;
}

/**
 * Send GET request
 * @param $json_str : Args in JSON format
 * @return bool|string : Response in JSON format
 */
function get($json_str)
{
    global $ACCESS_TOKEN, $PATH;
    $curl = curl_init();

    $args = json_decode($json_str, true);

    /* Values of querystring is also in JSON format */
    foreach ($args as $key => $value) {
        $args[$key] = is_string($value) ? $value : json_encode($value);
    }

    $url = build_url($PATH) . "?" . http_build_query(
            $args
        );

    curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => array(
            "Access-Token: " . $ACCESS_TOKEN,
        ),
    ));

    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}


$advertiser_id = ADVERTISER_ID;
$project_id_list = PROJECT_ID;
$project_id = json_encode($project_id_list);
$name = NAME;
$status_first = STATUS_FIRST;
$status_second = STATUS_SECOND;
$page = PAGE;
$page_size = PAGE_SIZE;

/* Args in JSON format */
$my_args = sprintf("{\"advertiser_id\": \"%s\", \"filtering\": {\"project_id\": %s, \"name\": \"%s\", \"status_first\": \"%s\", \"status_second\": \"%s\"}, \"page\": \"%s\", \"page_size\": \"%s\"}", $advertiser_id, $project_id, $name, $status_first, $status_second, $page, $page_size);
echo get($my_args);
```

 

### curl

 

```curl
curl --get -H "Access-Token:xxx" \
--data-urlencode "advertiser_id=ADVERTISER_ID" \
--data-urlencode "filtering={\"project_id\": [\"PROJECT_ID\"], \"name\": \"NAME\", \"status_first\": \"STATUS_FIRST\", \"status_second\": \"STATUS_SECOND\"}" \
--data-urlencode "page=PAGE" \
--data-urlencode "page_size=PAGE_SIZE" \
https://api.oceanengine.com/open_api/v3.0/uni_project_list/get/
```

 

## 应答字段

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>code</code></td>&#10;<td>number</td>&#10;<td>否</td>&#10;<td>返回码,详见 <a href="https://open.oceanengine.com/labels/7/docs/1696710760866831">【附录-返回码】</a></td>&#10;</tr>&#10;<tr>&#10;<td><code>message</code></td>&#10;<td>string</td>&#10;<td>否</td>&#10;<td>返回信息,详见 <a href="https://open.oceanengine.com/labels/7/docs/1696710760866831">【附录-返回码】</a></td>&#10;</tr>&#10;</tbody>&#10;</table>

 

<code>data</code>（json，否） — json返回值

 

<code>page&#95;info</code>（object，否） — 分页信息

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`page\` \| number \| 否 \| 页码 \| \| \`page\_size\` \| number \| 否 \| 页面大小 \| \| \`total\_number\` \| number \| 否 \| 总数 \| \| \`total\_page\` \| number \| 否 \| 总页数 \|

 

<code>list</code>（object\[\]，否） — 项目列表

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`project\_id\` \| number \| 否 \| 项目id \| \| \`advertiser\_id\` \| number \| 否 \| 客户id \| \| \`name\` \| string \| 否 \| 项目名称 \| 

<code>related&#95;product</code>（object，否） — 关联产品投放相关参数

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`product\_platform\_id\` \| number \| 否 \| 商品库ID \| \| \`product\_id\` \| string \| 否 \| 商品id \|

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`aweme\_id\` \| string \| 否 \| 抖音号id \| \| \`budget\` \| float \| 否 \| 项目预算，单位为元 \| \| \`uni\_roi\_goal\` \| double \| 否 \| 全域ROI系数 \| \| \`monetization\_mode\` \| string \| 否 \| 投放变现模式，允许值：\- IAP用户付费  
\- IAA\_AND\_IAP混合变现 \| \| \`schedule\_type\` \| string \| 否 \| 投放时间类型，允许值：   
\- \`SCHEDULE\_FROM\_NOW\`从今天起长期投放  
\- \`SCHEDULE\_START\_END\`设置开始和结束日期 \| \| \`start\_time\` \| string \| 否 \| 投放起始时间 \| \| \`end\_time\` \| string \| 否 \| 投放结束时间 \| \| \`schedule\_time\` \| string \| 否 \| 投放时段 \| 

<code>brand&#95;info</code>（object，否） — 品牌信息

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`yuntu\_category\_id\` \| number \| 否 \| 品牌分类id \| \| \`cdp\_brand\_id\` \| number \| 否 \| cdp品牌id \| \| \`ecom\_brand\_id\` \| number \| 否 \| 电商品牌id \| \| \`brand\_name\_id\` \| number \| 否 \| 云图品牌id \| \| \`cdp\_brand\_name\` \| string \| 否 \| cdp品牌名称 \| \| \`sub\_brand\_names\` \| string\[\] \| 否 \| 子品牌名称 \| \| \`sub\_brand\_name\_ids\` \| string\[\] \| 否 \| 子品牌id \|

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`aigc\_dynamic\_creative\_switch\` \| string \| 否 \| 是否开启AIGC动态创意，允许值：  
\`OFF\` 关闭  
\`ON\` 开启 \| \| \`status\_first\` \| string \| 否 \| 项目一级状态，可选值:   
\- \`PROJECT\_STATUS\_DELETE\` 已删除  
\- \`PROJECT\_STATUS\_DISABLE\` 未投放  
\- \`PROJECT\_STATUS\_DONE\` 已完成  
\- \`PROJECT\_STATUS\_ENABLE\` 启用中  
\- \`PROJECT\_STATUS\_FROZEN\` 已终止 \| \| \`status\_second\` \| string\[\] \| 否 \| 项目二级状态，可选值:   
\- \`PROJECT\_STATUS\_ADV\_OFFLINE\_BUDGET\` 账户余额不足  
\- \`PROJECT\_STATUS\_AUDIT\` 新建审核中  
\- \`PROJECT\_STATUS\_AWEME\_ACCOUNT\_DISABLED\` 抖音账号不可投放  
\- \`PROJECT\_STATUS\_BUDGET\_EXCEED\` 项目超出预算  
\- \`PROJECT\_STATUS\_NOT\_START\` 未达投放时间  
\- \`PROJECT\_STATUS\_NO\_SCHEDULE\` 不在投放时段  
\- \`PROJECT\_STATUS\_OFFLINE\_AUDIT\` 审核不通过  
\- \`PROJECT\_STATUS\_OFFLINE\_BUDGET\` 账户超预算  
\- \`PROJECT\_STATUS\_PRODUCT\_OFFLINE\` 产品不可投放  
\- \`PROJECT\_STATUS\_REAUDIT\` 修改审核中  
\- \`PROJECT\_STATUS\_STOP\` 已暂停 \| 

<code>audience</code>（object，否） — 定向设置

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`district\` \| string \| 否 \| 地域类型允许值:\- \`BUSINESS\_DISTRICT\`商圈  
\- \`REGION\` 行政区域  
\- \`NONE\` 不限 \| 

<code>geolocation</code>（object\[\]，否） — 从地图添加(地图位置)

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`radius\` \| number \| 否 \| 半径，单位为m \| \| \`name\` \| string \| 否 \| 地点名称 \| \| \`long\` \| float \| 否 \| 经度 \| \| \`lat\` \| float \| 否 \| 纬度 \|

 \| 字段 \| 类型 \| 必填 \| 描述 \| \| \-\-\- \| \-\-\- \| \-\-\- \| \-\-\- \| \| \`region\_version\` \| string \| 否 \| 行政区域版本号 \| \| \`city\` \| number\[\] \| 否 \| 地域定向省市或者区县列表 \| \| \`location\_type\` \| string \| 否 \| 位置类型，可选值:   
\- \`CURRENT\`正在该地区的用户  
\- \`HOME\`居住在该地区的用户  
\- \`TRAVEL\`到该地区旅行的用户  
\- \`ALL\`该地区内的所有用户 \| \| \`gender\` \| string \| 否 \| 性别，可选值:   
\- \`GENDER\_FEMALE\` 女性  
\- \`GENDER\_MALE\` 男性  
\- \`NONE\` 不限 \| \| \`age\` \| string\[\] \| 否 \| 年龄 \| \| \`retargeting\_tags\_include\` \| number\[\] \| 否 \| 定向人群包列表（自定义人群），内容为人群包id。人群包id可通过【\[人群包列表\](https://open.oceanengine.com/labels/9/docs/1696710570721295)】获取 \| \| \`retargeting\_tags\_exclude\` \| number\[\] \| 否 \| 排除人群包列表（自定义人群），内容为人群包id。人群包id可通过【\[人群包列表\](https://open.oceanengine.com/labels/9/docs/1696710570721295)】获取 \| \| \`platform\` \| string\[\] \| 否 \| 投放平台列表  
允许值：\`ANDROID\`、\`IOS\` \| \| \`hide\_if\_converted\` \| string \| 否 \| 过滤已转化用户，可选值:   
\- \`ADVERTISER\`  
\- \`CUSTOMER\`  
\- \`NO\_EXCLUDE\`  
\- \`ORGANIZATION\`  
\- \`PROJECT\` \| \| \`converted\_time\_duration\` \| string \| 否 \| 过滤时间范围，可选值:   
\- \`NONE\`  
\- \`ONE\_MONTH\`  
\- \`SEVEN\_DAY\`  
\- \`SIX\_MONTH\`  
\- \`THREE\_MONTH\`  
\- \`TODAY\`  
\- \`TWELVE\_MONTH\` \|

 

<table>&#10;<thead>&#10;<tr>&#10;<th>字段</th>&#10;<th>类型</th>&#10;<th>必填</th>&#10;<th>描述</th>&#10;</tr>&#10;</thead>&#10;<tbody>&#10;<tr>&#10;<td><code>request&#95;id</code></td>&#10;<td>string</td>&#10;<td>否</td>&#10;<td>请求日志id</td>&#10;</tr>&#10;</tbody>&#10;</table>

 

## 应答示例

 

```json
HTTPS/1.1 200 OK
{
    "message": "OK",
    "code": 0,
    "data": {}
}
```

 

## 业务错误码

 

仅披露当前接口高频的参数校验报错，更多常见报错详见<a href="https://open.oceanengine.com/labels/34/docs/1696710760866831">「返回码」</a>文档

 

行政区域版本号，通过<a href="https://open.oceanengine.com/doc/index.html?key=ad&amp;type=api&amp;id=1709606596424718">【获取行政信息】</a>接口获取district =<code>REGION</code>/<code>OVERSEA</code>时必填\- 当前仅允许传入<code>2.3.2</code>枚举，否则接口会报错
